New: the AI firewall watches every module and explains each incident in plain words. See how it works

The flow editor

Create a flow, add and wire blocks, edit their settings, read problems, and deploy – the canvas, the palette, the block panel and the deploy dialog.

The flow editor is where you build and change flows. You place blocks on a canvas, wire their outputs to other blocks’ inputs, fill in their settings and deploy. The draft is saved as you work; nothing runs until you deploy.

Create a flow

  1. Open Automation. The list shows every flow of every host, root flows first.
  2. Select New flow.
  3. Fill in the dialog:
FieldMeaning
HostIoT or General. “Where the flow runs and which blocks it can use. It cannot change later.”
NameThe flow’s name
SlugIts short id: lower-case letters, digits, - and _, up to 32 characters. It cannot change later.
Start fromAn empty flow, or a template of the host. See Flow templates.
  1. Select Create. The editor opens.

Every flow has one Flow input block from the start. It is the entry for messages another flow hands over, and for a root flow, the entry of its device messages. It cannot be deleted; leave it unconnected if nothing hands messages to this flow.

The editor at a glance

AreaWhat it holds
Top barThe flow’s name and state, the save state (Saving…, Saved, Not saved yet), live figures (Live or Every 5 s, messages per second, waiting messages, errors in 24 h) and the buttons Activity, Webhooks, Test, Versions, Failed messages, Discard draft and Deploy
PaletteNode Types: every block of the host, alphabetically, with a search box
CanvasThe blocks and their wires
Side panelThe selected block’s settings, or the Activity panel

Webhooks appears once a deployed flow has a Webhook trigger. Versions appears after the first deploy. Discard draft appears while the draft differs from the deployed version.

Add blocks

  • Drag a block from the palette onto the canvas, or click it.
  • Or right-click the canvas and choose Add a block here…, or right-click a wire and choose Add a block in between…. The Add a block picker searches by name, description or type.
  • A block that cannot be used is shown greyed, with the reason: “Your plan does not include this block.”, “This block needs a configuration that is not set up yet.”, “The module this block belongs to is not installed.”, “This block does not run on this flow’s host.” or “You need the permission … to use this block.”

Wire blocks

  • Drag from an output port (right side of a block) to an input port (left side of another).
  • A block can have several outputs, for example yes and no, or one per rule of a Switch. Hovering a port shows its name.
  • Most blocks also have an error output. Wire it to handle that block’s errors yourself; otherwise errors go to the flow’s Catch triggers. See Trigger blocks.
  • To move a wire’s end, drag its handle to another port. To change which output a wire leaves from, right-click it and choose Change port….
  • Select a wire and press Delete, or right-click it and choose Delete connection.

Wires carry a count of messages once the flow runs (“12 messages”).

Edit a block

Click a block. The side panel opens with three tabs:

TabShows
SettingsLabel, Description (a note for people; it does nothing) and the block’s own settings. “Changes apply as you type. Undo with Ctrl+Z.”
MessagesThe last messages that passed the block, In and Out, with Test with this input. Message contents are shown only to people who may debug.
HelpThe block’s reference: what it does, its ports and settings

Settings that take a value let you pick its kind: Number, Text, Yes / no, JSON, Variable (a path such as msg.payload.level or flow.limit), Expression, Environment variable or Current time. Settings that pick a connection (an MQTT broker, an HTTP endpoint) list your connections of that type, with Manage connections. See Connections and secrets.

The Script block opens a code editor with find and replace, formatting, full screen and Test the script. See The script block.

Work with many blocks

ActionHow
Select severalShift or Ctrl click, or hold Shift and drag a frame (Select blocks with a frame)
Copy, cut, paste, duplicateThe right-click menu or the usual keyboard shortcuts
GroupSelect, right-click, Group…; give the group a name and a colour
CommentRight-click the canvas, Add a comment here. Comments do nothing when the flow runs.
Skip a blockRight-click, Skip: the block stays but does not run
Tidy upArrange the blocks in the toolbar
FindFind a block searches names, types, descriptions and ids
NavigateZoom in and out, Fit to screen, Mini map, Fullscreen

Press ? on the canvas for the keyboard shortcuts.

Problems

The editor checks the flow as you build it. Problems are marked on the blocks and listed under Problems:

ProblemMeaning
“Setting is required.”Fill in the setting.
“This block is not connected to anything.” / “Nothing is connected to this block.”Wire it or remove it.
“A flow can have only one Flow input block.”Remove the extra one.
“These blocks send messages round in a loop that never waits…”Put a waiting block (a delay, a timer, a call) in the loop, or break it.
“A Run flow block cannot run its own flow.”Pick another flow.
“This block is not available here. It keeps its connections but cannot run.”The block came from an import and does not exist on this host.

A flow with errors cannot be deployed: “Fix the problems marked on the canvas first.”

Saving

The draft is saved to the server automatically as you edit. The save state shows Saving…, Saved or “Not saved. Retry”. Unsaved changes are also kept in your browser: if you leave and come back, the editor offers to restore them.

If someone else saved the same flow meanwhile, the editor shows “This flow was saved by someone else” with:

  • Merge: keeps what only one side changed and saves the result as the draft. Look through it before you deploy; Undo goes back to your version.
  • Overwrite with mine: keeps your version.

Deploy

  1. Select Deploy. The dialog “Deploy name” says: “This becomes version n of the flow and starts running.”
  2. Read the warnings and the list of changes, if any.
  3. Choose What restarts: Only the blocks that changed (default), Every block of the changed flows or Every flow of this host. Blocks that do not restart keep their memory.
  4. Leave Run the flow after the deploy ticked to run it, or untick it to deploy it switched off.
  5. Optionally write a Note (“What changed”). It shows in the version list.
  6. If the flow has blocks that act outside it (Code, Control, External, System risk), the dialog lists them: tick I understand what these blocks do and type the flow’s name.
  7. Select Deploy (or Confirm and deploy).

A deploy can be refused: by a problem, by a plan limit (“Your plan allows n flows: …”), by a missing permission, or because someone deployed meanwhile. The dialog says which. See Flow limits.

A flow that is a root must stay switched on and approved: “This flow is a root, so it must stay switched on and approved: device data would not be stored otherwise.”

Read-only flows

You see “You can view this flow but not change it.” when you lack the permission to manage automation, when the flow is deleted (restore it first), or when a module built it (a Rules-card rule: Built by badge). See Hosts, the root flow and profile root flows and Versions, testing and rollback.