Portal Community

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
}