Workflows
Chain tools, models, and approvals into a graph with defined inputs and outputs.
A workflow is a graph of steps with data flowing along the edges. Use one when you already know the procedure — an agent session is for when you do not.
Node types
| Type | Does | Key config |
|---|---|---|
input | Emits the run's inputData | — |
output | Marks the final result | — |
tool | Invokes a registered tool | toolId or toolName |
agent_processor | Runs an LLM step | agentId, prompt in config |
transform | Reshapes fields without a model | config.mapping |
condition | Routes on an expression | config.expression |
loop | Iterates | config.iterations or config.itemsPath |
workflow | Invokes another workflow | workflowId |
human_approval | Pauses for a person | Approval prompt in config |
A condition node emits { result: boolean }; edges leaving it use
sourceHandle: 'true' or 'false'.
Build one
Or in the browser: Studio → Workflows → Create opens a canvas where you drag nodes, connect handles, and run from the editor with results streaming onto the graph.
Run one
Human approval
A human_approval node pauses the execution and waits. The run resumes when
someone approves or rejects it:
The token comes from the paused execution. Approvals are recorded in provenance: who approved, what they were shown, and what they chose.
Webhooks
Trigger a workflow from anything that can make an HTTP request — no bearer token needed, the token in the path is the credential.
Rotate the token if it leaks; disable the webhook when the integration retires.
Templates
Templates create the workflow and register the API tools it needs, so a
template run works out of the box. --prefix keeps generated names stable
across repeated runs; --reviewer-agent supplies the second agent for
multi-agent templates.
Sharing and forking
A fork is a copy you own — edit it freely without affecting the original.
Running a workflow from an agent
Give the agent the runWorkflow tool and it can call a workflow as one step of
a larger job:
Debugging
Stream an execution and watch stage and status per node — a workflow that
"does nothing" is usually a condition routing down the branch you did not
expect, or an edge whose sourceHandle was never set.
POST /v1/workflows/:id/executions/:executionId/cancel stops a run that is
looping or stuck.
