Webhooks
Webhooks
Receive durable FluxDigest events in your application.
Webhooks deliver events when subscriber, newsletter, campaign, form, and operation state changes. They are the public integration mechanism for durable automation; the dashboard's server-sent event stream is not a public API.
Create an endpoint
Workspace Admins can create an endpoint under Settings > Developers > Webhooks. Provide an HTTPS URL and select only the event types your integration handles.
const endpoint = await fluxdigest.webhookEndpoints.create({
workspaceId: "ws_123",
url: "https://example.com/webhooks/fluxdigest",
events: ["subscriber.created", "campaign.sent", "campaign.failed"],
});The signing secret is shown once. Store it separately from the API key.
Delivery model
FluxDigest provides at-least-once delivery. Your endpoint must:
- verify the signature over the exact raw request body;
- reject stale timestamps;
- deduplicate by event ID;
- enqueue processing before returning a
2xxresponse; - retrieve current resource state when ordering matters.
Delivery order is not globally guaranteed. Duplicate events are expected during network failures and retries.
Event envelope
{
"id": "evt_01JEXAMPLE",
"type": "campaign.sent",
"api_version": "2026-08-24",
"created_at": "2026-08-24T12:30:00Z",
"workspace_id": "ws_123",
"data": {
"object": {
"id": "cmp_123",
"object": "campaign",
"status": "sent"
},
"previous_attributes": {
"status": "sending"
}
}
}
