Home/Docs/Building a workflow
🧱Workflows

Building a workflow

The workflow builder is a visual node canvas. You add nodes from a library, wire them together, configure each one in an inspector, and publish when it's ready. This page walks through the full build loop.

🧱BuildAdd & wire nodes
💾AutosaveDraft saved as you go
ValidateCatch issues early
🚀PublishMake it live
The build loop — design on the canvas, validate, publish, then iterate

The three areas of the builder

Open any workflow from the Workflows tab to launch the builder. It has three areas working together:

  • Node library — a sidebar listing every node type, grouped by category (triggers, AI, control flow, actions, terminal). Add a node to drop it onto the canvas.
  • Canvas — the pannable, zoomable workspace where you arrange nodes and draw the connections between them.
  • Inspector — a side panel that opens when you select a node. Configure the node's inputs here, map data from upstream nodes, and insert context with {{ }} references. {{ }}
ℹ️
The first node must be a trigger

A workflow always starts with exactly one trigger. On an empty canvas the library only offers triggers; once a trigger is in place, every other node type becomes available. See Triggers for the six options. Triggers

Adding nodes from the library

The node library groups every available node by purpose so you can find the right one quickly. Adding a node places it on the canvas with sensible defaults; you then connect it and open the inspector to configure it. For the complete catalogue of what each node does, see the node reference.

Connecting nodes

Nodes are wired by connections — arrows that define the order of execution and pass each node's output to the next node's input. Drag from a node's output port to another node's input port to create a connection. A node only runs once the nodes feeding into it have completed.

Some nodes have more than one outgoing path. A Condition node, for example, has separate "true" and "false" outputs, and many nodes expose an error branch you can wire to handle failures gracefully instead of stopping the whole run.

💡
Pass data downstream with {{ }}

In any text field of the inspector, type {{ to insert a reference to an upstream node's output — for example {{ trigger.output.email }} or {{ agent1.output.summary }}. The picker lists the fields each upstream node declares, so you can wire data through the flow without a test run.

Debounced autosave

You never have to remember to save. As you edit, the builder autosaves your changes as a draft after a short debounce, and a Saving / Saved indicator shows the current state. The draft is separate from the live, published version — editing never affects what's running in production until you publish.

Save Draft vs Publish

A workflow has two states: the draft you're editing and the published version that actually runs.

ActionWhat it does
Save DraftPersists your work in progress. Drafts never fire triggers and never affect the live version — edit freely without consequences.
PublishPromotes the current draft to the active version. Its triggers (webhook URL, schedule, form) go live, and new runs use this version.

Validation

Before you publish, the builder validates the graph and surfaces any problems — a node missing required configuration, a dangling connection, a trigger in the wrong place, or a reference to a field that doesn't exist. Issues are flagged on the offending node and in a summary.

⚠️
Warnings can block a save

Validation issues come at different severities. Informational notes are advisory, but warning-severity issues are treated as blocking — they must be resolved before the workflow can be saved or published. Fix the highlighted nodes and the block clears. The canvas and the server share the same validator, so what passes in the builder passes at runtime.

Version history and rollback

Every workflow keeps a full version history, so you can publish with confidence knowing you can always go back.

  1. Edit as a draft

    Your changes autosave as a draft while you work. Drafts never affect the live version, so you can experiment safely.

  2. Publish when ready

    Publishing records a new version and makes it the active one. Its triggers become live immediately.

  3. Review version history

    Every publish is captured. Browse previous versions to see what the workflow looked like at each point in time.

  4. Roll back instantly

    Restore any earlier version from the history. Rollbacks take effect immediately — no need to re-wire anything by hand.

ℹ️
Next: choose how it starts

With the canvas basics covered, the next step is picking a trigger — the event that kicks off your workflow. Continue to Triggers.