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 athread field that controls conversation context:
Conditional Execution
Usecondition to skip nodes based on runtime state:
Automatic Message Saving
Usesave_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