Référence
Étapes d’automatisation
Référence de toutes les étapes d’automatisation, de l’envoi d’e-mail, de l’attente et de la condition aux étapes de liste, de contact et de blocage, ainsi que les branches et les échecs d’étape.
Les étapes sont ce que fait une exécution une fois son déclencheur activé. Cette page liste toutes les étapes par contexte avec leurs paramètres et leurs règles, explique comment les étapes se relient en branches et montre ce qui se passe quand une étape échoue.
Ajouter et configurer des étapes
Dans l’onglet Editor de l’automatisation (disponible lorsque l’automatisation est en brouillon ou en pause) :
- Ajouter une étape : sélectionnez le bouton plus sous la dernière étape, ou sous Yes ou No sur une condition. Effectuez une recherche dans le sélecteur ou choisissez dans Actions.
- Configurer une étape : sélectionnez-la sur le canevas. Ses paramètres s’ouvrent dans un panneau latéral. Une fois l’étape exécutée, un onglet Stats apparaît à côté de Configure.
- Retirer une étape : sélectionnez-la, puis sélectionnez Delete step dans le panneau latéral.
- Enregistrer : sélectionnez Save. Les étapes qui posent problème sont mises en évidence avec un nombre d’erreurs.
Étapes par contexte
| Étape | Clé API | Contact | Event (API) | |
|---|---|---|---|---|
| Send email | send_email |
Oui | Oui | Oui |
| Wait / Delay | wait |
Oui | Oui | Oui |
| Condition (If/Else) | condition |
Oui | Oui | Oui |
| Add to audience | add_to_audience |
Oui | ||
| Remove from audience | remove_from_audience |
Oui | ||
| Edit contact | edit_contact |
Oui | ||
| Forward email | forward_email |
Oui | Oui | |
| Add to suppressions | add_to_suppressions |
Oui | Oui | |
| Remove from suppressions | remove_from_suppressions |
Oui | Oui | |
| Create contact | create_contact |
Oui | Oui | |
| Étapes réservées à l’API | call_webhook, run_automation, experiment, end |
API | API | API |
Les paramètres des étapes peuvent contenir des variables comme {{contact.first_name}} ou {{payload.object.to}}, remplacées pour chaque exécution. Consultez Données disponibles pour les étapes.
Send email
Envoie un e-mail construit à partir de l’un de vos modèles.
| Paramètre | Obligatoire | Remarques |
|---|---|---|
| Email template | Oui | Le modèle à envoyer. Avec l’API, template_id accepte un ID tem_ ou un alias, qui utilise la version publiée. |
| To (recipient) | Contextes Email et Event | L’adresse à laquelle envoyer. Les automatisations Contact envoient toujours au contact de l’exécution. |
| Subject | Non | Remplace l’objet du modèle. |
| From | Non | Remplace l’expéditeur du modèle, par exemple "Acme" <hello@acme.com>. |
| Reply to | Non | Remplace l’adresse de réponse du modèle. |
Règles :
- Le rendu du modèle est effectué avec Temple. Dans les automatisations Contact, les champs du contact sont disponibles directement :
{{first_name}},{{email}}et{{custom_fields.plan}}fonctionnent donc. Chaque contexte dispose aussi de{{contact.*}},{{payload.*}}et{{meta.*}}. Les balises de fusion des campagnes comme{{cf.plan}}et{{unsubscribe_url}}ne sont pas remplacées. - L’expéditeur doit se trouver sur un domaine vérifié. Le remplacement From ou l’expéditeur du modèle doit utiliser un domaine vérifié dans l’espace de travail. Save vérifie les remplacements, et l’étape échoue à l’exécution si le domaine n’est pas vérifié.
- Un objet et un contenu sont obligatoires, issus du modèle ou des remplacements.
- Chaque e-mail coûte 1 crédit, en plus des 3 crédits de l’exécution.
- Les abonnements ne sont pas vérifiés. L’e-mail est envoyé même si le contact s’est désinscrit de vos listes. Les adresses bloquées restent bloquées à la livraison, et les espaces de travail en bac à sable ne peuvent envoyer qu’aux adresses des comptes des membres.
- Ni lien de désinscription, ni suivi des chargements et des clics. Les e-mails d’automatisation ne reçoivent pas d’en-têtes
List-Unsubscribe, et les chargements et les clics ne sont pas suivis.
Les Stats de l’étape suivent chaque e-mail envoyé jusqu’à Accepted et Delivered, et comptent les rebonds, les échecs et les plaintes.
Wait / Delay
Met l’exécution en pause avant l’étape suivante.
| Paramètre | Remarques |
|---|---|
| Duration et Unit | Minutes, Hours ou Days. L’attente la plus longue est de 30 jours. Avec l’API, définissez seconds, jusqu’à 2592000. |
Pendant qu’une exécution attend, elle reste Running et l’étape d’attente apparaît comme en attente. Mettre l’automatisation en pause n’interrompt pas les exécutions en attente.
Condition (If/Else)
Envoie l’exécution sur la branche Yes quand les règles sont remplies, ou sur la branche No sinon.
- Règles : un champ, un opérateur et une valeur, combinés avec All rules match ou Any rule matches. Les opérateurs sont les mêmes que pour les filtres de déclencheur.
- Champs : dans les automatisations Contact, Email, First name, Last name et vos champs personnalisés. Dans les automatisations Email, les champs de l’événement du déclencheur. Avec l’API,
fieldpeut être n’importe quel chemin, avec les préfixescontact.,email.,payload.etmeta.. - Branches : ajoutez l’étape suivante sous Yes, No ou les deux. Une branche sans étape termine l’exécution à cet endroit.
Add to audience
Contexte Contact. Inscrit le contact de l’exécution à l’Audience que vous choisissez. Si le contact s’en était désinscrit, il est réinscrit. L’étape échoue si la liste a atteint sa limite d’abonnés. Elle ne démarre pas les automatisations Added to audience.
Remove from audience
Contexte Contact. Désactive l’abonnement du contact à l’Audience. Le contact reste dans la liste en tant qu’abonné désinscrit, contrairement à Remove from audience dans le tableau de bord, qui supprime l’appartenance à la liste.
Edit contact
Contexte Contact. Définit un ou plusieurs champs du contact de l’exécution. Ajoutez une ligne par champ, avec un Field name et une Value :
| Nom du champ | Effet |
|---|---|
first_name, last_name, email |
Met à jour ce champ. |
unsubscribed |
Définit le statut marketing du contact. Utilisez true pour désinscrire le contact de toutes les campagnes. Toute valeur non vide compte comme true. |
| Tout autre nom | Enregistre la valeur dans le champ personnalisé portant cette clé, en conservant les autres champs personnalisés. |
Les valeurs peuvent utiliser des variables, par exemple {{payload.object.audience.name}}. La modification n’envoie pas d’événement contact.updated : elle ne démarre donc ni automatisations Contact updated ni webhooks.
Forward email
Contextes Email et Event. Envoie une copie de l’e-mail de l’exécution, avec son contenu et ses pièces jointes d’origine, à l’adresse indiquée dans Forward to. L’objet devient « Fwd: » suivi de l’objet d’origine. L’e-mail doit provenir d’un domaine d’envoi vérifié de l’espace de travail, et chaque transfert coûte 1 crédit. Consultez Transférer avec des automatisations.
Add to suppressions
Contextes Email et Event. Ajoute une adresse à votre liste d’adresses bloquées avec le type recipient, qui bloque tout envoi vers elle, et la Reason que vous saisissez (par défaut automation). Dans les automatisations Email, l’adresse est celle du destinataire de l’e-mail. Dans les automatisations Event, définissez email avec l’API, par exemple {{payload.email}}. L’étape envoie un événement suppression.created.
Remove from suppressions
Contextes Email et Event. Retire l’adresse de la liste d’adresses bloquées : le destinataire de l’e-mail dans les automatisations Email, ou l’email défini avec l’API dans les automatisations Event.
Create contact
Contextes Email et Event. Crée un contact et, si vous choisissez une Audience (optional), l’y inscrit.
- Dans les automatisations Email, le contact est l’adresse du destinataire de l’e-mail. Pour les e-mails reçus, il s’agit de l’adresse à laquelle l’e-mail a été envoyé. Pour créer plutôt un contact pour l’expéditeur, définissez
emailsur{{email.mail_from}}avec l’API. - Dans les automatisations Event, définissez
emailet éventuellementfirst_nameavec l’API. - Si le contact existe déjà, il est conservé tel quel et seulement inscrit à la liste.
- L’étape ne démarre pas les automatisations Added to audience.
Étapes réservées à l’API
Ces étapes peuvent être ajoutées avec l’API, mais pas encore dans l’éditeur du tableau de bord. Elles fonctionnent dans tous les contextes.
| Étape | Clé API | Configuration | Effet |
|---|---|---|---|
| Call webhook | call_webhook |
url (obligatoire), method (par défaut POST), headers, body |
Envoie une requête HTTP avec un type de contenu JSON et enregistre la réponse. Une réponse non 2xx ou un timeout est enregistré comme résultat de l’étape (2xx, 4xx, 5xx, timeout ou network_error) et ne fait pas échouer l’exécution. |
| Run automation | run_automation |
automation_id (obligatoire) |
Démarre une exécution d’une autre automatisation en cours avec le même payload, puis continue. L’autre exécution coûte ses propres 3 crédits. Ignorée si cette automatisation n’est pas en cours. |
| Random split | experiment |
variants : liste de { "key", "weight" }, control facultatif |
Envoie chaque exécution sur une branche tirée au hasard, en proportion des poids. La branche de chaque variante porte le nom de sa key. Quand la branche d’une variante se termine, l’exécution continue sur la branche default de l’étape. |
| End | end |
Aucune | Marque la fin d’une branche. |
{
"key": "notify-crm",
"type": "action",
"action": "call_webhook",
"config": {
"url": "https://crm.acme.com/hooks/new-subscriber",
"method": "POST",
"headers": { "Authorization": "Bearer crm_token" },
"body": { "email": "{{contact.email}}", "source": "emailit" }
}
}Branches et connexions
Avec l’API, une automatisation est une liste de steps, chacune avec une key unique, et une liste de connections d’une clé d’étape à la suivante :
{
"steps": [
{ "key": "trigger-1", "type": "trigger", "trigger": "contact.added_to_audience", "config": {} },
{ "key": "is-pro", "type": "action", "action": "condition", "config": {
"filter": { "match": "all", "rules": [{ "field": "custom_fields.plan", "operator": "equals", "value": "pro" }] }
} },
{ "key": "send-pro", "type": "action", "action": "send_email", "config": { "type": "template", "template_id": "welcome-pro" } },
{ "key": "send-free", "type": "action", "action": "send_email", "config": { "type": "template", "template_id": "welcome-free" } }
],
"connections": [
{ "from": "trigger-1", "to": "is-pro", "branch": "default" },
{ "from": "is-pro", "to": "send-pro", "branch": "yes" },
{ "from": "is-pro", "to": "send-free", "branch": "no" }
]
}branchvautdefaultpour une étape suivante normale,yesounoaprès une condition, et une clé de variante après un random split.- Une condition ne suit que la branche qu’elle a choisie. Une connexion
defaultsortant d’une condition n’est jamais suivie. - Une étape avec plusieurs connexions sortantes sur la même branche les démarre toutes, et les branches s’exécutent en parallèle.
- Chaque étape doit être accessible depuis un déclencheur. Dans les automatisations Contact et Email à plusieurs déclencheurs, tous les déclencheurs doivent être reliés à la même première étape.
- Envoyez
stepsetconnectionsensemble lorsque vous mettez à jour une automatisation. Les étapes dont la clé ne change pas conservent leur historique et leurs statistiques.
Quand une étape échoue
Par défaut, une étape en échec fait échouer toute l’exécution, et les étapes restantes ne s’exécutent pas. L’erreur est enregistrée sur l’étape, et vous pouvez la lire dans les détails de l’exécution, dans l’onglet Runs. Réglez on_step_failure sur skip dans les settings de l’automatisation avec l’API pour que les exécutions continuent malgré les étapes en échec.
| Erreur | Cause |
|---|---|
send_email: Template '…' not found or not published |
Le modèle a été supprimé, ou l’alias n’a aucune version publiée. |
send_email: Sending domain is not verified or not found |
Le domaine de l’expéditeur n’est pas vérifié dans l’espace de travail. |
send_email: Unable to determine recipient address |
To (recipient) est vide, ou le contact n’existe plus. |
send_email: Insufficient credits (…) |
L’espace de travail n’a plus de crédits. |
Pro includes 50,000 subscribers per audience. (ou la limite de votre forfait) |
Une étape Add to audience ou Create contact a rencontré une liste pleine. |
forward_email: Source email has no raw content to forward |
Le contenu de l’e-mail a déjà été supprimé par vos paramètres de conservation des données. |
Pour trouver et corriger les exécutions en échec, consultez Exécutions et statistiques.