Skip to main content

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

  1. Select the Connect tool from the toolbar, or press C.
  2. Hover over the source node until its output handle appears on the right edge.
  3. Drag from the output handle to the input handle of the target node.
  4. Release the mouse — the connection appears as an arrow between the two nodes.
tip

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

  1. Switch to the Select tool (V).
  2. Click the connection line to select it — the line highlights and the connection properties panel opens on the right.
  3. Update the probability weight or routing condition in the panel.
  4. Click away or press Escape to deselect — your changes are saved automatically.

Deleting a connection

  1. Click the connection to select it.
  2. Press Delete or Backspace — the connection is removed immediately.
warning

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:

ModeBehavior
ProbabilisticEach connection has a probability weight (0–1). Work items are routed randomly according to those weights. Weights must sum to 1.
ConditionalEach 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
tip

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.

note

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:

OperatorMeaning
<Less than
<=Less than or equal to
=Equal to
>=Greater than or equal to
>Greater than
<>Not equal to

Examples:

ExpressionRoutes when
priority = "high"The unit's priority label equals "high"
score >= 80The 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

PropertyTypeDescription
probabilityfloat (0–1)Weight used for probabilistic routing. Must sum to 1 across all outgoing connections from a node.
routing_conditionexpression stringBoolean expression for conditional routing. Evaluated against the unit's label values.
labelstringOptional display label shown on the connection line in the canvas.