Skip to content

Adding and connecting nodes

Add nodes from the palette or a port, then wire output ports to input ports. This page covers adding, naming, connecting, duplicating and deleting nodes.

The Nodes palette open on the left of the editor, with the Search Nodes box at the top, the Triggers and AI groups collapsed and the Flow Control group expanded to show Approval, If, Loop, Merge, Split, Sub-Workflow, Switch and While.The Nodes palette open on the left of the editor, with the Search Nodes box at the top, the Triggers and AI groups collapsed and the Flow Control group expanded to show Approval, If, Loop, Merge, Split, Sub-Workflow, Switch and While.

Adding a node

From the palette

  1. Click Nodes at the top left of the editor to open the palette.
  2. Find the node. Type in Search Nodes for a flat list of matches, or open a group: Triggers, AI, Flow Control, Developer Tools, Integrations, Data Storage, Communication, Other or Templates.
  3. Either click the node to drop it in the centre of the canvas, or drag it to the spot you want.
An HTTP Request node just dropped onto the canvas from the Nodes palette, which is filtered to HTTP, next to a Scheduler trigger. The new node's panel is open.An HTTP Request node just dropped onto the canvas from the Nodes palette, which is filtered to HTTP, next to a Scheduler trigger. The new node's panel is open.

Templates in the palette are ready-made workflows. Clicking one asks whether to create a new workflow from it, replace the current one, or merge it into what you have.

From a port

Click the + on a node's port. A node picker opens with a search box and tabs (All, AI, Developer, Logic). Pick a node and it is added and connected to that port in one step. This is the fastest way to extend a chain.

On an existing connection

Hover over a connection, or click it to select it. A + button appears at its midpoint. Click it to insert a node in the middle of the connection, wired on both sides.

On an empty workflow

A new, empty workflow shows Pick an action in the middle of the canvas. It opens the node picker with triggers first: Start, Scheduler, Form Trigger, Webhook, Chat and MCP. Next to it, Ask flero opens the AI builder.


Naming nodes

Every node gets its type's display name. A second node of the same type gets a number: HTTP Request, HTTP Request 2, and so on. Names matter because expressions refer to nodes by name: {{ $node["HTTP Request"].output.response.body }}.

To rename a node, open its panel and double-click the name in the panel header. Type the new name and press Enter.

⚠️ Renaming does not update expressions. Any expression that refers to the old name stops resolving and shows an [EXPR-ERROR: …] marker. After a rename, update every expression that used the old name.

Naming tips:

  • Use names that say what the step does (Fetch customer, Approve refund), not its type (HTTP Request 3).
  • Names are case-sensitive. HTTP Request and http request are different names to the expression evaluator.
  • Keep names unique. The editor doesn't stop you giving two nodes the same name, but expressions can't tell them apart.

Connecting nodes

Draw a connection

Two ways:

  • Drag from an output port (right side of a node) towards the target. Release near an input port (left side) and it snaps on.
  • Click an output port, then click an input port.

Either way, the connection always runs from an output to an input. To cancel a connection in progress, press Esc or click anywhere that isn't a port.

A Scheduler trigger connected to an HTTP Request node: the new connection runs from the trigger's output port into the HTTP Request node's input port.A Scheduler trigger connected to an HTTP Request node: the new connection runs from the trigger's output port into the HTTP Request node's input port.

Nodes with several outputs

Some nodes have more than one output port. Each port is labelled on the node; connect from the one you want.

Node Output ports
If true, false
Switch One per case
Loop One for each item, one for when all items are done
Approval One per outcome

Some node types also have an error port that receives the failure instead of stopping the run.

A selected If node named Priority is urgent? with its True and False output ports showing. True is connected to a Page on-call notification node; False is not connected yet.A selected If node named Priority is urgent? with its True and False output ports showing. True is connected to a Page on-call notification node; False is not connected yet.

AI Agent ports

The AI Agent node has extra input ports for guards and tools. Clicking the + on one opens a picker titled Add a Guard or Add a Tool, filtered to nodes that fit. You can also drop nodes onto the agent's slot boxes in its panel. See Configuring nodes.

Fan-out and fan-in

  • Fan-out: one output can connect to many inputs. Each receives the same data.
  • Fan-in: many outputs can connect to one input. The node receives the combined upstream data. Use a Merge node when you need to control how inputs combine.

Duplicating

  • Select one or more nodes and press ⌘D / Ctrl+D, or click Duplicate in a node's hover toolbar.
  • The copy lands slightly below and to the right, with a numbered name (Fetch customer 2).

There is no copy and paste for nodes. Use Duplicate instead.

Expressions inside the copy still point at the same nodes as the original. Check them after duplicating.


Deleting

  • Nodes: select and press Delete (on a Mac without a Delete key, ⌘Backspace), or click Delete in the node's hover toolbar.
  • Connections: hover over the connection and click the × at its midpoint, or click it to select it and press Delete.

Plain Backspace does not delete, so you can't remove a node by accident while typing. Select several items to delete them together. ⌘Z / Ctrl+Z undoes a delete.


The node hover toolbar

Hover over a node for a small toolbar:

Button What it does
Run On a trigger node, runs the workflow from that trigger.
Change Replace the node with another type. See Replacing a node.
Duplicate Copy the node.
Delete Remove the node.
More Open Node Settings: error handling, timeout and priority. See Configuring nodes.

Tips & gotchas

  • The editor doesn't check data shapes when you connect. Any output can connect to any input. Problems show up when expressions resolve at run time.
  • Test after renaming. Renames don't rewrite expressions, in this workflow or in others.
  • Hyphens and spaces in names are fine inside $node["my-node"]. The bare form my-node.output never resolves.
  • Tidy up with Clean workflow in the floating toolbar. It re-arranges the nodes into a left-to-right layout.


Found something out of date? This page lives in the Flero docs content set.