Conditions

Condition

Sends the payload down Yes or No by comparing one of its fields against a value.

condition.compare
CONDITIONCondition

At a glance

Takes
Any payload
Emits
The payload unchanged, plus an _eval line per rule
Good for
Filtering, thresholds, error branches, routing by content

Set it up

Add a rule: pick the field from the dropdown of upstream variables, choose an operator, and type the value — {{variable}} templates resolve against the incoming payload. Add more rules and they combine under Match, and each rule has its own NOT toggle.

The inspector for a Condition: a rule table, the AND/OR switch, and the case toggle.
The inspector for a Condition: a rule table, the AND/OR switch, and the case toggle.

Configure

FieldDefaultWhat it does
Rules—Each row is a field, an operator, a value, and a NOT toggle.
MatchAll (AND)Or Any (OR).
Case InsensitiveOffApplies to the text operators — equals, contains, starts with, ends with, matches regex.
OperatorWhat it asks
equals · not_equalsWhether the two read as the same text
contains · starts_with · ends_withSubstring, prefix, suffix
greater_than · less_thanNumeric comparison; a side that isn't a number reads as zero
greater_or_equal · less_or_equalThe same, inclusive
matches_regexWhether the field matches the value read as a regular expression
is_empty · is_not_emptyWhether there is anything there. The value is ignored

Output

The payload passes through unchanged to whichever outlet fires, with the evaluation recorded on it.

KeyTypeValue
_eval.1, _eval.2, …StringOne line per rule: the field, what it held, the operator, the value, and the tick or cross
_eval.resultStringThe combined line, when there is more than one rule

Example: only notify about large files

Input supplies a size. Condition asks whether {{text}} is greater than 1000000. Yes goes to Notification; No goes to a Log node labelled Too small.

Four nodes: a value in, a question asked, two branches, one taken.
Four nodes: a value in, a question asked, two branches, one taken.

Paste this into the Flow Builder to get the same flow:

Take a number from an Input trigger, and if it is greater than one million notify me; otherwise log it.

Good to know

equals is a text comparison, not a numeric one. A number is rendered first — an integral one loses its .0, so an API's 200.0 does match "200" — but the comparison itself is on the characters. "1.10" and "1.1" are not equal, and neither are "007" and "7". Use greater_or_equal and less_or_equal together when you mean "the same number".

Two unparseable values compare as zero. greater_than and friends read each side as a number, and anything that isn't one reads as 0 — so two pieces of prose fail greater_than but satisfy greater_or_equal.

An operator the node doesn't recognise fails the run. It does not quietly branch No. A wrong answer that looks right is worse than a stop.

A Condition with no rules always takes Yes, which is what a half-built node on the canvas does. Disabling the node does the same thing — the check is removed and the flow carries on as if it passed.

A regex is spliced in verbatim. A {{variable}} inside a matches_regex value brings its metacharacters with it, and a pattern that doesn't compile evaluates to No.