Skip to main content
A Workflow Definition is a JSON object that acts as the blueprint for an executable backend workflow. It describes the individual components, their configurations, and how they are wired together to process information linearly or conditionally.

High-Level Structure

Every Workflow Definition adheres to the following core JSON schema:
{
  "type": "workflow_definition",
  "version": "1.0.1",
  "components": [
    // Array of Component Objects
  ],
  "connections": [
    // Array of Connection Objects
  ]
}

Top-Level Properties

PropertyTypeDescription
typestringConstant identifier. Must be exactly "workflow_definition".
versionstringSchema version. Currently "1.0.1".
componentsarrayA list of distinct node instances representing processing steps.
connectionsarrayA list of edges dictating the logic flow and data transfer between components.

Components Array

The components array contains objects detailing the individual processing units. Each component has an ID, a type definition, and configurations for its specific behavior and positional placement if rendered visually in the UI.
{
  "id": "860e7fd4-ef39-4d1f-9a89-a5f092b7cf9d",
  "category": "flow",
  "type": "flow.start",
  "name": "Flow Start",
  "position": {
    "x": 591.2513211879909,
    "y": -96.87519807561236
  }
}
For an exhaustive list of components and their configurations, refer to the Workflow Components page.

Connections Array

The connections array defines how control passes between components upon execution. Connections are directional edges between a specific output “route” of a source component and a specific input “route” of a target component.
{
  "id": "e56127f7-0b96-4e75-bfb9-064849e6c762",
  "source_id": "598218d4-c7b2-4b52-9411-314058ae0148",
  "target_id": "3b75732b-705d-46ed-a7af-f01f9a78d777",
  "source_port": "flow_output",
  "target_port": "flow_input",
  "route": "success"
}

Connection Properties

  • source_id: The ID of the component yielding control.
  • target_id: The ID of the component receiving control.
  • source_port: The physical output port the connection originates from.
  • target_port: The physical input port the connection arrives at.
  • route: The semantic logic path dictating when this edge fires (e.g., "success", "failure", "next").