Skip to main content
When a Workflow Execution is actively streaming or polling, the engine emits real-time Execution Events. These events provide microsecond-level visibility into exactly what path the execution took, the variables it processed, and the success or failure of individual processors.

Shared Event Format

All Execution Events conform to the following base JSON structure:
{
  "id": "uuid-event-id",
  "revision_id": "uuid-workflow-revision",
  "session_id": "uuid-active-session",
  "execution_id": "uuid-specific-execution-run",
  "created_at": 1714150000000,
  "type": "event_type_string",
  
  // Optional Fields
  "message": "Human readable log message", 
  "attributes": { 
    // Event-specific generic properties tracking state
  },
  "data": { 
    // Tracking reference ID internally 
    "data_id": "uuid-data-reference"
  }
}

Flow Events

Flow events dictate high-level state changes of the execution thread itself.

flow.entered

Fired when an execution fundamentally boots up and locates the start node.
{
  "type": "flow.entered"
}

flow.exited

Fired when an execution successfully reaches a terminal endpoint or cleanly loops out without an error.
{
  "type": "flow.exited"
}

flow.error

Fired when an execution encounters a fatal exception, dead-end, or catastrophic failure crashing the active loop.
{
  "type": "flow.error"
}

Processor Events

Processor events provide component-level logging and profiling metrics. They contain an attributes map heavily populated with IDs letting you trace visually.

processor.entered

Fired when the execution engine yields control to a specific component.
{
  "type": "processor.entered",
  "attributes": {
    "processor_id": "uuid-component-id-from-definition",
    "processor_type": "genai.chat.openai",
    "processor_name": "ChatGPT Node"
  }
}

processor.exited

Fired immediately after a component relinquishes control, documenting the exact time it took and what path consequence it chose.
{
  "type": "processor.exited",
  "attributes": {
    "processor_id": "uuid-component-id-from-definition",
    "route": "success", // Which branch was selected by the component dynamically.
    "runtime": 145000 // In microseconds
  }
}

processor.error

Fired explicitly if a component crashes natively rather than gracefully resolving a failure route.
{
  "type": "processor.error",
  "message": "Traceback or exception summary string",
  "attributes": {
    "processor_id": "uuid-component-id-from-definition"
  }
}

processor.output

Informational or debug logs injected manually by internal modules (like the logic.code component posting custom output events).
{
  "type": "processor.output",
  "message": "Processed 54 tokens successfully.",
  "attributes": {
    "processor_id": "uuid-component-id-from-definition"
  }  
}