# Conditions de sortie et objectifs

> Faites sortir les contacts d’une automatisation dès qu’ils achètent ou quittent une liste, faites sauter les exécutions jusqu’à un objectif, et déplacez des contacts d’une automatisation à l’autre.

Une exécution parcourt normalement ses étapes jusqu’à la fin de sa branche. Les conditions de sortie et les objectifs changent cela dès que le contact fait quelque chose, où que se trouve l’exécution, y compris pendant une attente : une **condition de sortie** met fin à l’exécution, et un **objectif** la fait avancer jusqu’à l’étape d’objectif.

| Vous voulez | Utilisez |
| --- | --- |
| Arrêter les relances de panier quand le contact achète | Une [condition de sortie](#exit-conditions) sur l’achat |
| Arrêter une séquence quand le contact quitte la liste qui l’a démarrée | [Quitter la liste](#leave-when-removed-from-the-audience) |
| Sauter les relances restantes et envoyer plutôt un remerciement | Un [objectif](#goals) |
| Faire sortir les acheteurs de toutes les automatisations promotionnelles | Une étape [Remove from automations](#move-contacts-between-automations) |
| Arrêter l’exécution d’un contact à la main ou depuis votre application | [Annuler l’exécution ou retirer le contact](/fr/docs/automations/runs/#cancel-a-run) |

Les étapes **Goal**, ainsi que les conditions de sortie, les objectifs et les attentes sur des [événements d’espace de travail ou personnalisés](/fr/docs/events/), sont inclus dans les forfaits Pro, Business et Custom. Sur Pay as you go, enregistrer une automatisation qui les ajoute renvoie `403` avec `"error": "plan_required"`. Les automatisations qui les ont déjà les gardent après un passage à un forfait inférieur.

## Conditions de sortie

Les conditions de sortie se trouvent dans l’onglet **Settings** de l’automatisation, sous **Exit conditions**. Quand l’une d’elles correspond pour un contact, son exécution dans cette automatisation est annulée immédiatement : les étapes en attente sont abandonnées et plus aucune étape ne s’exécute. Le statut de l’exécution passe à **Canceled**, avec la note **Met an exit condition**.

Il en existe deux types :

- **When something happens** : un événement concernant le contact, choisi comme un [déclencheur](/fr/docs/automations/triggers/#contact-triggers), avec ses options. Par exemple **Custom event** `purchase` envoyé avec l’[API des événements](/fr/docs/events/send-events/) (les événements du [script de suivi](/fr/docs/events/tracking-script/#identify-visitors) ne mettent pas fin aux exécutions), **Tag added** `customer`, **Contact updated** avec **Field that changed** `Purchased`, ou **Unsubscribed**. Les événements personnalisés et les commandes acceptent un filtre facultatif, par exemple uniquement les commandes dont le `total` est supérieur à `50`.
- **When the contact matches** : des règles sur le contact, comme dans une étape [Condition](/fr/docs/automations/steps/#condition-ifelse). Par exemple « has tag `customer` » ou « **Purchased** is true ». Elles sont vérifiées à chaque modification du contact et avant chaque étape : un contact qui remplit déjà la condition ne reçoit donc jamais l’e-mail suivant, même si la modification a eu lieu un instant plus tôt.

Les conditions de sortie s’appliquent aux exécutions déjà en cours dès que vous les enregistrez, continuent de fonctionner pendant que l’automatisation est en pause et nécessitent une automatisation Contact. Une automatisation peut en avoir 20 au maximum.

L’équipe Emailit peut aussi faire sortir les contacts sur **Placed an order** et **Abandoned a cart** de [Commerce](/fr/docs/commerce/), sur **Removed from segment** pour un [segment avec suivi](/fr/docs/segments/tracked/), et utiliser des règles **Segment** et **Purchases** dans les conditions. Ces options sont en alpha, comme Commerce et les segments. Les contacts qui sortent d’un segment parce que quelqu’un a modifié ses règles ne sortent pas de l’automatisation.

### Sortir quand le contact est retiré de la liste

Pour les automatisations démarrées par **Added to audience**, activez **Leave when removed or unsubscribed from the audience that started the run**. L’exécution d’un contact est alors annulée quand il est retiré de cette liste, s’en désinscrit ou se désinscrit de tous les e-mails marketing, par exemple quand votre boutique le retire d’une liste « Paniers abandonnés » après un achat. La note de l’exécution est **Left the audience**. Une étape **Remove from audience** ou **Subscribe / unsubscribe** de l’exécution elle-même ne met pas fin à cette exécution.

Les automatisations Contact créées dans le tableau de bord ont cette option activée. Celles créées avec l’API l’ont désactivée, sauf si vous définissez `exit_on_audience_removal: true`. Sans elle, une exécution continue après le départ du contact ; les e-mails marketing ignorent toutefois toujours les contacts désinscrits.

### Avec l’API

Définissez `settings.exit_conditions` quand vous [créez](/fr/docs/api-reference/automations/create/) ou [mettez à jour](/fr/docs/api-reference/automations/update/) l’automatisation. Chaque entrée est soit un critère d’événement (la clé du déclencheur dans `event` et ses options), soit `{ "condition": { "match", "rules" } }` :

```json
{
  "settings": {
    "exit_on_audience_removal": true,
    "exit_conditions": [
      { "event": "contact.on_event", "event_name": "purchase" },
      { "event": "contact.on_event", "event_name": "c:order.completed", "filter": { "match": "all", "rules": [{ "field": "properties.total", "operator": "greater_than", "value": 50 }] } },
      { "event": "contact.tag_added", "tag": "customer" },
      { "condition": { "match": "all", "rules": [{ "field": "custom_fields.purchased", "operator": "is_true" }] } }
    ]
  }
}
```

## Objectifs

Une étape **Goal** marque un point que l’exécution doit atteindre dès que le contact remplit l’objectif. Quand le contact le remplit, son exécution y saute depuis l’endroit où elle se trouve : les étapes et les attentes intermédiaires sont ignorées (marquées **skipped** dans l’exécution), l’objectif est marqué comme atteint, et l’exécution continue avec les étapes qui suivent l’objectif. Les objectifs sont inclus dans les forfaits Pro, Business et Custom.

Par exemple, une séquence d’essai envoie un conseil tous les trois jours, avec vers la fin un objectif « **Tag added** `paid` » suivi d’un e-mail de remerciement. Un contact qui passe à un forfait supérieur le deuxième jour saute les conseils restants et reçoit immédiatement le remerciement.

| Paramètre | Remarques |
| --- | --- |
| **Goal is met when** | **Something happens** (un événement concernant le contact) ou **The contact matches a condition** (vérifiée à chaque modification du contact). |
| **When a contact reaches the goal without meeting it** | **Continue anyway**, **Wait until the goal is met** (365 jours au maximum, puis l’exécution se termine) ou **End the automation for them**. |

Une exécution atteint chaque objectif une fois au maximum, et les objectifs situés dans une branche de [random split](/fr/docs/automations/steps/#api-only-steps) ne reviennent pas ensuite au split. Comme les conditions de sortie, les objectifs continuent de fonctionner pendant que l’automatisation est en pause.

Avec l’API, un objectif est une étape `goal` : `{ "event": { "event": "contact.tag_added", "tag": "paid" }, "if_not_met": "continue" }` ou `{ "condition": { ... } }`.

## Déplacer des contacts entre automatisations

- **Start automation** démarre une autre automatisation pour le contact. Activez **Move the contact** pour mettre fin ensuite à l’exécution en cours.
- **Remove from automations** annule les exécutions du contact dans d’autres automatisations que vous choisissez, ou dans **Every other automation**.

Par exemple, quand votre boutique ajoute le tag `customer` aux acheteurs via l’API, une automatisation « Acheteurs » démarrée par ce tag peut les retirer de toutes les automatisations promotionnelles et les déplacer vers l’onboarding :

```json
{
  "steps": [
    { "key": "bought", "type": "trigger", "trigger": "contact.tag_added", "config": { "tag": "customer" } },
    { "key": "leave", "type": "action", "action": "exit_automation", "config": { "all": true } },
    { "key": "onboard", "type": "action", "action": "run_automation", "config": { "automation_id": "aut_3Mv8Xq2nKp5Lt", "exit_current": true } }
  ],
  "connections": [
    { "from": "bought", "to": "leave", "branch": "default" },
    { "from": "leave", "to": "onboard", "branch": "default" }
  ]
}
```

## Voir aussi

  - [Étapes](/fr/docs/automations/steps/): Wait until, Goal, Remove from automations et plus encore.
  - [Exécutions et statistiques](/fr/docs/automations/runs/): Découvrez pourquoi une exécution a été annulée, annulez des exécutions.

---
Source: https://emailit.com/fr/docs/automations/exits-and-goals/
