Skip to main content
The Workflow Builder is a visual, no-code canvas for designing AI-powered workflows. Place nodes on the canvas, connect them to define execution order, and test your flow directly from the builder before deploying it as an API endpoint. To open Workflow Builder:
  1. On the Workflows page, select the workflow you want to build or edit.
  2. Select Go to Flow. The flow canvas opens.

Canvas overview

The Workflow Builder canvas is divided into the following areas:
AreaDescription
CanvasThe main workspace where you place and connect nodes.
Assets panel (left)Contains all available node types. Drag a node from here onto the canvas to add it.
Configuration panelOpens when you click a node. Use it to configure node settings and manage connections.
Toolbar (top right)Provides access to flow versions, run controls, and canvas layout options.
Every new workflow starts with a Start node placed on the canvas automatically. The Start node is the required entry point — all other nodes must connect to it, directly or indirectly.

Manage input and output

Workflows use input and output variables to pass data into and out of the flow. Both are accessible as context objects throughout execution.
  • Input variables: Provide initial data to the workflow. Available immediately after the Start node.
  • Output variables: Store the values returned by the workflow. Define these to capture the results you want to expose.

Use variables in the flow

Access variables using context object syntax:
  • Input variable: context.steps.Start.<variableName>
  • Output variable (to reference an AI node’s result in the End node): {{context.steps.<NodeName>.output}}

Add input variables

  1. Select Manage I/O at the top of the canvas, or select the Start node. The Manage Input & Output dialog opens.
  2. On the Input tab, select + Add input variable.
  3. Enter a Name (key) for the variable.
  4. Select a Type and configure the type-specific options:
    TypeAdditional options
    Text, Number, BooleanOptional Default value field.
    Remote fileFile URL timeout field. Set a duration between 5 minutes and 7 days (10,080 minutes). Default is 5 minutes.
    List of values (Enum)Select Add Values + to define allowed values. Enable Default value to select from a dropdown. The system validates input against the defined enum values.
    JSONA JSON editor appears. Define the schema for the input parameter. See JSON schema format. Set a default value that matches the schema — invalid JSON causes execution to fail.
  5. Select Save.
Add input variable

Add output variables

  1. Select Manage I/O at the top of the canvas. The Manage Input & Output dialog opens.
  2. On the Output tab, select + Add output variable.
  3. Enter a Name (key) for the variable.
  4. Select a Type: String, Number, JSON, or Boolean.
  5. Select Save.
You can also add an output variable directly in the End node using the Add a Key option.
If a type mismatch occurs between the defined output variable type and the actual value, the endpoint still succeeds but includes a warning in the response with the key name and the nature of the mismatch.

JSON schema format

Use the following format when defining a JSON input variable schema:
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "<property_name_1>": {
      "type": "<data_type>",
      "description": "<description_of_the_property>"
    },
    "<property_name_2>": {
      "type": "<data_type>",
      "format": "<optional_format>",
      "enum": ["<value1>", "<value2>", "<value3>"],
      "description": "<description_of_the_property>"
    }
  },
  "required": ["<required_property_1>", "<required_property_2>"]
}
Schema definition guidelines:
  • Set type: "object" at the root and add a properties object to define all fields.
  • For each property, set type and description. Supported types: string, number, boolean, array, object. For arrays, use items to define the element type.
  • Add a required array at each level to list all mandatory fields.
  • Use enum to restrict a property to a fixed set of values.

Add nodes

You can add nodes to the canvas in three ways:
  1. Drag from the Assets panel: Scroll the left panel, find the node type, and drag it onto the canvas.
  2. Use the blue plus (+) icon on a node: Hover over any node to reveal the blue + icon. Select it to add a new node directly connected to the current one, or pick an existing node from the canvas.
  3. Use the bottom panel: Browse node types in the panel at the bottom of the canvas and drag them onto the canvas.
Add a new node

Connect nodes

Connections between nodes define execution order. Workflow Builder supports two execution patterns:
PatternWhen to useHow it behaves
SequentialTasks depend on the output of the previous step.Nodes run one after another. Each node waits for the prior node to finish before it starts.
ParallelTasks are independent and can run at the same time.Multiple branches from a single node run simultaneously. Up to 10 outgoing branches per node.

Create a sequential connection

Option 1 — Drag to connect
  1. Hover over the blue + icon or grey connector dot on the source node.
  2. Drag a line to the destination node.
Sequential connection using drag Option 2 — Use the Connections panel
  1. Select a node to open the Configuration panel.
  2. Go to the Connections tab.
  3. Under On Success or On Failure, select a node from the dropdown. The connection is created and reflected on the canvas.
Connections panel — sequential
In a sequential flow, only one connection is allowed per outcome (On Success or On Failure). A second connection from the same outcome creates a parallel branch.

Create a parallel connection

Option 1 — Use the blue + icon
  1. Hover over a node and click the blue + icon.
  2. Select Add new or Add existing to add multiple nodes as parallel branches. Each added node is connected automatically.
Parallel connection using blue icon Option 2 — Drag to connect
  1. Hover over the blue + icon or grey dot on the source node.
  2. Drag a line to an additional node on the canvas.
  3. Repeat to create more parallel branches from the same source.
Parallel connection using drag Option 3 — Use the Connections panel
  1. Select the node to open the Configuration panel.
  2. Go to the Connections tab.
  3. Select nodes under On Success or On Failure. Select + Parallel Node to add more branches.
Connections panel — parallel

Parallel design patterns

Workflow Builder supports three patterns for parallel execution:
PatternDescriptionUse when
Simple parallelOne node branches into multiple independent child nodes.Tasks run simultaneously with no dependencies.
Nested parallelA parallel branch contains its own parallel sub-branches.Multi-level logic where each level performs independent work.
Conditional + parallelCondition nodes trigger different parallel branches based on if/else logic.Different groups of parallel tasks run depending on a condition.
Connection limits and restrictions
  • A single node supports up to 10 outgoing connections.
  • You cannot connect the same node twice from the same parent.
  • Backward connections (looping to a previous node) are not supported.

Rename, rearrange, and delete nodes

Rename a node

  1. Right-click the node on the canvas.
  2. Select Rename from the context menu.
  3. In the Node Name field of the Configuration panel, enter the new name.
Use descriptive names to make the flow easier to understand. For example, rename a Function node to Validate Email Input instead of leaving it as the default. Rename a node

Rearrange nodes

Click and drag a node to any position on the canvas. Connected lines adjust automatically to maintain the connections. Other nodes remain fixed. For automatic layout, right-click anywhere on the canvas and select Auto arrange. Rearrange a node You can also toggle canvas display options from the right-click menu: Show/Hide UI or Show/Hide Grid.

Delete a node

Right-click the node on the canvas and select Delete. Deleting a node also removes all its connections. Reconnect any dependent paths to keep the flow valid.

Manage connections

Delete a connection

  1. Click the arrow or line between two nodes.
  2. Select the Delete icon. The nodes remain on the canvas but are no longer linked.
Delete connection on canvas You can also delete a connection from the Connections tab in the Configuration panel:
  1. Select the node to open the Configuration panel.
  2. In the Connections tab, select the Delete icon next to the connection.
Delete connection from panel

Test a workflow

Use the run feature to test a workflow from the canvas during development.
  1. Select the Run flow icon in the top-right corner of the canvas. The Run dialog opens, showing the Input, Flow log, and Output sections.
  2. Select the Debug icon at the top of the Run dialog to open the debug log. The debug log shows execution progress as the flow runs.
  3. Review the result:
    • Successful flow: Execution time and output appear. Select the Copy icon to copy the output.
    • Failed flow: An error message appears and the output key is empty.
You can stop the flow at any point and restart it by selecting Run flow again.

Debug log

The debug log provides execution-level detail for each node:
DetailDescription
Flow input valuesThe input variable values provided at the start of the run.
Node statusSuccess or failure for each node, with links to details.
Node metricsInitiated On, Executed On, Total Time Taken, and Tokens (AI nodes only).
Tool call logsInputs, outputs, and errors for any AI node tool calls, with step-by-step execution traces (AI nodes only).
Expand the debug panel to full screen for a cleaner layout. In full-screen mode, clicking any node shows its input, output, and metrics side by side.

Time metrics for API and AI nodes

Node typeMetricDescription
API — syncNode processing timeTime taken by the node to complete execution.
API response timeTime waiting for the external API to respond.
API — asyncNode paused atTimestamp when the node paused waiting for the async response.
Node resumed atTimestamp when the node resumed after receiving the response.
Total wait timeDuration between pause and resume.
Node processing timeTime to process the node after it resumes.
AI nodesNode processing timeTime taken by the node to complete execution.
LLM response timeTime for the AI model to return a response.

Logs for parallel execution

When a flow includes parallel branches, the debug log groups execution by branch:
  • Each parallel execution is shown as an indented block under the parent node.
  • Branches are labeled (A, B, C) for separate paths.
  • Expand or collapse each branch to show or hide its details.
  • The workflow waits for all parallel branches to complete before moving to the next step.
Debug log — parallel execution

Structured response parsing

When an AI node returns a structured JSON response, the platform automatically parses it and stores each key in the node’s context object. Subsequent nodes can reference individual keys directly — no manual parsing or custom code needed.

How it works

  1. Attach a response JSON schema to the AI node to define the expected output structure.
  2. When the model responds, the platform parses the JSON and stores each key in the node’s context object automatically.
  3. Access the full output: {{context.steps.<NodeName>.output}}
  4. Access a specific key: {{context.steps.<NodeName>.output.<keyName>}}

Example

Step 1 — Define the response schema In the AI node, attach a response JSON schema. For example, to retrieve the scientific classification of a flower, define keys: scientificname, year, scientist. Define response schema Step 2 — View parsed output When the flow runs, the debug log shows:
  • Input: The prompt sent to the AI node.
  • Response: The structured JSON returned by the model.
  • Output: The response split into individual keys based on the defined schema.
Each key is stored separately in the context, making it easy to trace, validate, and reuse. View structured output Step 3 — Reuse keys in later nodes Reference stored keys in any subsequent node. For example: {{context.steps.AI0001.output.scientificname}}. Reuse keys in later nodes

Manage flow versions

You can save named versions of a flow, restore earlier versions, and delete versions you no longer need.

Save a version

  1. Select the down arrow on the canvas header. The Flow versions dialog opens.
  2. Select the + icon. Flow versions dialog
  3. Enter a Version name and Description, then select Save. Name a new version
The saved version becomes the current version. Changes you make in the flow are auto-saved to the current version.

Restore or delete a version

In the Flow versions dialog, select the three-dots icon next to any version name to restore or delete it.
  • Restore: The selected version becomes the current version and moves to the top of the list. The previous current version moves to the bottom. If you edit a restored version, a new current version is created automatically.
  • Delete: Permanently removes the version. Deployed versions can be restored but cannot be deleted.

Common issues

IssueCauseResolution
Can’t add a new connectionNode already has 10 outgoing connectionsDelete an existing connection to add more.
”No available nodes” in the dropdownAll valid nodes are already connectedCreate a new node or unlink an existing one.
Flow doesn’t executeBroken or incomplete connectionsCheck for stray nodes or missing End nodes.
Error when connecting to a previous nodeBackward loops are not supportedConnect the node to a valid forward step.

Design tips

  • Use parallel branches to run independent tasks faster.
  • Use sequential paths when each step depends on the previous step’s output.
  • Combine both patterns for advanced hybrid flows.
  • Use Auto arrange regularly to keep the canvas clean.
  • Ensure every logical branch ends at an End node.
  • Use the debug log to trace execution and spot bottlenecks.