For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhook payloads

Sample payloads and headers sent by Distro Workflows webhooks.

Sample webhook payloads for different sources in Distro Workflows.

Distro sends JSON by HTTP POST 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: the trigger that fired the webhook (see Workflows).

  • timestamp: ISO 8601 time when Distro built the payload. Retries reuse the payload.

  • data: the event payload. Shape depends on source type.

Conventions:

  • Keys use snake_case.

  • data.source_type is one of: router, click_router, booking_link, group_meeting_link, outbound_router.

  • Submission-only triggers include submission and assignee; they omit booking and attendees. Meeting triggers include booking, assignee, and attendees; they omit submission.

Meeting details

Booking payloads also include location, in_person, and event_type. For an in-person meeting, use location as the meeting address; do not expect a conferencing URL. event_type, when present, contains id, title, and availability_mode.

For an Outbound Router, source_type is outbound_router, source_id identifies the router, and source_title contains its name. The booking envelope is the same as other meeting sources. Outbound attendees also include their role.

Payload examples

Triggered by Form Routers.

Submission-only events

For form_submitted, prospect_disqualified, and prospect_no_booking, the payload includes submission details and omits booking details. If no host was assigned, assignee is an empty object.

Triggered by Click Routers.

Operational notes

HTTP headers and signatures

Production deliveries include these headers by default:

  • Content-Type: application/json

  • User-Agent: Distro-Webhooks/1.0

  • X-Distro-Delivery-ID: unique delivery ID for tracking

  • X-Distro-Timestamp: Unix timestamp of request (seconds)

  • X-Distro-Signature: t={timestamp},v1={signature} (only if a signing secret is configured)

Test webhooks include X-Distro-Test: true and may omit X-Distro-Delivery-ID. Custom headers can override defaults; avoid reusing the Distro header names.

Use X-Distro-Delivery-ID as an idempotency key if you store deliveries. Return a successful HTTP response after accepting the request. Failed production deliveries can be retried, up to six attempts. Review workflow history when delivery fails.

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

Event-specific notes

Cancelled meetings

When event is meeting_cancelled, booking.status is cancelled.

No-show meetings

When event is meeting_no_show, booking.status is no_show.

Payload limits
  • Maximum payload size: 1 MB

  • Maximum form_data size: 100 KB

If limits are exceeded, Distro truncates data and includes a truncation marker:

Last updated