Routing Modes
Routing mode controls how steps in a workflow template execute relative to each other. Three modes are available: Sequential, Parallel, and Conditional. You assign a routing mode to each step (or step group) when building the template.
Sequential
Steps execute one at a time, in order. Step 2 does not start until Step 1 is complete. Step 3 does not start until Step 2 is complete. And so on.
Step 1 (Reviewer A) → Step 2 (Reviewer B) → Step 3 (Approver C) → Done
When to use Sequential:
- The output of one step is the input to the next (e.g. comments from Step 1 must be reviewed in Step 2)
- Approvals must follow a hierarchy (junior reviewer before senior reviewer)
- Each reviewer needs to see all previous comments before acting
- Time-sensitive processes where the total duration depends on each step completing before the next begins
Trade-off: Sequential routing is slower — the workflow's minimum duration equals the sum of all step SLAs. If steps are independent, consider Parallel to save time.
Parallel
A parallel group is a set of steps that execute simultaneously. All steps in the group start at the same time, and the group is considered complete based on the completion rule:
┌── Step 2a (Structural Lead) ──┐
Step 1 ──┤── Step 2b (MEP Lead) ──├── Step 3 (PM Approves) → Done
└── Step 2c (Arch Lead) ──┘
Parallel completion rules
| Rule | Group completes when... |
|---|---|
all_must_approve | Every parallel assignee has acted |
any_one | The first parallel assignee acts |
majority | More than half of parallel assignees have acted |
When to use Parallel:
- Multiple independent reviewers must all act (e.g. three discipline leads all reviewing a coordination drawing simultaneously)
- You want the fastest possible cycle time for steps that don't depend on each other
- You need a quorum rather than unanimous agreement (
majorityrule)
Trade-off: Parallel routing requires all assignees to be available simultaneously. If one assignee is delayed, they hold the entire group (with all_must_approve). Use any_one when a single expert opinion is sufficient.
Conditional
A conditional step only executes if a specified condition is true at the point the step would start. If the condition is false, the step is skipped automatically.
Step 1 → [IF discipline = Civil] → Step 2 (Civil Lead Review) → Step 3 (Approve)
↗ [else: skip Step 2]
Condition expressions
Conditions are written as expressions that evaluate metadata at workflow start time:
| Expression syntax | Example | Evaluates as |
|---|---|---|
discipline == "structural" | Step only runs for structural documents | True/False |
zone == "Zone-A" OR zone == "Zone-B" | Step runs for Zone A or B documents | True/False |
priority == "urgent" | Step runs only for urgent workflows | True/False |
stage == "for_construction" | Step runs at construction stage only | True/False |
Supported operators: ==, !=, AND, OR, NOT. Values must match exactly (case-sensitive for codes, case-insensitive for text).
When to use Conditional
- A multi-discipline template where some review steps are only relevant for specific disciplines
- Optional SLA extensions that only apply if priority is Urgent
- Sign-off steps that only trigger when the total value exceeds a threshold
- Steps that apply only at certain project stages
Example: A document approval template for a multi-discipline project. Step 3 (Structural Lead Review) has a condition discipline == "STR". If you route a mechanical drawing through this template, Step 3 is automatically skipped, and the workflow goes directly to Step 4.
Combining routing modes
A template can combine all three modes across its steps:
Step 1: Sequential (Reviewer A)
Step 2: Parallel group [Reviewer B, Reviewer C, Reviewer D] — all_must_approve
Step 3: Conditional (IF stage = for_construction) → Step 3 (Director Sign-off)
Step 4: Sequential (PM Approve)
This pattern runs Step 1 first, then runs three parallel reviews simultaneously, then conditionally adds a Director sign-off for construction-stage documents, then requires PM approval to close.
What's next
- Step Assignments — who gets assigned to each step and routing mode
- Conditional Routing — full reference for condition expressions
- SLA & Duration — set time limits per step and parallel group
- Step Types — what each step type requires from its assignee