Skip to main content

Event Payloads

Every webhook delivery uses the same envelope: event, event_id, timestamp, workspace_id, client_id and data.

Deduplication with event_id

event_id is a UUID generated once when the event is queued and is stable across all retry attempts — the stored payload is delivered as-is on every attempt. Use it as a deduplication key per webhook endpoint. When multiple webhooks in the same workspace match an event, they all receive the same event_id, so dedupe per endpoint, not globally.

client_id is null for workspace-wide (org-level) events without a client context, and contains the client workspace UUID for client-scoped events. Org-wide webhooks receive both; client-scoped webhooks only receive events for their own client_id.

{
"event": "lead.created",
"event_id": "uuid",
"timestamp": "2026-03-21T10:00:00Z",
"workspace_id": "org-abc123",
"client_id": null,
"data": {
"from_email": "john@acme.com",
"from_name": "John Doe",
"campaign_id": "uuid",
"campaign_name": "Q1 SaaS Outreach",
"first_seen_at": "2026-03-21T10:00:00Z"
}
}