Les déclencheurs démarrent une automatisation et les actions font le travail. Les étapes de cet article décident de ce qui se passe entre les deux : quel chemin prend un membre, quand l'étape suivante s'exécute et avec quelles données les étapes suivantes travaillent.
Où trouver ces étapes
Dans l'éditeur, ouvrez la bibliothèque et passez à l'onglet Actions. Les étapes de cet article se trouvent tout en haut, dans leur propre section appelée Contrôle. Faites-en glisser une sur le canevas ou cliquez dessus, puis reliez-la comme n'importe quelle autre étape.

Quelques règles valent pour chaque étape :
- L'entrée se trouve à gauche et les sorties à droite. Les étapes qui ont plus d'une sortie nomment chaque sortie, par exemple Oui et Non.
- Chaque entrée accepte une seule connexion. Si vous tracez une deuxième ligne vers la même entrée, elle remplace la première. Pour réunir deux chemins, utilisez Fusionner.
- Une ligne ne peut pas revenir vers une étape antérieure. L'éditeur ne vous laisse pas la tracer. Pour répéter des étapes, utilisez Boucle.
- Une sortie sans connexion termine simplement ce chemin.
Cliquez sur une étape pour ouvrir ses paramètres à droite. Les champs marqués d'une étoile sont obligatoires. Quand la configuration d'une étape pose problème, l'éditeur la marque d'un avertissement jaune.
Vérifier des règles : Condition, Filtre et Comparer
Comment fonctionnent les règles
Condition et Filtre vérifient une liste de règles. Chaque règle a une clé, un opérateur et une valeur. Ajouter une règle en ajoute une, et la croix à côté de la clé la supprime.
La clé indique ce qu'il faut regarder :
- Un champ des données que l'automatisation transporte, par exemple
emailou un champ fourni par le déclencheur. member.suivi d'un champ de membre, par exemplemember.emailoumember.first_name.member.cf_suivi de l'ID d'un champ personnalisé. Il lit la valeur telle qu'elle est enregistrée : pour un champ à choix, c'est la valeur de l'option, pas son libellé, et un champ de date donne la date enregistrée. Un champ sans valeur compte comme vide.member.tagsoumember.groups. Les opérateurs deviennent a et n'a pas, et vous choisissez le tag ou le groupe dans une liste.- Une valeur d'engagement e-mail, par exemple
email.opened_automation(1 si le membre a ouvert un e-mail de cette automatisation, sinon 0),email.opened_this_step(un e-mail de l'étape e-mail la plus proche avant celle-ci),email.opened_ever,email.opened_days_agoouemail.opens_7d. Les mêmes valeurs existent pour les clics, par exempleemail.clicks_30d.
Le champ de clé les suggère pendant la saisie, y compris vos champs
personnalisés par nom. En choisir un insère member.cf_ et l'ID, et sous la
règle une indication nomme le champ, par exemple « Champ personnalisé : Plan ».
Les opérateurs sont est égal à, n'est pas égal à, contient, ne contient pas, dans (liste séparée par des virgules), pas dans (liste séparée par des virgules), est vide, n'est pas vide et les comparaisons numériques >, ≥, < et ≤. Gardez à l'esprit :
- est égal à compare les valeurs en tant que texte.
- contient cherche la valeur dans le texte et respecte les majuscules et les minuscules.
- dans (liste séparée par des virgules) prend plusieurs valeurs séparées
par des virgules, par exemple
gold, silver, et est rempli quand la clé correspond à l'une d'elles. - Les comparaisons numériques ne sont remplies que si les deux côtés sont des nombres.
Correspondance décide comment les règles se combinent : Toutes les règles doivent être remplies ou Au moins une règle est remplie.

Condition
Condition envoie le membre vers l'une de deux sorties, Oui quand les règles sont remplies et Non quand elles ne le sont pas. Sans règle, chaque exécution prend la sortie Oui, et l'étape affiche Toujours oui.
Utilisez-la pour de vrais choix entre deux options, par exemple un e-mail de bienvenue pour les nouveaux clients et un autre pour les clients qui reviennent.
Filtre
Filtre a une seule sortie. Sous Conserver si, vous définissez les règles, et Correspondance fonctionne comme ci-dessus. Quand les règles sont remplies, le chemin continue. Quand elles ne le sont pas, le chemin s'arrête à cette étape et l'étape compte comme ignorée dans l'exécution. Sans règle, tout passe.
Utilisez Filtre quand un seul résultat compte, par exemple « continuer seulement pour les membres du groupe Premium ».
Comparer
Comparer vérifie exactement deux valeurs l'une par rapport à l'autre :
- Première valeur (obligatoire) et Deuxième valeur prennent chacune un
nom de champ des données,
member.plus un champ de membre,member.cf_plus l'ID d'un champ personnalisé, une valeur e-mail commeemail.opens_7d, une variable comme{{score}}, ou une valeur fixe comme10. Ce champ ne fait pas de suggestions. L'ID d'un champ personnalisé est celui de sa variable{cf_…}, voir Déclencheurs et actions. - Opérateur propose est égal à, n'est pas égal à, contient, supérieur à, supérieur ou égal, inférieur à et inférieur ou égal.
Les sorties sont Correspondance et Aucune correspondance.
Diviser et réunir des chemins : Diviser et Fusionner
Diviser
Diviser déploie le flux en plusieurs chemins. Nombre de branches fixe entre 2 et 5 sorties, nommées Chemin 1, Chemin 2 et ainsi de suite. Chaque chemin reçoit les mêmes données et s'exécute séparément. Un délai sur un chemin ne retient que ce chemin.
Fusionner
Fusionner réunit des chemins. Nombre de chemins entrants fixe entre 2 et 5 entrées. Continuer quand décide de son comportement :
- Chaque chemin continue séparément est le réglage par défaut. Chaque chemin qui arrive continue seul à travers les étapes après Fusionner, ces étapes s'exécutent donc une fois par chemin.
- Tous les chemins sont arrivés attend qu'un chemin soit arrivé sur chaque entrée connectée, puis continue une seule fois. Les données de tous les chemins sont combinées. Quand deux chemins portent le même champ, le chemin arrivé en dernier l'emporte. L'attente couvre aussi les chemins qui contiennent un Délai ou un Attendre jusqu'à la date.
Si un chemin n'arrive jamais, par exemple parce qu'un Filtre l'a arrêté ou qu'une Condition a envoyé le membre ailleurs, Fusionner continue avec les chemins arrivés dès que plus rien d'autre ne s'exécute ni n'attend dans l'exécution.
Attendre : Délai et Attendre jusqu'à la date
Délai
Délai met le chemin en pause pendant une durée fixe. Définissez Durée (au moins 1) et Unité : Minutes, Heures ou Jours. Un nouveau Délai commence à 1 heure. Si la durée est vide, l'éditeur avertit « Le délai n'a pas de durée. »
Attendre jusqu'à la date
Attendre jusqu'à la date met en pause jusqu'à une date qui vient des données :
- Champ de date (obligatoire) nomme le champ qui contient la date, par
exemple
renewal_date. Pour un champ de membre, placezmember.devant son nom. Pour un champ de date personnalisé, écrivezmember.cf_et l'ID du champ. - Sens du décalage, Décalé et Unité déplacent le moment. Après la date (+) attend plus longtemps, Avant la date (-) continue plus tôt. Trois jours avant un renouvellement, par exemple, correspond à Avant la date (-) avec 3 Jours.
Si le moment est déjà passé, le chemin continue aussitôt. Si le champ est vide ou contient autre chose qu'une date, le chemin continue sans attendre, et l'étape affiche une note dans l'exécution, par exemple « Aucune date trouvée dans "renewal_date". Le flux a continué sans attendre. » Une date sans fuseau horaire est lue dans le fuseau horaire défini pour votre plateforme.
Ce qui se passe pendant une pause
Un Délai ou un Attendre jusqu'à la date n'occupe rien. L'exécution enregistre où elle s'est arrêtée, et une tâche d'arrière-plan la reprend quand le moment est venu. Pendant l'attente, l'historique d'exécution l'affiche comme En attente avec la date et l'heure sous Reprise. Quand vous ouvrez l'exécution et cliquez sur l'étape en attente, l'onglet Exécution affiche la même chose.

Une exécution en attente continue avec la version avec laquelle elle a commencé, même si vous publiez une nouvelle version entre-temps. Si vous archivez ou supprimez l'automatisation, les exécutions en attente sont annulées quand leur moment arrive. Mettre l'automatisation en pause les annule aussi, sauf les exécutions de test que vous avez lancées à la main.
Tests et historique d'exécution
Travailler avec les données
Chaque exécution transporte des données : ce que le déclencheur a fourni, plus
tout ce que les étapes précédentes ont ajouté. Les trois étapes suivantes
modifient ces données. Les étapes ultérieures peuvent utiliser chaque champ
comme variable, par exemple {{discount_code}}.
Définir les champs
Définir les champs ajoute des champs ou écrase ceux qui existent. Sous
Champs à définir, chaque ligne a une clé et une valeur. Ajouter ajoute
une autre ligne. Les valeurs peuvent contenir des variables, par exemple
Bonjour {{member.first_name}}.
Date & Heure
Date & Heure calcule une date et l'enregistre dans un champ. Elle n'attend pas. Pour attendre la date calculée, faites-la suivre d'un Attendre jusqu'à la date.
- À partir de : Maintenant ou
Une date déjà présente dans les données. Avec la seconde option,
Champ de date apparaît et nomme le champ de départ : un champ des
données, un champ de membre comme
member.created_at, oumember.cf_et l'ID d'un champ de date personnalisé. Si ce champ est vide ou illisible, l'étape part de maintenant. - Sens (Dans le futur (+) ou Dans le passé (-)), Décalé et Unité (Minutes, Heures, Jours, Semaines ou Mois) déplacent la date.
- Format reste vide pour le format standard
2026-10-22T14:30:00+02:00, ou prend un modèle commeY-m-dpour2026-10-22oud.m.Ypour22.10.2026.
L'étape calcule dans le fuseau horaire défini pour votre plateforme, le même
que celui qu'utilise Attendre jusqu'à la date. Le format standard se
termine par son décalage, par exemple +02:00, afin qu'un
Attendre jusqu'à la date suivant lise le même moment.
- Enregistrer dans le champ (obligatoire) nomme le champ du résultat. Il
commence par
date.
Expression
Expression calcule une valeur avec une courte formule et l'enregistre dans un champ.
- Expression (obligatoire) contient la formule.
payloadreprésente les données etmemberles champs du membre, par exemplepayload["score"] * 2oumember["first_name"] ~ " " ~ member["last_name"]. Vous pouvez calculer avec+ - * /, comparer avec==,>ou<, combiner avecandetor, choisir aveccondition ? a : bet joindre du texte avec~. - Enregistrer le résultat dans (obligatoire) nomme le champ du résultat. Il
commence par
result.
Les données sensibles du membre, comme le mot de passe, ne sont pas disponibles. Si la formule ne peut pas être calculée, le champ reste vide et l'exécution continue.
Répéter des étapes : Boucle
Boucle exécute les étapes qui la suivent une fois pour chaque élément d'une liste.
- Champ de liste (obligatoire) nomme le champ qui contient la liste, par
exemple
items, oumember.tagspour les tags du membre. - Enregistrer chaque élément sous définit le nom du champ pour l'élément
courant. Il commence par
item. La position est enregistrée à côté sousitem_index, en comptant à partir de 0.
Boucle a une seule sortie, et tout ce qui se trouve derrière s'exécute une fois par élément. Il n'y a pas de sortie supplémentaire pour « après le dernier élément ». Si le champ est vide ou n'est pas une liste, le chemin s'arrête à la boucle.
Deux limites gardent les exécutions sous contrôle. Une boucle traite au plus 200 éléments et ignore le reste. Et une exécution traite au plus 500 étapes avant de se mettre en pause ou de se terminer. Une boucle sur 200 éléments avec trois étapes derrière demanderait 600 étapes, l'exécution s'arrête donc avec une erreur. Gardez les boucles courtes, ou déplacez le travail dans une automatisation séparée avec Exécuter le workflow.
Appeler une autre automatisation : Exécuter le workflow
Exécuter le workflow démarre une autre automatisation comme étape et continue une fois qu'elle est terminée.
- Workflow (obligatoire) liste vos automatisations actives qui ont une version publiée. L'automatisation que vous modifiez n'est pas dans la liste, car une automatisation ne peut pas s'appeler elle-même.
- Utiliser le résultat décide de ce qui revient :
L'ignorer, conserver les données de ce flux,
Le fusionner dans les données de ce flux ou
L'enregistrer dans un champ. Pour la dernière option, Nom du champ
définit le champ. Si vous le laissez vide, le résultat arrive dans
sub.
L'autre automatisation démarre à son déclencheur avec les données et le membre de cette exécution, quel que soit son type de déclencheur, et apparaît dans son propre historique d'exécution. Son résultat correspond aux données de son étape Fin, ou de sa dernière étape terminée si elle n'a pas de Fin. Si elle se met en pause à un Délai, ce flux n'attend pas : il prend les données atteintes jusque-là, et l'autre automatisation continue plus tard de son côté.
Quand quelque chose tourne mal :
- Si l'autre automatisation échoue, n'a pas de version publiée ou n'existe plus, cette étape échoue, et l'exécution aussi.
- Si l'autre automatisation est en pause, ce flux continue sans elle, et l'étape affiche une note dans l'exécution.
- Les automatisations peuvent s'appeler les unes les autres jusqu'à cinq niveaux de profondeur. Au-delà, l'étape échoue.
- Si aucun workflow n'est sélectionné, le chemin s'arrête à cette étape. L'éditeur vous en avertit à l'avance : « Aucun workflow n'est sélectionné dans "Exécuter le workflow". »
Répondre à un webhook : Répondre au webhook
Répondre au webhook sert aux automatisations qui commencent par le déclencheur Webhook entrant. Elle décide de ce que le système appelant reçoit en retour.
- Statut HTTP propose 200 OK, 201 Created, 202 Accepted, 400 Bad Request, 404 Not Found et 500 Server Error.
- Corps de la réponse commence par
{ "ok": true }et peut contenir des variables, par exemple{ "ok": true, "code": "{{discount_code}}" }. Un corps en JSON valide part en JSON, tout le reste en texte brut.
Dès que cette étape suit le déclencheur Webhook entrant dans la version
publiée, un appel à ce webhook ne se contente plus de démarrer l'automatisation
en arrière-plan. L'appel attend pendant que l'automatisation s'exécute, et la
réponse part une fois l'exécution terminée ou sa première pause atteinte. Une
étape sur un chemin que le déclencheur webhook n'atteint jamais, par exemple
derrière un autre déclencheur, ne change rien. C'est pourquoi l'étape ne
fonctionne qu'avant tout Délai ou Attendre jusqu'à la date. Si l'un
d'eux vient en premier, l'appelant reçoit la réponse standard
{"ok": true, "triggers_fired": 1}, et l'éditeur avertit : « Répondre au
webhook s'exécute après une étape de délai ou d'attente. L'appelant du webhook
reçoit à la place la réponse par défaut. »
L'étape n'a pas de sortie, rien ne la suit donc sur son chemin. Les autres chemins, par exemple après un Diviser, continuent de s'exécuter.
Terminer un chemin : Fin
Fin arrête le chemin sur lequel elle se trouve. Elle n'a ni paramètres ni sortie. Les autres chemins de la même exécution continuent, et l'exécution compte comme terminée une fois qu'ils ont tous fini.
Un chemin sans autre connexion se termine aussi de lui-même. Fin rend la fin visible sur le canevas et décide des données qu'une automatisation appelante reçoit de Exécuter le workflow.