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