notiflowsDocs
LearnBuilding Notiflows

Condition Step

Route notifications into different branches based on conditions

The condition step evaluates rules against recipient data, actor data, or custom payload and routes each notification down the matching branch. This lets you send different notifications — or skip notifications entirely — based on who the recipient is or what triggered the flow.

How It Works

A condition step contains one or more branches. Each branch has a set of conditions that are evaluated at runtime. The notification follows the first branch whose conditions match, or falls through to the default branch if no conditions match.

Trigger → Condition
              ├─ Premium users → Email + Push → End
              ├─ Trial users → Email → End
              └─ Default → End

Configuration

Each condition step has:

  • Branches — Named paths that notifications can follow (e.g., "Premium Users", "Trial Users")
  • Conditions — Rules on each branch that determine which notifications follow that path
  • Default branch — A catch-all branch for notifications that don't match any other branch's conditions

Branch Conditions

Each branch can have one or more condition groups. Within a group, conditions are combined with AND or OR logic.

A condition consists of:

FieldDescription
PropertyThe data field to evaluate (e.g., recipient.plan, data.amount)
OperatorHow to compare the value
ValueThe expected value to compare against

Operators

OperatorDescription
Equal toExact match
Not equal toDoes not match
Greater thanNumeric comparison
Less thanNumeric comparison
Greater than or equal toNumeric comparison
Less than or equal toNumeric comparison
ContainsString contains substring
Does not containString does not contain substring
Starts withString starts with prefix
Ends withString ends with suffix
Is emptyField is null or empty
Is not emptyField has a value

Use Cases

Notification preferences

Route based on the recipient's preferred channel:

Trigger → Condition
              ├─ Prefers email → Email → End
              ├─ Prefers SMS → SMS → End
              └─ Default → Push → End

Plan-based content

Send different content to different user tiers:

Trigger → Condition
              ├─ Enterprise → Email (detailed report) → End
              ├─ Pro → Email (summary) → End
              └─ Free → Email (upgrade CTA) → End

Locale-based routing

Send notifications in the recipient's language:

Trigger → Condition
              ├─ locale = "es" → Email (Spanish) → End
              ├─ locale = "fr" → Email (French) → End
              └─ Default → Email (English) → End

Data-driven routing

Route based on the custom data payload:

Trigger → Condition
              ├─ data.priority = "urgent" → Push + SMS → End
              └─ Default → Email → End

Nesting

Condition steps can appear anywhere in a flow, including inside another condition's branch. This lets you build complex routing logic:

Trigger → Condition (region)
              ├─ US → Condition (plan)
              │         ├─ Premium → Email + SMS → End
              │         └─ Default → Email → End
              └─ EU → Email (GDPR-compliant) → End

Condition Steps vs Step Conditions

Notiflows has two different condition features:

  • Condition steps (this page) — Route the flow into branches. Every notification goes down exactly one branch.
  • Step conditions — A gate on an individual step. If the conditions aren't met, that single step is skipped and execution continues to the next step.

Step conditions are configured per-step in the step settings panel. Condition steps are a dedicated step type that you add to the canvas.

On this page