Les deux formes
Celle que vous recevez dépend du type de séquence auquel appartient l'étape, et le champevent vous l'indique sans avoir à deviner.
| Séquence | event | Transporte |
|---|---|---|
| Un parcours dans lequel des personnes sont inscrites | sequence.node.webhook | Un contact, au moment où il passe l'étape |
| Une série à date fixe | sequence.series.webhook | Un lot de contacts — l'audience de cette étape |
Un contact
json
{
"event": "sequence.node.webhook",
"occurredAt": "2026-09-21T09:00:00.000Z",
"sequence": {"id": "…", "name": "Onboarding"},
"node": {"id": "…"},
"contact": {
"id": "…",
"email": "alice@example.com",
"firstName": "Alice",
"lastName": null
}
}Un lot
json
{
"event": "sequence.series.webhook",
"occurredAt": "2026-09-21T09:00:00.000Z",
"sequence": {"id": "…", "name": "Spring launch"},
"node": {"id": "…"},
"batch": {"index": 3, "size": 500},
"contacts": [
{
"id": "…",
"email": "alice@example.com",
"firstName": "Alice",
"lastName": null
}
]
}batch.index est le rang de ce lot dans une exécution de l'étape, compté à partir de zéro, et batch.size est le nombre de contacts qu'il transporte. Le couple est stable : si vous voyez un jour deux fois le même node.id + batch.index pour la même exécution, ce sont les mêmes contacts — c'est ce qui vous permet de reconnaître un lot déjà traité.
L'audience est figée au démarrage de l'étape. Les contacts qui arrivent pendant que les lots partent appartiennent à l'étape suivante, pas à celle-ci.
Ce qui n'y figure jamais
Trois choses, et aucune par hasard :- aucun secret — pas de clé d'API, ni lien ou jeton de désabonnement, qui est une capacité et non un identifiant ;
- aucun identifiant d'organisation ;
- aucune réponse de votre part n'est lue — le corps que vous renvoyez est jeté sans être ouvert.
Ce que nous exigeons de votre URL
httpsuniquement. Une URL enhttpsimple est refusée à la publication.- Une adresse joignable publiquement. Les adresses privées, locales et internes sont refusées — y compris un nom d'hôte parfaitement public qui se résout vers l'une d'elles, et y compris une adresse atteinte via une redirection. Chaque saut est vérifié à nouveau.
- Trois redirections au maximum.
- Une réponse en moins de cinq secondes. Au-delà, l'appel est un dépassement de délai. Répondez d'abord, travaillez ensuite : accusez réception de la requête, puis faites votre traitement à part. Un lot est dimensionné pour tenir dans cette fenêtre : gardez votre gestionnaire rapide plutôt qu'exhaustif.
2xx est un succès. Tout le reste est une erreur, et rien n'est deviné à son sujet.
Quand il échoue
Un appel échoué n'est jamais retenté. Un appel webhook part au plus une fois — le retenter pourrait créer deux fois la même commande, la même tâche ou la même fiche de votre côté. Un appel qui échoue est, pour vous, un appel qui n'a jamais eu lieu.
| Affiché | Signification |
|---|---|
| réussi | Votre endpoint a répondu un 2xx. |
| erreur | Votre endpoint a répondu autre chose — le code de statut est affiché. |
| délai dépassé | Rien n'est revenu en cinq secondes. |
| destination refusée | Nos règles ont refusé l'adresse avant que quoi que ce soit ne soit envoyé. |