Webhook delivery and retries
When to use this guide: You need delivery guarantees, timeouts, and failure behavior for product Webhooks. Inbound Sources→CRM queueing is covered under Sources and delivery.
Delivery semantics
Section titled “Delivery semantics”OutboundSync delivers each event at least once. Expect duplicates and out-of-order arrivals: dedup on event id (osevt_…) and order by created when sequence matters.
- Timeout: each attempt waits up to 10 seconds.
- Retries: one initial attempt plus 7 retries. The first retry waits 1 minute plus 0–300 seconds of per-delivery jitter; later retries follow 2, 4, 8, 16, 30, and 60 minutes (about two hours total, same shared policy as Forwarding destinations).
- Success: any
2xxresponse. - Terminal (no retry): HTTP
404and413mark the delivery dead immediately. - Other failures retry until exhausted, then status
DEAD.
Auto-disable
Section titled “Auto-disable”After 20 consecutive terminally failed (DEAD) deliveries, OutboundSync auto-disables the webhook. A successful delivery resets the counter. Re-enable with PATCH /api/v1/webhooks/:id and { "isActive": true } (or in Dashboard → Webhooks).
Events log as source of truth
Section titled “Events log as source of truth”GET /api/v1/events is the reconciliation log. Events remain queryable even if no webhook was active when they occurred. Use it to recover anything missed while an endpoint was down, then replay specific deliveries when needed.