Workflow Node Reference
This page documents the current workflow node surface from a user perspective.
Two important notes:
- the type system contains a few node types that are not fully exposed or executed yet
- the block names shown in the UI matter more than the raw internal type names when you are building workflows
Support Levels
- Available in the builder and runtime: you can add the node today and expect user-visible behavior.
- Reserved / not fully wired: the type exists, but the builder and runtime do not yet expose a complete user-facing implementation.
Trigger and Entry Nodes
Manual Trigger
Status: Available in the builder and runtime
Use it when you want a workflow to run on demand.
Behavior:
- starts the workflow immediately when launched
- can define an input schema for launch-time parameters
- outputs trigger context into the workflow registry
Common pitfall:
- forgetting that the input schema controls whether the run modal asks for manual parameters
Scheduled Trigger
Status: Available in the builder and runtime
Use it when the workflow should create scheduled task instances.
Behavior:
- supports
Minutes,Hours,Daily,Weekly, andOne-Time - creates scheduled tasks instead of immediate runs
- stores schedule metadata that appears in the sidebar
Common pitfall:
- expecting a scheduled workflow launch to behave like a live listener
File Watcher
Status: Available in the builder and runtime
Use it when the workflow should react to file events.
Behavior:
- listens for matching file changes
- activates as a live listener
- appears in the sidebar under live listeners when active
Common pitfall:
- using it for time-based automation instead of a scheduled trigger
Execution Nodes
Agent
Status: Available in the builder and runtime
Use it to send a prompt into an agent session or run an agent headlessly when the target is off.
Behavior:
- supports direct targeting or role-based assignment
- supports
ephemeral,inherit_fresh, andinherit_resumerun modes - supports
textorjsonoutput formats - can require launch-time assignment through the run modal when the run mode inherits from an existing agent
- skips automatic startup or "introduce yourself" prompts for workflow-spawned runs
Common pitfalls:
- leaving an inherited role unmapped, which prevents execution
- using
inherit_resumewhen you wanted a fresh run with the selected agent's profile - assuming JSON mode behaves exactly like an interactive PTY run
Run modes:
ephemeral: use the selected class and workspace for a fresh workflow-run provider session.inherit_fresh: clone settings from the selected agent, read that agent's scoped context, and start a fresh workflow-run provider session.inherit_resume: continue the selected agent's provider session and runtime directory.
Shell Command
Status: Available in the builder and runtime
Use it to run a shell command inside the workflow.
Behavior:
- executes in the configured folder
- can receive interpolated values from upstream nodes
- returns command result data, including failures
Common pitfall:
- forgetting to set the execution directory when the command depends on a specific workspace
Script
Status: Available in the builder and runtime
Use it to run a local script file through a selected runtime.
Behavior:
- supports
python,node, andsh - resolves the script path relative to the chosen execution directory
- passes optional arguments and environment variables
Common pitfall:
- confusing a shell command with a script path; use Script for a file and Shell Command for inline command text
Tool Call
Status: Reserved / not fully wired
The node type exists in the workflow model and block library, but the current runtime does not execute a distinct tool-call branch yet.
Current behavior:
- you may see the node type in the code model
- the backend does not yet expose full user-facing execution semantics for it
Sub-Flow
Status: Reserved / not fully wired
The builder taxonomy includes Sub-Flow, but the runtime does not currently execute it as a dedicated node behavior.
Current behavior:
- useful as a planned concept in the model
- not yet a complete nested-workflow feature for users
Control-Flow Nodes
Branch
Status: Available in the builder and runtime
Use it to split flow based on a condition.
Behavior:
- evaluates a condition against registry values
- pulses either
on_trueoron_false
Common pitfall:
- writing a condition against a value that does not exist yet in the registry
Loop
Status: Available in the builder and runtime
Use it for repeated execution.
Behavior:
- supports
countmode andconditionalmode - emits
bodywhile continuing anddonewhen finished - stores iterator state in workflow runtime data
Common pitfall:
- forgetting to bound the loop correctly, which can create confusing repeated behavior
Wait
Status: Available in the builder and runtime
Use it as a synchronization barrier.
Behavior:
- waits for the required upstream pulses before continuing
- useful after branches or parallel-looking flows that must rejoin
Common pitfall:
- treating it like a timed sleep; its main purpose is dependency synchronization
Parallel
Status: Reserved / not fully wired
The type exists in the workflow model, but the current builder library and runtime do not expose it as a separate executable node.
Coordination and State Nodes
KV Storage
Status: Available in the builder and runtime
Use it to read or update shared workflow storage.
Behavior:
- supports
get,set, anddelete - works with workspace-level or run-level state concepts in the UI
- exposes storage values back to downstream nodes
Common pitfall:
- expecting deep nested object semantics everywhere; keep storage keys simple unless you have confirmed the exact shape you need
Notify
Status: Available in the builder and runtime
Use it to send a UI notification from a workflow.
Behavior:
- emits a Wardian notification message
- is best for operator-facing alerts
Broadcast
Status: Partially available
Use it when you conceptually want to send a message broadly.
Current behavior:
- it is exposed in the builder
- the runtime currently treats it as a communication node, but broad agent delivery is still limited compared with the long-term intent
Governance
Status: Reserved / not fully wired
The governance node type exists in the workflow model, but it is not currently surfaced as a full builder block with distinct runtime behavior.
Reading Internal Types vs UI Names
A few nodes share internal types while presenting different names in the builder:
NotifyandBroadcastboth use thecommunicationnode type- all trigger blocks use the
triggernode type with different names and configs
When in doubt, trust the block name you see in the Workflow Builder first, then use the internal type only when comparing against developer notes or exported JSON.