Connections
Connections (edges) define how work items move from one node to the next in your process map. Every path a unit can travel is represented by a connection, and each connection carries routing information that the simulation engine uses to decide where to send units at runtime.
Core concepts
- Output handle — the right side of a node where connections begin. Drag from here to create a new connection.
- Input handle — the left side of a node where connections arrive. Drop onto here to complete a connection.
- Edge direction — connections are directional: work items always flow from the source node (output handle) to the target node (input handle).
- Routing mode — when a node has multiple outgoing connections, you choose either probabilistic or conditional routing to determine which branch a unit takes.
Drawing a connection
- Select the Connect tool from the toolbar, or press
C. - Hover over the source node until its output handle appears on the right edge.
- Drag from the output handle to the input handle of the target node.
- Release the mouse — the connection appears as an arrow between the two nodes.
If the handles are not visible, make sure you are in Connect mode (C). Handles only appear when you hover over a node in this mode.
Editing an existing connection
- Switch to the Select tool (
V). - Click the connection line to select it — the line highlights and the connection properties panel opens on the right.
- Update the probability weight or routing condition in the panel.
- Click away or press
Escapeto deselect — your changes are saved automatically.
Deleting a connection
- Click the connection to select it.
- Press
DeleteorBackspace— the connection is removed immediately.
Deleting a connection removes it from both the canvas and the scenario. This cannot be undone unless you use Ctrl+Z.
Routing modes
When a node has multiple outgoing connections, you choose how work items are distributed:
| Mode | Behavior |
|---|---|
| Probabilistic | Each connection has a probability weight (0–1). Work items are routed randomly according to those weights. Weights must sum to 1. |
| Conditional | Each connection has a boolean expression. Conditions are evaluated in order; the first connection whose condition is true is taken. |
Probability weights
Set weights in the connection properties panel. For example, if 70% of items go to "Approve" and 30% go to "Reject":
- Approve connection:
0.7 - Reject connection:
0.3
Weights across all outgoing connections from a single node must sum to exactly 1. The properties panel shows a validation error if they do not.
Conditional routing (Router nodes)
For condition-based routing, add a Router node from the node type selector. The router evaluates each outgoing connection's expression in declaration order and routes the unit to the first matching branch.
Expressions are evaluated in the order the connections appear in the router's condition list, not the order they were drawn. You can reorder conditions in the router's info panel to change priority.
Expression syntax
A routing condition is a boolean expression evaluated against the unit's label values:
<expression> := <term>
| <expression> AND <term>
| <expression> OR <term>
<term> := <field> <operator> <value>
| ( <expression> )
<field> := label name (defined in the scenario's label set)
<operator> := < | <= | = | >= | > | <>
<value> := number | "string"
AND binds tighter than OR. Use parentheses to override precedence.
Supported operators:
| Operator | Meaning |
|---|---|
< | Less than |
<= | Less than or equal to |
= | Equal to |
>= | Greater than or equal to |
> | Greater than |
<> | Not equal to |
Examples:
| Expression | Routes when |
|---|---|
priority = "high" | The unit's priority label equals "high" |
score >= 80 | The unit's score label is 80 or above |
score >= 80 AND region = "north" | Both conditions are true |
score < 50 OR escalated = "yes" | Either condition is true |
Default route
You can designate one outgoing connection per router as the default route — taken when no condition matches. Units with no matching condition and no default route are dropped from the simulation.
Validation
The expression editor validates your input on every keystroke and highlights errors in red. Common errors include:
- Label name not defined in the scenario
- Unknown operator
- Malformed expression syntax
You can save an invalid condition, but the simulation panel will block you from running until all conditions are valid.
Reference
Connection properties
| Property | Type | Description |
|---|---|---|
probability | float (0–1) | Weight used for probabilistic routing. Must sum to 1 across all outgoing connections from a node. |
routing_condition | expression string | Boolean expression for conditional routing. Evaluated against the unit's label values. |
label | string | Optional display label shown on the connection line in the canvas. |