Event Browser
The Events page provides a powerful interface for browsing, filtering, and inspecting webhook events.
Browsing Events
The event table shows one row per event with a destination breakdown summary:
| Column | Description |
|---|---|
| Event Type | Extracted event type (e.g., push, pull_request) |
| Source | The endpoint that received the event |
| Status | received or filtered |
| Delivery | Per-destination outcome breakdown (delivered, failed, retrying, pending, filtered) |
| Created | Timestamp |
Delivery Status Tabs
Use the tabs above the table to filter by delivery outcome:
- All — every event regardless of delivery state
- Delivered — all destinations succeeded (including events rescued by a manual replay)
- Partial — some destinations succeeded, others failed or are still retrying
- Failed — all destinations failed after exhausting retries
- Filtered — event was blocked by a filter rule before delivery
Filtering
Search
Use the search box at the top of the toolbar to find events containing a substring anywhere in the request payload or headers — for example an email, an order ID, an event name, or a header value. The search runs case-insensitively, updates as you type (with a short delay), and combines with the other filters and time range.
Time Range
Select a preset time range or a custom date range:
- Last 24 hours
- Last 72 hours
- Last 7 days
- Last 30 days
- Custom date range
Status Filter
Filter by event status:
- All — show all events
- Received — events that passed filters
- Filtered — events blocked by filters
Source Filter
Filter events by the endpoint that received them.
Destination Filter
Filter events by which destination they were delivered to.
Custom Filters
Add conditions on payload fields or headers to narrow results further. Custom filters are applied client-side for real-time results.
AI Search
Click AI search in the toolbar to describe what you're looking for in plain English. Dispatch translates your query into filters, a time range, status, source, and destination automatically.
A preview dialog shows exactly what will be applied before anything changes. Once applied, the generated filters appear as editable chips — you can remove or adjust individual filters just like ones you add manually.
Examples:
- "Show me failed GitHub push events from the last 3 days"
- "Events from my production endpoint that went to Ari's server last week"
- "Pull request events from the last 14 days"
AI features (search and the transform, filter, and template generators) are rate limited per user to keep usage fair. If you see a "Too many AI requests" message, wait a moment and try again.
Custom Columns
Add columns for any JSON path in the payload or headers:
- Click Add Column
- Enter a JSON path (e.g.,
body.actionorheader.X-GitHub-Event) - The column appears in the table with values extracted from each event
Suggested Columns
Dispatch auto-suggests common fields that appear in more than 30% of your events, making it easy to add relevant columns without guessing paths.
Event Detail View
Click any event to see its full details:
Payload Tab
- Full JSON payload with syntax highlighting
- Expandable/collapsible nested objects
Headers Tab
- All request headers in a table
- Sensitive values are masked by default (click to reveal)
Delivery Attempts
Delivery attempts are grouped by destination. Each attempt shows:
- Attempt number
- Status (success/failed/retrying)
- Whether the attempt was a manual replay ("Retried manually" badge)
- HTTP status code
- Error message (if failed)
- Response body and headers
- Payload that was actually sent
- Latency in milliseconds
- Next retry time (if retrying)
Local tunnel destinations (from dispatch listen) are shown in a separate section so they don't mix with your production delivery history.
Actions
Replay Event
Single event: Click any event row to open its detail view, then click Replay. The dropdown offers:
- Replay undelivered (default) — re-queues delivery only to destinations that have not yet received a successful delivery. This is safe to run at any time without risking double-sends.
- Replay failed only — re-queues delivery only to destinations whose last attempt failed.
- Replay all — re-queues delivery to all linked destinations regardless of current status. Use this for force-resending to a specific destination for testing.
- Replay to a specific destination — select an individual destination from the list to replay to that destination only.
Destinations with a delivery already in flight are disabled in the menu to prevent duplicate sends.
A successful replay rescues the event: it moves out of the Failed or Partial tab into Delivered, and the delivery timeline shows a "Retried manually" badge on the replay attempt.
Bulk replay: From the events table, check the checkbox on one or more rows. A bar appears above the table showing how many events are selected. Click Replay to re-queue all selected events at once. The default mode skips destinations that already received the event. When complete, a notification reports the number of events replayed and how many destinations were skipped and why. To deselect without replaying, click Clear selection.
Copy Payload
Copy the event payload as:
- Raw JSON
- TypeScript type definition
- OpenAPI schema
Create Template or Transform from Event
From any event's detail view, click the Create from event dropdown to bootstrap a new template or transform pre-loaded with the event's payload as the example:
- New Template — opens the template editor with this event's payload set as the example. Use it to preview your embed formatting against real data immediately.
- New Transform — opens the transform editor with this event's payload set as the example. Write and test your JSONata expression against the actual payload shape without copy-pasting.
After naming the resource and confirming, you are taken directly to its editor.