Traiter une liste

Guides
Sur cette page

Vous recevez plusieurs contacts et voulez préparer un message pour les contacts actifs uniquement. Ce parcours part d’une liste, écarte un contact, puis construit un résultat par contact conservé. Aucun e-mail n’est envoyé et aucun identifiant externe n’est nécessaire.

Choisir entre IF, Filtrer et Boucle

  • IF choisit un chemin d’exécution. Utilisez-le pour une décision comme « la demande est-elle complète ? ».
  • Filtrer conserve certains éléments d’une liste. Il renvoie une liste plus courte, sans lancer à lui seul une action pour chaque élément.
  • Boucle sur les éléments exécute un traitement pour chaque élément ou lot. Sa sortie Terminé poursuit le workflow après le parcours.
De trois contacts à deux messages préparés
  1. Manuel Trois contacts : Ada, Lin et Sam.
  2. Filtrer : actifs Garde Ada et Sam. Écarte Lin.
  3. Boucle Deux tours, deux messages préparés.

Fournir les données de départ

Dans le Payload de test d’un Déclenchement manuel, collez :

json
{
  "contacts": [
    { "name": "Ada", "email": "[email protected]", "active": true },
    { "name": "Lin", "email": "[email protected]", "active": false },
    { "name": "Sam", "email": "[email protected]", "active": true }
  ]
}

input.contacts est la liste complète ; input.contacts[0] est son premier contact. Conservez les booléens true et false sans guillemets dans ce JSON.

Garder les contacts actifs

Ajoutez Filtrer après le déclencheur et configurez :

  • Source : input.contacts.
  • Champ de la condition : active.
  • Opérateur : Égal à (equals).
  • Valeur comparée : true.

La source désigne la liste dans le workflow. Le champ de condition est lu dans chaque contact : saisissez active, pas input.contacts.active.

Exécutez et vérifiez cette sortie :

json
{
  "items": [
    { "name": "Ada", "email": "[email protected]", "active": true },
    { "name": "Sam", "email": "[email protected]", "active": true }
  ],
  "count": 2,
  "removed": 1,
  "combinator": "and"
}

Les étapes suivantes doivent lire la propriété items pour obtenir la liste filtrée. Les noms filter1, loop1 et set1 ci-dessous sont des exemples : utilisez les noms techniques indiqués par votre mapping.

Préparer un message par contact

  1. Ajoutez Boucle sur les éléments après Filtrer. Renseignez sa source avec nodes.filter1.items et gardez batchSize à 1.
  2. Depuis la sortie Boucle, reliez Modifier les champs. Activez Champs mappés uniquement.
  3. Créez email avec {{ nodes.loop1.item.email }} et message avec Bonjour {{ nodes.loop1.item.name }}.
Un message par contact, puis Terminé
  1. Boucle sur les éléments Reste-t-il un contact à traiter ?
  • Boucle Prépare un message, puis revient.
  • Terminé Résultats dans items.

Relancez le workflow complet. La sortie finale de la boucle doit être :

json
{
  "items": [
    { "email": "[email protected]", "message": "Bonjour Ada" },
    { "email": "[email protected]", "message": "Bonjour Sam" }
  ],
  "count": 2
}

Continuer une fois la liste terminée

Reliez un autre nœud Modifier les champs à la sortie Terminé de la boucle. Activez Champs mappés uniquement et créez processed avec {{ nodes.loop1.count }}.

Ce nœud doit s’exécuter après le traitement des deux contacts et produire { "processed": 2 }. Ne le reliez pas à la sortie Boucle : il compterait alors les tours pendant leur traitement au lieu de lire le résultat final.

Vérifier les cas qui font perdre des données

  • Tous les contacts sont inactifs : Filtrer renvoie count: 0. Le corps de boucle ne doit pas s’exécuter ; Terminé doit produire un total de zéro.
  • Le même contact revient deux fois : cette chaîne ne déduplique pas les données. Ajoutez Supprimer les doublons avant la boucle si votre règle métier l’exige.
  • Tous les messages utilisent Ada : vous avez probablement relu input.contacts[0]. Utilisez nodes.loop1.item pour l’élément courant.
  • Des champs disparaissent après un IF : sa sortie décrit la comparaison. Relisez explicitement la sortie du nœud qui détient la liste au lieu de compter sur une transmission implicite.

Pour envoyer réellement ces messages, remplacez la préparation par le nœud d’envoi approprié ou ajoutez-le dans le corps. Vérifiez ses accès et une destination de test avant d’utiliser la liste réelle.