
How rules are evaluated
- First match wins: rules are evaluated in order, and the first whose condition holds is taken.
- Mandatory default branch: the last rule must be
always. This guarantees the node always has an exit; if it is missing, publishing the protocol fails. - A decision node has no “own value”, so every rule other than
alwaysmust explicitly state which variable it evaluates.
Where a rule routes to
Each rule points to one of two things:- Another node in the flow (a question, a phrase, a webhook, or another decision node), or
- A terminal action that closes the run:
end_protocol_run— finishes the questionnaire.mark_unresolved— finishes it, marked as unresolved.