Build
A visual editor over a typed graph, not a diagram that has to be kept in sync.
Visual editor
Add nodes, connect them, and see what each one receives. The graph is the definition, not a picture of it.
Learn moreNodes from plugins
Plugins contribute workflow nodes under the same capability declarations they use everywhere else.
Learn more
Run
The same runner, whether the trigger is you, a schedule, or an agent.
One runner
Chat, scheduler and agent triggers all execute through the same path, so a workflow behaves the same however it starts.
Learn moreScheduled runs
Run on a schedule and have the result reported back, including when it fails.
Learn more
From event to evidence.
A workflow is more than the graph on the canvas. The same typed definition carries its trigger, execution policy, and inspectable result.
Trigger
Start manually, from chat, on a schedule, through a connector, or from another workflow without changing the definition.
Learn moreTyped graph
Declared node inputs and outputs make invalid edges visible before a run begins and keep the canvas aligned with the saved definition.
Learn moreControlled execution
The runtime resolves dependencies, applies depth and cycle limits, and carries one execution context through every eligible node.
Learn moreRun record
Inputs, outputs, timing, errors, and skipped nodes remain available as one run you can inspect and retry from the workspace.
Learn more
What the runner guarantees
Each guarantee, shown
01One execution path — a workflow behaves identically whether a person, a schedule or an agent starts it.
02Cycles are rejected when the graph is saved, not discovered at run time.
03Nesting is depth-bounded, so a workflow calling a workflow cannot recurse forever.
04Every node's state is recorded, including the ones that never ran.