Telemetry & Audit Logs
Every webhook operation — event receipt, delivery attempt, scheduled webhook run, and pipeline step — emits a structured log entry. Search, filter, and export your operational history.
Overview
The telemetry system captures a structured log entry for every significant operation in your webhook pipeline. These logs are searchable in the dashboard and can be exported to external systems for long-term storage and analysis.
Log entry structure
Each log entry contains the following fields:
| Field | Type | Description |
|---|---|---|
| timestamp | string (ISO 8601) | When the operation occurred |
| type | string | Operation type (event.received, delivery.attempt, delivery.success, delivery.failed, sw.run, pipeline.step, etc.) |
| webhookId | string | The webhook this operation belongs to |
| eventId | string | null | The event ID, if applicable |
| status | string | Outcome (success, failed, blocked, filtered, skipped) |
| duration | number | Operation duration in milliseconds |
| metadata | object | Type-specific data (HTTP status, error message, node type, attempt number, etc.) |
Example log entries
{
"timestamp": "2025-05-19T14:30:00.000Z",
"type": "event.received",
"webhookId": "664a1f2e8b1c4a001f2d0001",
"eventId": "664a1f2e8b1c4a001f2d0050",
"status": "success",
"duration": 12,
"metadata": {
"payloadSize": 1240,
"contentType": "application/json",
"sourceIp": "54.187.174.169"
}
}{
"timestamp": "2025-05-19T14:30:00.150Z",
"type": "delivery.attempt",
"webhookId": "664a1f2e8b1c4a001f2d0001",
"eventId": "664a1f2e8b1c4a001f2d0050",
"status": "success",
"duration": 142,
"metadata": {
"attempt": 1,
"httpStatus": 200,
"targetUrl": "https://api.example.com/webhooks",
"responseSize": 48
}
}{
"timestamp": "2025-05-19T15:00:00.000Z",
"type": "sw.run",
"webhookId": "664a1f2e8b1c4a001f2d0001",
"eventId": "664a1f2e8b1c4a001f2d0060",
"status": "success",
"duration": 205,
"metadata": {
"scheduledWorkflowId": "664a1f2e8b1c4a001f2d0020",
"cronExpression": "0 */1 * * *",
"targetsDelivered": 2
}
}Log types
| Type | Emitted when |
|---|---|
| event.received | A new event arrives at the ingress URL |
| event.filtered | An event is discarded by a payload filter |
| delivery.attempt | A delivery attempt is made (initial or retry) |
| delivery.success | A delivery attempt succeeds (2xx response) |
| delivery.failed | A delivery attempt fails (non-2xx or timeout) |
| sw.run | A scheduled webhook fires |
| chain.step | A chain step is triggered |
| schema.validated | A schema validator checks a payload |
| pipeline.step | A generic pipeline node processes an event |
Retention by plan
Telemetry log retention varies by plan tier. Logs older than the retention period are automatically deleted.
| Plan | Retention |
|---|---|
| Free | 7 days |
| Pro | 30 days |
| Enterprise | 90 days |
Searching logs
In the dashboard, navigate to the Telemetry section to search and filter logs. You can filter by:
- Type: Select one or more log types (e.g., only delivery failures)
- Webhook: Filter to a specific webhook
- Status: Filter by outcome (success, failed, blocked)
- Time range: Select a date/time window
- Event ID: Find all logs for a specific event
Exporting logs
Telemetry logs can be exported to external systems for long-term storage, alerting, or analysis. Two approaches:
HTTP action (real-time)
Configure an HTTP action on your pipeline to forward telemetry data to an external webhook (e.g., Datadog, Splunk, your own logging service) as events are processed.
API export (batch)
Query the telemetry API to fetch logs in bulk for offline analysis:
GET /api/telemetry?type=delivery.failed&webhookId=664a...&from=2025-05-18T00:00:00Z&to=2025-05-19T23:59:59Z
Response:
{
"logs": [
{
"timestamp": "2025-05-18T09:15:00.000Z",
"type": "delivery.failed",
"webhookId": "664a1f2e8b1c4a001f2d0001",
"eventId": "664a1f2e8b1c4a001f2d0040",
"status": "failed",
"duration": 30042,
"metadata": {
"attempt": 3,
"httpStatus": 504,
"error": "Gateway Timeout",
"targetUrl": "https://api.example.com/webhooks"
}
}
],
"total": 1,
"page": 1,
"pageSize": 50
}