Skip to content

The flow canvas

The flow canvas is where you build an automation: drop nodes, wire their ports together, and configure each one in the inspector. This page is a tour of the editing surface.

Adding nodes

Open a flow file and you get an infinite canvas. Add a node from the node menu and it appears as a box you can drag anywhere. Every node shows its name, a small handle for each input port on one side, and a handle for each output port on the other.

You'll almost always start with a Start node and finish with an End node — the two ends of every runnable flow. In between go the working nodes: If, Switch, ForEach, Set, Template, HTTP, Email, MongoDB. Browse them all in the Node reference.

INFO

📸 Screenshot — the flow canvas with a Start node, an If node, and an End node placed but not yet wired.

Wiring ports

A connection is a wire from one node's output port to the next node's input port. Drag from an output handle to an input handle to create one. The wire is directional — it says "after this port, go here".

  • Nodes that always continue expose a single next output.
  • If exposes true and false; Switch exposes one output per case plus default; ForEach exposes loop (the body) and next (after the loop).
  • Every node also has an error output you can wire to a handler branch. Leave it unwired and failures surface as a run error instead. See Error handling.

You can wire more than one connection out of the same port; the engine follows all of them. A port with nothing connected simply ends that path.

TIP

As you wire, the trigger bar re-checks the flow. If it turns red, hover the issues chip to see what's wrong — a missing Start, a missing End, or a node that isn't connected to anything. See Testing & the trigger URL.

The inspector

Select a node and the inspector opens its configuration. What you see depends on the node:

  • An If node asks for a condition.
  • An HTTP node asks for a method, URL, headers, and body.
  • An Email node asks for a recipient, subject, and body.
  • A Set or Template node asks for a variable name and its source or template text.

Most text fields accept references to values produced earlier in the flow, plus ${env.X} and ${secrets.X} placeholders that resolve at run time. Those are explained in Data & references.

Configuration is stored with the node and applied when the flow runs on the server — the inspector never executes your node in the browser. Custom, workspace-authored nodes render their own settings inside a sandbox, so a third-party node can't reach into the rest of the editor.

INFO

📸 Screenshot — a node selected on the canvas with the inspector panel open showing its config fields.

The trigger bar

Running along the top of the canvas is the trigger bar. It is the flow's control strip:

ElementWhat it tells you
Method chipsThe HTTP methods this flow answers — one chip per Start node (GET, POST, …). "no Start node" if there are none.
Endpoint pathThe public URL this flow is callable at, e.g. /api/run/<project>/<flow-name>.
Validity chipValid in green, or a count of issues you can hover to read.
Schedule buttonSet the flow to run on a cron schedule as well as on request.
Copy buttonCopies the full trigger URL to your clipboard.

The path is derived from your project and the flow's file name, so renaming the file changes the URL.

See also

FlowRunner — the no-code platform for small businesses.