Skip to main content
Conditional rules decide the flow’s path: they compare a value (an answer or a variable) and, if the condition holds, route to the next node or to an action. Conditional rule editor

Comparators by type

Not every comparator applies to every type. The always comparator is the default branch and applies to any type. between takes a pair of values (two numbers or two dates); any_of takes a list.

Literal value or variable

The right-hand side of a rule can be a literal value or another variable (variable-to-variable comparison). Both sides must resolve to the same type. Variable comparison is allowed for: equals, not_equals, contains, starts_with, ends_with, and the ordering comparators (greater_than, less_than, before, after, etc.); not for between, any_of, or always. Multiple choice cannot be compared against a variable.

Variables

Built-in variables: Custom variables: declared per version (lowercase name, type text/number/date/boolean, required or not, with an optional default) and referenced as custom.<name> or {{ name }} in templates. Their values come from the enrollment or the run.

Where rules can live

  • On a question or a webhook, a rule may only read that node’s own value.
  • Any condition that crosses items (another question, a variable, another webhook, or variable-to-variable comparison) must live on a decision node.
  • A flow phrase allows at most one rule, and it must be always.