Skip to main content

Conditional Routing

Conditional routing lets a single template handle multiple document types, disciplines, or priorities by automatically skipping steps that are not relevant to a specific workflow run. Instead of maintaining a separate template for every possible combination, you write conditions that evaluate the workflow's metadata at runtime and decide whether each step executes.

How conditions work

Each step in a template can have an optional condition expression. When the workflow reaches that step:

  1. The system evaluates the condition against the current workflow's metadata (discipline, zone, stage, priority, and any custom metadata fields).
  2. If the condition is true: the step executes normally.
  3. If the condition is false: the step is skipped — it does not notify the assignee, does not count toward the outcome, and is marked as Skipped in the workflow timeline.

Skipped steps are visible in the workflow history, with a note that they were skipped due to a condition.

Condition expression syntax

Conditions use a simple expression language:

Comparison operators

OperatorMeaningExample
==Equalsdiscipline == "STR"
!=Not equalsstatus != "draft"

Values are case-sensitive for code fields and case-insensitive for text fields.

Logical operators

OperatorMeaningExample
ANDBoth must be truediscipline == "STR" AND stage == "CD"
OREither must be truezone == "ZA" OR zone == "ZB"
NOTMust not be trueNOT discipline == "GEN"

Grouping with parentheses

Use parentheses to control evaluation order:

(discipline == "STR" OR discipline == "MEP") AND stage == "CD"

Without parentheses, AND takes precedence over OR. Add parentheses wherever the intended logic might be ambiguous.

Available fields

Any metadata field on the workflow or the routed document can be referenced:

FieldExample values
discipline"STR", "MEP", "ARC", "CIV"
zone"ZA", "ZB", "Zone-1"
stage"DD", "CD", "FC", "AB"
type"drawing", "specification", "report"
priority"low", "medium", "high", "urgent"
Custom metadata field name"Zone-A", "PKG-01" (any option code)

Common condition patterns

Discipline-specific step

A structural-only review step that is skipped for all other disciplines:

discipline == "STR"

Multi-discipline step

A step for any civil or structural document:

discipline == "STR" OR discipline == "CIV"

Stage and discipline combined

Director sign-off only for issued-for-construction structural drawings:

discipline == "STR" AND stage == "FC"

Urgent escalation step

An additional escalation step that only runs if the workflow priority is Urgent:

priority == "urgent"

Exclude a category

All disciplines except General:

NOT discipline == "GEN"

Combining conditional steps with parallel steps

Conditional logic and parallel routing can be combined. A parallel group can have a condition — if the condition is false, the entire parallel group is skipped. Individual steps within a parallel group can also have their own conditions, allowing the system to selectively skip some parallel participants while running others.

Template design tips

  • Test conditions before deploying: Use the template's Preview mode to simulate how the template behaves for different discipline/zone combinations.
  • Avoid overly complex conditions: If a condition requires more than three clauses, consider whether the template should be split into two separate templates.
  • Document conditions for maintainers: Use the step's Description field to explain the condition in plain language — future admins may not immediately understand the expression syntax.
  • Default to no condition for universal steps: Steps that must always run (regardless of discipline or context) should have no condition.

What's next

  • Routing Modes — sequential, parallel, and conditional at the template level
  • Template Settings — outcome determination and rejection handling
  • Step Types — what each step type captures from its assignee