NearSync Help

Operations

Conditions and Branching How to build the tests that decide what a workflow does next, using the full operator vocabulary.

A condition decides which way a workflow goes. A switch does the same across several cases. Both read values from the trigger's data and test them.

Condition Groups

A condition is a group of rules with a mode:

Mode Passes when
All of these Every rule passes
Any of these At least one rule passes
None of these No rule passes

Groups nest, so you can express "all of these, and any of those" without contortion. Build the shape you mean rather than flattening it into one long list - a nested group that reads clearly is worth more than a clever flat one.

The Operators

Fifty-two operators, filtered to what makes sense for the field's type. A date field offers date operators; a text field offers text ones.

Comparison - equals, not equals, greater than, less than, greater or equal, less or equal, between, not between. Also equals case-insensitive for text, which is usually what you want when comparing text a human typed.

Text - contains, does not contain, starts with, ends with, matches regex, does not match regex, and length equals, greater than or less than.

Emptiness - is empty, is not empty, is null, is not null, is set, is not set. These are not identical: a field can be present and blank, or absent entirely. When a condition on emptiness behaves oddly, try the other one.

Lists - in list, not in list, list contains, list does not contain, list contains any of, list contains all of.

Booleans - is true, is false.

Dates - the richest set, and where most of the useful automations live:

Operator Use for
Date before / Date after Fixed cut-offs
Date within N days A window either side
Is today / Is tomorrow / Was yesterday Daily jobs
Is in next N days / Was in past N days Look-ahead and look-back
Is older than N days Staleness
Is more than N days away Early warning
Is birthday or anniversary today Matches day and month, ignoring year
Is this month Matches month, ignoring day and year
Is a weekday / Is weekend Working-day logic
Is day of week / Is day of month Specific recurring days

Tip

"Is birthday or anniversary today" is the one people build badly by hand. It matches day and month while ignoring the year, so it works for birthdays, contract anniversaries and joining dates without any date arithmetic.

Change operators - has changed, changed to, changed from, changed from X to Y. These compare the value before and after, so you can act on a transition rather than a state. "Changed to at-risk" fires once, when it happens. "Is at-risk" is true every time anything on that record changes.

That distinction prevents a large class of repeated-notification bugs.

Switches

A switch branches to several cases at once, rather than yes and no. Use it when one field decides between three or more paths - routing by region, by priority, by type.

A switch with two cases should be a condition. A chain of five conditions testing the same field should be a switch.

Values From The Record

Rules read values from the triggering record - and custom fields are first-class here, so you can branch on anything you have added yourself. See Custom Fields.

Common Mistakes

Testing state where you meant transition. Use the change operators when you care that something became true.

Comparing text exactly. Use equals case-insensitive, or contains, when a human typed the value.

Assuming empty means null. They are different. If a rule is not matching records you can see are blank, swap the operator.

Over-nesting. If a condition needs four levels, the workflow is probably two workflows.

Testing Conditions

Use the dry run. It executes against a sample payload without sending anything, and shows which branch was taken. Test both paths - a condition that always goes the same way is not doing anything, and you will not notice until the other case matters.

Caution

A condition with no matching data does not error. It takes the false branch, silently. If a workflow "does nothing", the usual cause is a condition that never passes because the field it reads is empty on the records that trigger it.

Common Questions

Can I compare two fields? Rules test a field against a value. To compare fields, compute one into a variable first with a transform, then test that.

Why is my operator missing? Operators are filtered by field type. A text field will not offer greater than.

Does the condition see custom fields? Yes.

What happens if a branch has nothing attached? The workflow ends there. That is fine when it is deliberate, and a silent stop when it is not.

9 minUpdated 28 July 2026

Did this answer your question?

No, ask a person