Webhook payloads
Sample payloads and headers sent by Distro Workflows webhooks.
Sample webhook payloads for different sources in Distro Workflows.
Distro sends JSON to your configured webhook URL.
Payload shape depends on the source type and trigger.
Payloads are examples. Distro may add fields over time.
Basics
All webhooks use the same envelope:
{
"event": "meeting_booked",
"timestamp": "2024-01-15T10:30:00Z",
"data": {}
}event: the trigger that fired the webhook (see Triggers).timestamp: ISO 8601 time when Distro sent the webhook.data: the event payload. Shape depends on source type.
Conventions:
Keys use
snake_case.data.source_typeis one of:router,click_router,booking_link,group_meeting_link.data.bookingcan benullfor submission-only triggers.
Payload examples
Triggered by Click Routers.
Triggered by Personal Booking Links.
Triggered by Group Meeting Links.
Operational notes
HTTP headers and signatures
Every webhook request includes:
Content-Type: application/jsonUser-Agent: Distro-Webhooks/1.0X-Distro-Delivery-ID: unique delivery ID for trackingX-Distro-Timestamp: Unix timestamp of request (seconds)X-Distro-Signature:t={timestamp},v1={signature}(only if a signing secret is configured)X-Distro-Test: true(only for test webhooks)
Use X-Distro-Delivery-ID as an idempotency key if you store deliveries.
Verifying signatures
Signature header:
X-Distro-Signature: t={timestamp},v1={signature}Signed content:
{timestamp}.{raw_request_body}Algorithm: HMAC-SHA256 using your signing secret
Compare the computed hex digest with
v1
Use the raw request body bytes for verification.
Don’t parse and re-serialize JSON before hashing.
Last updated