Skip to main content
This auto-generated reference documents the Input and Output schemas for workflow node types. Descriptions are extracted from proto annotations in workflow_v2.proto.

Common Node Fields

These fields are available on all node types. They provide shared functionality for node identification, conditional execution, machine placement, and output handling. Everything else a node takes is specific to its type, listed in its section below.

Thread Configuration

Workflow, loop and router nodes take a thread field that controls conversation context:

Conditional Execution

Use condition to skip nodes based on runtime state:

Automatic Message Saving

Use save_message to capture output without a separate save_message node:

Action

type: action Run an integration action (for example an HTTP request)

Inputs

Outputs


Agent

type: workflow Invoke an agent or sub-workflow

Inputs

Outputs

Each output the sub-workflow declares is also on the node, by name (nodes.<id>.<output>).

Approval

type: approval Pause workflow execution for user approval

Inputs

Outputs


Ask Question

type: ask_question Pause workflow execution to ask the user a question

Inputs

Outputs


Call LLM

type: call_llm Send a prompt to a language model and get a response

Inputs

Outputs


Compact

type: compact Compact conversation context to reduce token usage

Inputs

Outputs


Compute

type: compute Compute named values from CEL expressions: no model, no shell, no worker round trip. Each output is {{ expr }} (or a literal); a value that is exactly one {{ }} keeps its type. Read them as nodes.<id>.<name>. Outputs cannot read each other: chain two compute nodes when one feeds the next. A failing expression fails the node. Use it for deterministic logic (labels, sizes, expiry, parsing a node’s JSON stdout) instead of a script

Inputs


Create Worktree

type: create_worktree Create a git worktree for isolated development

Inputs

Outputs


Join

type: join Wait for parallel branches to complete before continuing

Outputs


Loop

type: loop Execute a sub-workflow in a loop with conditions

Inputs

Outputs

A sequential loop also exposes each output its body declares, by name, from the last iteration (nodes.<id>.<output>). _results, _completed, _failed and _parallel are set by parallel loops.

Publish Branch

type: git_publish Commit a worktree’s changes and push them to a feature branch. Refuses the default branch, protected branches, main, master and release/*, and any branch outside the allow list; refuses a fork head; never force-pushes. Nothing to commit is not an error (pushed is false). The credential is used for this one push and never reaches a shell, a file or the environment. Pair it with shell credentials: none

Inputs

Outputs


Router

type: router Route to a workflow or node based on LLM classification

Inputs

Outputs


Run Command

type: run Execute a shell command

Inputs

Outputs


Run LLM Tool Calls

type: execute_tools Run the tool calls an upstream Call LLM step returned

Inputs

Outputs


Run Tool

type: invoke_tool Run one tool you pick, with parameters you set; no LLM involved

Inputs

Outputs


Save Message

type: save_message Save a message to the conversation thread

Inputs

Outputs