Skip to main content

Generic Webhooks

Dispatch works with any service that can send or receive HTTP webhooks — no specific integration required.

Receiving Webhooks (Source)

Any service that supports outgoing webhooks can send events to Dispatch. Create a source endpoint and point the external service at your webhook URL:

POST https://your-api.dispatch.tech/hooks/<slug>

Authentication

Choose one of two methods when configuring the external service:

HMAC signature — most webhook senders support signing their requests. Set the signing secret on both the external service and your Dispatch endpoint. Dispatch accepts signatures in either of these headers:

X-Hub-Signature-256: sha256=<hex-hmac>
X-Dispatch-Signature: sha256=<hex-hmac>

API key — if the external service can set custom headers, use a project API key:

Authorization: Bearer dsp_your-api-key

Event Type Extraction

If the sending service doesn't include an event type header, set the Event Type Path on the endpoint to a dot-notation path into the JSON body (e.g., action, event.type, or data.object). Dispatch will extract the event type from that field automatically.

Example

BODY='{"action":"opened","issue":{"title":"Bug report"}}'
SIG=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "your-signing-secret" | cut -d' ' -f2)

curl -X POST https://your-api.dispatch.tech/hooks/my-slug \
-H "Content-Type: application/json" \
-H "X-Dispatch-Signature: sha256=$SIG" \
-d "$BODY"

Dispatch responds with 202 Accepted and an event_id once the event is queued.

Forwarding Webhooks (Destination)

Create a Webhook destination to forward events to any HTTP endpoint. Dispatch will POST the event payload to the target URL.

Creating a Webhook Destination

  1. Navigate to DestinationsCreate Destination
  2. Enter a name
  3. Select Webhook as the type
  4. Enter the target URL
  5. Optionally filter by event types
  6. Click Create

What Gets Sent

The raw event payload is forwarded as a JSON POST request. If a transform is configured on the link, the transformed payload is sent instead. Templates are not applied to webhook destinations — the payload (original or transformed) is always forwarded as-is.

Dispatch also injects headers identifying the event:

X-Dispatch-Event-ID: <event-uuid>
X-Dispatch-Endpoint-ID: <endpoint-uuid>

The prefix (dispatch) can be customized per project via the Header Prefix setting.

Retry Behavior

Failed deliveries are retried automatically using the destination's retry policy (default: 7 attempts with exponential backoff). See Destinations for details.