Link
Creates virtual connections between nodes without visible wires, helping organize complex flows.
Where and why do we use the Link nodes?
The Link In and Link Out nodes help organize flows by creating virtual connections that aren't visible until selected. This is essential for managing complex flows where physical wires would create visual clutter or when you want to reuse logic across multiple locations. By connecting distant parts of your flow without drawing wires across the canvas, you can keep related nodes grouped together, reduce wire crossings, and make flows more maintainable and easier to understand.
Modes of operation
Link nodes work in pairs to create virtual connections:
Link Out Node
Sends messages to one or more Link In nodes. You can configure which Link In nodes receive the message by selecting them from a list. The Link Out node can send to Link In nodes on the same tab or on different tabs, enabling cross-flow communication.
Link In Node
Receives messages from Link Out nodes. When a Link Out node sends a message, all connected Link In nodes receive a copy. The Link In node acts as a starting point for a new branch of your flow.
Link Call Node
Sends messages to a Link In node and waits for a response, similar to calling a function. This enables request-response patterns where you need to process data and return results. The response comes from a Link Out node configured to return to the calling Link Call node.
How the nodes handle messages
Link Out nodes pass messages to their connected Link In nodes exactly as received - no modifications are made. When multiple Link In nodes are connected to a single Link Out, each receives an independent copy of the message.
Link In nodes emit the received message and start a new flow branch. Any nodes connected to a Link In node process the message as if it came from any other node.
Link Call nodes send messages and pause, waiting for a response. The called Link In node processes the message through its connected nodes until reaching a Link Out node configured to return responses. This creates synchronous, function-like behavior within otherwise asynchronous flows.
The virtual connections between Link nodes only become visible in the editor when you select either the Link In or Link Out node, showing which nodes are connected with dashed lines.
Examples
Organizing flow sections
Link nodes separate different functional areas of a flow without cluttering the canvas with long wires. This example shows input processing separated from output handling, making each section easier to understand and maintain.
Reusable processing logic
Link In nodes enable reusing the same processing logic from multiple sources without duplicating nodes. This example shows multiple inputs feeding into a single processing pipeline through Link nodes, useful for common transformations or validations.
Node Documentation
Create virtual wires between flows.
Details
The node can be connected to any link out node that exists on any tab. Once connected, they behave as if they were wired together.
The wires between link nodes are only displayed when a link node is selected. If there are any wires to other tabs, a virtual node is shown that can be clicked on to jump to the appropriate tab.
Note: Links cannot be created going into, or out of, a subflow.
Create virtual wires between flows.
Details
This node can be configured to either send messages to all link in
nodes it is connected to, or to send a response back to the link call
node that triggered the flow.
When in 'send to all' mode, the wires between link nodes are only displayed when the node is selected. If there are any wires to other tabs, a virtual node is shown that can be clicked on to jump to the appropriate tab.
Note: Links cannot be created going into, or out of, a subflow.
Calls a flow that starts with a link in node and passes on the response.
Inputs
Details
This node can be connected to a link in node that exists on any tab. The flow connected to that node must end with a link out node configured in 'return' mode.
When this node receives a message, it is passed to the connected link in node. It then waits for a response which it then sends on.
If no response is received within the configured timeout, default 30 seconds, the node will log an error that can be caught using the catch node.
When the option Link Type is set to "Dynamic target" msg.target can be used to call a
link in by name or id.
- If there is a
link innodes with the same id, it will be called - If there are two or more
link innodes with the same name, an error will be raised - A
link callcannot call alink innode inside a subflow
link out