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