Overview
Provide awebhook_url when triggering a workflow to receive an HTTP POST with execution results when it completes (successfully or with an error). Add a webhook_secret to have each delivery signed so you can verify it came from each::labs.
Setting Up
Includewebhook_url in your trigger request, and webhook_secret to receive signed deliveries:
Webhook Request
- Method:
POST - Content-Type:
application/json - Body: Same structure as Get Execution response
Signature headers
When the trigger included awebhook_secret, the delivery also carries:
Verify the signature over the raw request body — see Verifying Webhook Signatures.
Payload Examples
Successful Execution
Failed Execution
Bulk Trigger Webhook
When triggered via bulk-trigger, the payload includesbulk_id:
Handler Examples
Retry Behavior
Deliveries are attempted up to 3 times in total: the initial attempt plus 2 retries, spaced roughly 10 seconds apart. Every attempt carries the same signature and timestamp. Your endpoint should return a200 OK to acknowledge receipt.
Best Practices
- Return
200 OKimmediately, process data asynchronously - Implement idempotency using
execution_idas a deduplication key - Handle both
completedandfailedstatuses - For bulk operations, correlate webhooks using
bulk_id - Set a
webhook_secretand verify the signature before trusting a payload