Flow Studio
Execution Event Types
The backend emits a defined set of SignalR events to subscribed clients. Each event has a specific payload shape. Understanding these events is essential for integrating custom monitoring or building extensions.
Node-Level Events
NodeExecutionStarted
{
executionId: string;
nodeId: string;
nodeType: string;
startedAt: string; // ISO 8601
}
Fired the moment the Process Engine begins executing a node. The canvas immediately updates the node to Running status (blue pulsing border).
NodeExecutionCompleted
{
executionId: string;
nodeId: string;
status: 'completed' | 'skipped';
output: object | null; // the node's output data
durationMs: number;
completedAt: string;
retryCount: number;
}
NodeExecutionFailed
{
executionId: string;
nodeId: string;
errorMessage: string;
errorType: string;
durationMs: number;
failedAt: string;
retryCount: number;
willRetry: boolean; // true if retry policy has remaining attempts
}
NodeExecutionSuspended
{
executionId: string;
nodeId: string;
suspendReason: string; // e.g., "Awaiting approval from user-123"
suspendedAt: string;
timeoutAt: string | null; // when the suspension will expire
}
Workflow-Level Events
WorkflowExecutionCompleted
{
executionId: string;
status: 'completed' | 'failed' | 'cancelled';
totalDurationMs: number;
completedAt: string;
failedNodeId: string | null;
errorMessage: string | null;
}
Log Events
NodeLogEmitted
{
executionId: string;
nodeId: string;
level: 'debug' | 'info' | 'warn' | 'error' | 'critical';
message: string;
data: object | null; // structured data attached to the log
timestamp: string;
traceId: string; // OpenTelemetry trace ID
}