Documentation
Building workflows on the canvas
A workflow is a versioned JSON graph, and the canvas is only its editor. Understanding a few rules about ports and edges explains everything the executor does.
The graph
Every workflow has exactly one trigger, some nodes and the edges between them. Node ids are lowercase slugs such as classify_ticket, and templates use them to read upstream output. Renaming a node id in the editor rewrites every template that references it.
Ports and data edges
Nodes have named input and output ports. Most have one in and one out, but some differ: If fires true or false, Switch fires one port per case plus default, and nodes that can fail may fire error.
The executor follows one rule: an outgoing edge is active only if its source port fired, and dead otherwise. A node whose incoming edges are all dead is skipped, and its own edges die too. Branching, skip cascades and error ports all come from that rule.
Joining branches
When branches meet again, route them into a Merge node. It waits until every incoming edge is settled, then passes on the first value that arrived, a list of all of them, or an object keyed by source node.
Tool edges
A dashed tool edge from an HTTP Request node into an agent's tools port hands the agent a callable tool instead of scheduling the node. The agent decides when to call it, and a failing tool returns an error result the model can recover from rather than failing the run.
Validation
The editor validates as you work: missing required config, references to nodes that are not upstream, cycles, and nodes the trigger cannot reach are flagged on the node before you run.
Testing a single node
After one full run, you can re-run a single node against the previous run's upstream outputs, with unsaved config changes. It is the fastest way to iterate on a prompt.
Keep reading
- Templates and expressionsPass data between workflow nodes with Jinja templates and expressions: read the trigger payload and upstream node output, branch on conditions, and keep raw values.
- Execution controls: retries, timeouts and error handlingControl how Novalink runs AI workflows: per-node retries with backoff, timeouts and error modes, and run-wide parallelism, timeouts and token caps.
- Node referenceReference for every Novalink node type, from Claude agents and HTTP tools to If, Switch and Merge: ports, configuration and when to use each.
Build it on the canvas
Create a free account and run your first workflow in the browser, or run Novalink on your own machine.