Skip to main content

Events & Deliveries

Events​

An event represents a single incoming webhook request. When an external service POSTs to your endpoint, Dispatch creates an event record with the full request payload and metadata.

Event Fields​

FieldDescription
idUnique event ID (UUID)
endpoint_idThe endpoint that received the webhook
organization_idThe owning organization
event_typeExtracted event type (e.g., push, pull_request)
payloadThe full JSON request body
headersAll request headers as a JSON object
source_ipIP address of the sender
idempotency_keyOptional key for deduplication
statusreceived or filtered
created_atTimestamp of receipt

Event Status​

StatusDescription
receivedEvent passed filters and was queued for delivery
filteredEvent was blocked by endpoint filters (not delivered)

Idempotency​

If an event includes an idempotency key (via a header or payload field), Dispatch rejects duplicate events with 409 Conflict. This prevents double-processing when a sender retries a webhook.

Deliveries​

A delivery attempt records the result of sending an event to a destination. Each event can have multiple delivery attempts across multiple destinations, and each destination may have multiple retry attempts.

Delivery Attempt Fields​

FieldDescription
idUnique attempt ID (UUID)
event_idThe event being delivered
destination_idThe target destination
attempt_number1-based attempt counter
statusCurrent status (see below)
status_codeHTTP response status code
response_bodyFirst 2KB of the response body
response_headersResponse headers as JSON
errorError message (if failed)
latency_msRequest round-trip time in milliseconds
next_retry_atWhen the next retry is scheduled (if retrying)
payload_sentThe actual JSON payload that was delivered
created_atTimestamp of the attempt

Delivery Status​

StatusDescription
queuedIn the delivery queue, waiting for a worker
successDelivered successfully (2xx response)
failedExhausted all retry attempts
retryingWaiting for the next retry window
canceledManually canceled or superseded

Delivery Flow​

Event Created
→ Fan-out to linked destinations
→ For each destination:
→ Apply transform (if enabled)
→ Render template (or auto-format)
→ POST to destination URL
→ Success (2xx)? → Mark "success"
→ Failure? → Schedule retry per backoff policy
→ All retries exhausted? → Mark "failed", move to DLQ

Replaying Events​

You can replay an event from the dashboard or API. Replaying re-queues the event for delivery to all linked destinations using the current endpoint-destination configuration (templates, transforms, routing rules).

This is useful for:

  • Testing template changes against real event data
  • Re-delivering events after fixing a misconfigured destination
  • Recovering from destination outages

Viewing Events in the Dashboard​

The Events page provides:

  • Time range filtering — 24h, 72h, 7d, 30d, or custom date range
  • Status filtering — all, received, or filtered
  • Endpoint filtering — filter by source endpoint
  • Destination filtering — filter by target destination
  • Custom columns — add columns for any JSON path in the payload or headers
  • Suggested columns — auto-recommendations based on common fields across events
  • Event detail view — full payload, headers, and all delivery attempts