Conditional branching

Condition nodes evaluate a real boolean expression and run only the matching branch — the other is pruned.

A condition node evaluates a boolean expression against the scope. The engine runs only the matching branch and prunes the other. Give it two outbound edges labeled data.branch: "true" / "false".

Expressions

A safe evaluator (no eval) supports comparisons > >= < <= == !=, logic && || !, membership a in b, and helpers contains(a,b), lower(x), length(x), exists(x).

text
${plugin_output.score} >= 70 && ${vars.vip}
Branching is real: nodes on the untaken path don't run. This is the difference between a workflow that *looks* like it branches and one that actually does.