A workflow is a directed graph of typed nodes wired by edges, authored in
the visual builder and serialized to YAML. The canonical shape is a single
JSON Schema generated from the same
zod source the web app validates against (web/src/lib/api-schemas-workflow.ts),
so the document, the editor, and the runtime never disagree.
Every workflow exported from the builder begins with a modeline that points your
editor’s yaml-language-server
at the schema, giving inline validation and node-kind autocompletion:
Stages annotate existing graph nodes; they do not add execution edges or a second
runtime. Each node_key must name one node in the same workflow and can appear
only once. role is intentionally an open semantic label, so custom and
Marketplace workflows can use their own vocabulary (common roles are plan,
implement, and review). who is optional metadata for the intended agent,
profile, or owner.
Branch on a predicate to different output handles.
human
Pause for a human decision or input.
end
Terminal node.
code
Run a Bash/Python/TypeScript/Go/Rust/C# snippet (defaults to Bash). Unbound: hermetic container, no network/DB. A Python/TypeScript node may declare resource_bindings to run on the credentialed sandbox with vetted egress + a host-mediated guarded DB call (ADR 0058).
db_query
Read from a bound PostgreSQL resource.
db_execute
Write to a bound PostgreSQL resource.
http_request
Make an outbound HTTP call (SSRF-guarded, IP-pinned).
transform
Reshape data flowing between nodes.
notify_telegram
Send a Telegram message.
notify_email
Send an email.
notify_webhook
POST to a webhook.
notify_discord
Send a Discord message.
loop
Iterate over a collection.
wait_event
Pause until an external event arrives.
llm_classify
Classify input with an LLM.
imap_ack
Acknowledge an IMAP message.
app
Invoke a deployed App.
connector
Run a marketplace connector node.
Upstream node results flow to a node via SC_NODE_INPUTS; a trigger payload via
SC_TRIGGER_CONTEXT. See the build-your-first-workflow tutorial
to author one in the visual builder.