| Name | Type | Description | Notes |
|---|---|---|---|
| action | string | [optional] | |
| status | string | [optional] | |
| node_id | string | Present on `node_*` events | [optional] |
| node_type | string | Present on `node_*` events | [optional] |
| source_handle | string | The edge handle the executor followed out of this node (see `WorkflowEdge.sourceHandle`) | [optional] |
| duration_ms | int | Node run time; present on `node_completed` and `node_failed` | [optional] |
| error_message | string | Failure detail; present on `node_failed` and `execution_exited` | [optional] |
| meta | array<string,mixed> | Per-node-type payload. Shape varies — see WorkflowNode `type`. Examples: `send_message` → `{ messageType, text, recipient }`, `webhook` → `{ url, method, statusCode, responseTimeMs, responsePreview }`, `ai` → `{ model, provider, inputTokens, outputTokens, responsePreview }`, `condition` → `{ matchedHandle, rulesEvaluated }`, `a_b_split` → `{ percentage, chosen }`. | [optional] |
| at | \DateTime | Event timestamp (UTC) | [optional] |