Skip to main content

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

RuleGroup completes when...
all_must_approveEvery parallel assignee has acted
any_oneThe first parallel assignee acts
majorityMore 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 (majority rule)

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 syntaxExampleEvaluates as
discipline == "structural"Step only runs for structural documentsTrue/False
zone == "Zone-A" OR zone == "Zone-B"Step runs for Zone A or B documentsTrue/False
priority == "urgent"Step runs only for urgent workflowsTrue/False
stage == "for_construction"Step runs at construction stage onlyTrue/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