Flow, Subflows, Nodes and Messages

This section is mostly based on Node-RED’s documentation. Please refer to the link for further details.


A Flow is a workspace where Nodes are organized. Each Flow is represented by a tab with its name; a description is provided in the Information Sidebar. All the Nodes within a Flow share the same Flowscope Context, meaning they have access to the same context values.

New Flows are created by clicking the “plus” button in the top bar. To edit a Flow’s properties, users can double-click on its tab. Flows can be disabled via the toggle button at the bottom of the dialog box.


Subflows are collections of Nodes grouped within a single Node. They aim to reduce visual complexity or to reuse node collections. Created Subflows become a new Node in the Palette.

To create a blank Subflow, select ‘Subflow -> Create subflow’ in the menu. To create a Subflow from existing Nodes, select the Nodes and choose ‘Subflow -> Selection to Subflow’.


Nodes are the visual representation of actions, chained together via wires to create a flow. Wires connect to the node’s ports. Each node can have one input port and several output ports.

Icons to note:

  • Blue circle: undeployed changes
  • Red triangle: errors within the node
  • Icon and status message: runtime status

Double-clicking on a node opens its Properties, Description, and Appearance. Nodes can be disabled via a button in the dialog box.


Messages are JavaScript objects and can have any properties. They are the units that pass between Nodes.

The most used property is the payload (msg.payload). It’s the default property for passing data between Nodes. All JavaScript value types are accepted.

JSON strings must be converted into JavaScript objects before accessing their content.

For more on Messages, visit Node-RED’s page on messages.