Execution Webhook Payload
The POST sent to a workflow’s webhook URL once each execution finishes: how it ended, and every node the contact passed through.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The body of the execution webhook, sent once when an execution finishes.
Always execution.terminal.
execution.terminal The payload version. Fields are only ever added within a version.
1
The execution's id, as used by the execution APIs. Stable across a resend, so it is what to deduplicate on.
The published version the execution ran.
Your own identifier for the contact, exactly as you uploaded it.
How the execution ended. Reaching any end node is completed, including one labelled a failure — read outcome for that.
completed, failed, cancelled, aborted When the execution finished. A resend carries the same value.
Every node attempt in order, with the branch each one took. Always complete, however large.
The end node's label when the execution reached one. Otherwise why it stopped, always one
of internal_error, required_variable_missing, cancelled, campaign_aborted, zombie or terminated.
The end node's classification. null when no end node was reached.
success, failure, neutral Response
Return any 2xx status once you have accepted the payload. Anything else is logged as a failed delivery.

