Webhook Time Travel
Replay an event through a historical canvas snapshot to see what would have happened under a previous configuration — without actually delivering anything.
Overview
Time Travel performs a dry-run simulation of an existing event against a saved canvas snapshot. It walks the event through each node in the snapshot's pipeline and reports which nodes would process it, what each node would do, and the final outcome.
This is invaluable for debugging questions like: "Why did this event fail last Tuesday?" or "If I had that schema validator in place, would it have caught this bad payload?"
How to use
Find the event to replay
Navigate to the event detail view from the webhook's event list. Copy the event ID.
Select a canvas snapshot
Go to /dashboard/flows and open the Snapshots panel. Identify the snapshot that represents the historical configuration you want to test against.
Run the time travel simulation
Use the API (below) or click "Time Travel" in the event detail drawer and select the target snapshot.
Review the results
Inspect each step to see which nodes would have processed the event, in what order, and with what outcome.
API
POST /api/events/:id/time-travel
Request
{
"snapshotId": "664a1f2e8b1c4a001f2d3e4f"
}Response
{
"eventId": "664a1f2e8b1c4a001f2d0001",
"snapshotId": "664a1f2e8b1c4a001f2d3e4f",
"snapshotName": "Production flow v3",
"finalStatus": "DELIVERED",
"matchedNodes": [
"wh-abc123",
"sv-def456",
"fo-ghi789"
],
"steps": [
{
"order": 1,
"nodeId": "wh-abc123",
"nodeType": "webhook",
"nodeName": "Stripe Payments",
"action": "RECEIVE",
"status": "PASS",
"detail": "Event accepted by webhook"
},
{
"order": 2,
"nodeId": "sv-def456",
"nodeType": "schemaValidator",
"nodeName": "Payment Schema",
"action": "VALIDATE",
"status": "PASS",
"detail": "Payload matches schema: 5/5 fields valid"
},
{
"order": 3,
"nodeId": "ha-ghi789",
"nodeType": "httpAction",
"nodeName": "Slack Notification",
"action": "HTTP_REQUEST",
"status": "WOULD_DELIVER",
"detail": "Would POST to https://hooks.slack.com/..."
}
]
}Step fields
| Field | Description |
|---|---|
| order | Sequential step number in the pipeline |
| nodeId | Canvas node ID from the snapshot |
| nodeType | Node type (webhook, schemaValidator, httpAction, alert, etc.) |
| nodeName | Human-readable node name |
| action | What this node does (RECEIVE, VALIDATE, DELIVER, HTTP_REQUEST, FILTER, TRANSFORM, etc.) |
| status | Simulated outcome: PASS, FAIL, WOULD_DELIVER, BLOCKED, SKIPPED |
| detail | Explanation of what happened or would happen at this step |
Common use cases
- Post-incident analysis: Replay failed events through the snapshot from before a config change to understand what went wrong.
- Pre-deployment validation: Save a snapshot of your planned changes, then replay recent events to see if they would still pass.
- Schema validation testing: Add a schema validator to a snapshot and replay events to see how many would be blocked.