Skip to main content
Kavenio webhooks deliver account, post, ad, and delivery events to HTTPS endpoints you configure for your organization.

Delivery Model

Webhook delivery is at least once. Your endpoint can receive the same event or delivery more than once after retries, network errors, worker restarts, or a manual replay. Use these headers to make handlers idempotent:
  • x-kavenio-event-id: stable event id.
  • x-kavenio-delivery-id: stable delivery id for this endpoint delivery.
  • x-kavenio-event-type: event type, such as post.published.
  • x-kavenio-attempt: delivery attempt number.
Store x-kavenio-delivery-id or the event id plus event type before applying side effects. If you have already processed that id, return a 2xx response.

Retries And Dead Letters

Kavenio treats any non-2xx response, timeout, DNS failure, or unsafe endpoint resolution as a failed attempt. Delivery workers retry with backoff until the maximum attempt count is reached. After the final failed attempt, the delivery is marked dead_lettered and appears in webhook delivery logs. Repeated dead-letter outcomes increment the endpoint failure count. After the threshold is reached, Kavenio pauses the endpoint by setting isActive to false and disabledAt to the time it was paused. Fix the endpoint, then reactivate it from webhook settings.

Event Dedupe

Post lifecycle webhooks keep the same event payload shape while using target-aware dedupe keys internally. Multi-target posts can therefore enqueue distinct lifecycle events as target status changes without requiring you to handle a new payload version.