What your endpoint receives
Every delivery is a JSONPOST with these headers:
Authenticate deliveries by verifying
Adapter-Signature with the secret returned when you created the trigger. Requests carry no bearer token or API key, so an endpoint that expects one will reject every delivery with 401.
id, so dedupe on it.
Success, retries and failure
Respond with any2xx status within 6 seconds to mark the delivery delivered.
Return
4xx only when retrying wouldn’t help. For a temporary problem on your side, return 5xx so the delivery gets its retry.
Checking delivery health
Each trigger carries a rollup of its recent deliveries:
Get trigger details:
status, the status_code your endpoint returned, attempts, duration_ms, and an error message for failures. History is kept for 30 days.
delivered and failed totals across all your triggers for the last 7 days.
The Triggers page in the Console shows the same status and history.
Automatic disabling
After 50 consecutive events fail to deliver, Adapter disables the trigger:enabled becomes false and auto_disabled_at is set. A disabled trigger matches nothing, so events that happen while it is off are not delivered and are not queued for later.
Recovering a failing trigger
1
Find the cause
List the trigger’s deliveries and read
status_code and error on the failed ones.2
Fix your endpoint
Make it accept a signed
POST and return 2xx. If the URL changed, update the trigger’s delivery.url.3
Re-enable the trigger
Update the trigger with This resets
enabled: true:consecutive_failures to 0 and clears auto_disabled_at. Deliveries resume from the next matching event.4
Backfill what you missed
Events that failed or happened while the trigger was off are not redelivered. Use the delivery history to find the window (from the first failure to the moment you re-enabled), then fetch that data through the API. A failed delivery’s
kind, action and key identify the record it was about.