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.

Configure
| Field | Default | What it does |
|---|---|---|
| Rules | — | Each row is a field, an operator, a value, and a NOT toggle. |
| Match | All (AND) | Or Any (OR). |
| Case Insensitive | Off | Applies to the text operators — equals, contains, starts with, ends with, matches regex. |
| Operator | What it asks |
|---|---|
equals · not_equals | Whether the two read as the same text |
contains · starts_with · ends_with | Substring, prefix, suffix |
greater_than · less_than | Numeric comparison; a side that isn't a number reads as zero |
greater_or_equal · less_or_equal | The same, inclusive |
matches_regex | Whether the field matches the value read as a regular expression |
is_empty · is_not_empty | Whether there is anything there. The value is ignored |
Output
The payload passes through unchanged to whichever outlet fires, with the evaluation recorded on it.
| Key | Type | Value |
|---|---|---|
_eval.1, _eval.2, … | String | One line per rule: the field, what it held, the operator, the value, and the tick or cross |
_eval.result | String | The 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.

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.