Visual Replay Studio
The Replay Studio is a full-screen, step-through debugger that lets you walk through every pipeline step an event went through — with payload inspection, status indicators, and keyboard navigation.
Overview
When an event passes through the pipeline, each node records what it did: validation results, delivery attempts, transform outputs, and more. The Replay Studio visualizes these steps as an interactive sequence that you can navigate forward and backward.
Opening the Replay Studio
Open an event detail drawer
From the webhook's events list, click any event row to open the detail drawer.
Click the Replay button
In the event detail drawer, click Open Replay Studio. The view expands to full screen.
Studio layout
The Replay Studio has three main areas:
Progress bar (top)
A horizontal progress bar spans the top of the screen. Each step in the pipeline is represented by a clickable dot. The current step is highlighted, and completed steps are filled. Click any dot to jump directly to that step.
Step info panel (left)
Shows details about the currently selected step:
| Field | Description |
|---|---|
| Step number | Position in the pipeline sequence (e.g., Step 2 of 5) |
| Node type | The type of node that processed this step |
| Node name | The configured name of the node |
| Status | Outcome: success, failed, blocked, skipped |
| Duration | How long this step took |
| Detail | Human-readable description of what happened |
Payload viewer (right)
A JSON viewer showing the payload at this step in the pipeline. If a transform modified the payload, you see the transformed version. For delivery steps, the response body is also shown.
Navigation controls
| Control | Keyboard shortcut | Action |
|---|---|---|
| Reset | Home | Jump to the first step |
| Prev | Left Arrow (←) | Go to the previous step |
| Next | Right Arrow (→) | Go to the next step |
| End | End | Jump to the last step |
| Step dots | Click | Jump to a specific step |
Example session
Step 1 of 4 — Webhook: "Stripe Payments"
Status: RECEIVED
Payload: { "type": "payment_intent.succeeded", ... }
Step 2 of 4 — Schema Validator: "Payment Schema"
Status: PASS
Payload: { "type": "payment_intent.succeeded", ... } (unchanged)
Step 3 of 4 — Delivery: "Payment API"
Status: SUCCESS (200 OK, 142ms)
Request: POST https://api.example.com/webhooks
Response: { "received": true }
Step 4 of 4 — HTTP Action: "Slack Notification"
Status: SUCCESS (200 OK, 89ms)
Transformed payload: { "text": "Payment received: $50.00" }When to use
- Debugging failures: Step through to find exactly where and why an event failed.
- Verifying transforms: See the payload before and after each transform node.
- Understanding flow: Visualize the path an event takes through a complex multi-node pipeline.
- Comparing delivery attempts: For retried events, each attempt appears as a separate step. Combine with Delivery Comparison for a side-by-side diff.