Payload
{
"event_type": "workflow_run.status_changed",
"event_id": "...",
"webhook_id": "...",
"delivery_id": "...",
"timestamp": "2026-04-17T16:30:00.000Z",
"client_id": "...",
"test": false,
"data": {
"status_change": {
"from_status": {
"id": "uuid",
"key": "new",
"label": "New lead",
"category": "initial"
},
"to_status": {
"id": "uuid",
"key": "contacted",
"label": "Contacted",
"category": "active"
},
"reason": "AI agent completed first outreach",
"trigger_type": "ai",
"actor_type": "ai",
"actor_id": null,
"changed_at": "2026-04-17T16:30:00.000Z"
},
"lead": {
"id": "uuid",
"first_name": "Tony",
"last_name": "Stark",
"email": "tony.stark@gmail.com",
"phone": "56994357854",
"company": "Stark Industries",
"source": "api",
"external_id": null,
"metadata": {}
},
"workflow": {
"id": "uuid",
"name": "Lead to purchase intent"
},
"workflow_run": {
"id": "uuid",
"started_at": "2026-04-15T10:00:00.000Z",
"current_channel": "whatsapp",
"total_status_changes": 3,
"origin": "api"
}
}
}
Fields
data.status_change
| Field | Type | Description |
|---|---|---|
from_status | object | null | Previous status (id, key, label, category) |
to_status | object | null | New status (id, key, label, category) |
reason | string | null | Recorded reason for the change |
trigger_type | string | What caused the change: manual, ai_agent, system, workflow_rule, auto, or ai |
actor_type | string | Who made the change: user, ai_agent, system, or ai |
actor_id | string (uuid) | null | Actor ID, when recorded |
changed_at | string (ISO 8601) | Exact time of the status change |
data.lead
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Lead ID |
first_name | string | null | Lead’s first name |
last_name | string | null | Lead’s last name |
email | string | null | Lead’s email |
phone | string | null | Lead’s phone number |
company | string | null | Lead’s company |
source | string | Source stored for the lead |
external_id | string | null | ID from an external system |
metadata | object | Lead metadata |
data.workflow
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Workflow ID |
name | string | Workflow name |
data.workflow_run
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Workflow run ID |
started_at | string (ISO 8601) | null | When the lead entered this workflow |
current_channel | string | null | Current channel recorded for the run |
total_status_changes | number | Number of status changes in this run |
origin | string | How the run started |
Filtering
The dashboard lets you receive status changes for every agent or a selected agent. You can also choose one destination status or add these filters:| Filter field | Description | Example |
|---|---|---|
to_status.key | Only send changes to this status | qualified |
from_status.key | Only send changes from this status | new |
workflow_id | Only send changes for this agent | uuid |
trigger_type | Only send changes with this trigger type | ai |