One entry in a workflow execution's timeline. Emitted by the executor on every node visit and lifecycle transition, surfaced by GET /v1/workflows/{workflowId}/executions/ {executionId}/events for run inspection in the Runs UI.
| Name |
Type |
Description |
Notes |
| action |
ActionEnum |
|
[optional] |
| status |
StatusEnum |
|
[optional] |
| nodeId |
String |
Present on `node_*` events |
[optional] |
| nodeType |
String |
Present on `node_*` events |
[optional] |
| sourceHandle |
String |
The edge handle the executor followed out of this node (see `WorkflowEdge.sourceHandle`) |
[optional] |
| durationMs |
Integer |
Node run time; present on `node_completed` and `node_failed` |
[optional] |
| errorMessage |
String |
Failure detail; present on `node_failed` and `execution_exited` |
[optional] |
| meta |
Map<String, Object> |
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 |
OffsetDateTime |
Event timestamp (UTC) |
[optional] |
| Name |
Value |
| EXECUTION_STARTED |
"execution_started" |
| EXECUTION_COMPLETED |
"execution_completed" |
| EXECUTION_EXITED |
"execution_exited" |
| EXECUTION_PAUSED |
"execution_paused" |
| EXECUTION_RESUMED |
"execution_resumed" |
| NODE_STARTED |
"node_started" |
| NODE_COMPLETED |
"node_completed" |
| NODE_FAILED |
"node_failed" |
| NODE_SKIPPED |
"node_skipped" |
| Name |
Value |
| SUCCESS |
"success" |
| FAILED |
"failed" |
| PENDING |
"pending" |