---
title: "Condition step - Workflow Suite"
description: "Split a workflow with rules: one path when they match, another when they do not. Compare event fields, step results, variables and changes."
canonical: "https://docs.workflow-suite.app/conditions"
---

# Conditions

A **Condition** splits the workflow. When its rules match, the run continues on the **Then** branch, otherwise on the **Otherwise** branch. An empty branch ends the run, as Completed.

## Add a condition

1. Press **+** where the condition should go and pick **Condition**.
2. Under **Continue when**, choose **All rules match** or **At least one rule matches**.
3. For each rule choose the **Field**, the **Comparison** and a **Value**.
4. Select **Add rule** for more rules, up to 20.
5. Press **+** on the **Then** branch and on the **Otherwise** branch to add the steps of each path.

## What a rule can read

Pick the field with the variable picker. A condition reads paths, without curly braces:

| Path | Reads |
| --- | --- |
| `event.payload.total_price` | A field of the trigger's event |
| `steps.lookup.output.customer.numberOfOrders` | The result of an earlier step |
| `steps.items.output.orders.nodes.0.id` | The first entry of a list: use `.0` |
| `vars.threshold` | A workflow variable |
| `loop.item.sku` | The current item, inside a Repeat for each |

## Comparisons

| Comparison | Notes |
| --- | --- |
| is equal to, is not equal to | `"19.99"` and `19.99` count as equal |
| is greater than, is at least, is less than, is at most | Numbers, also as text, and dates such as `2026-09-17T10:00:00Z` |
| contains, does not contain | Part of a text, or one entry of a list |
| starts with, ends with | Text |
| is one of | Values separated by commas |
| has a value, is empty | Need no value |
| changed, changed to, changed from, increased, decreased | Before-and-after rules, only with a change trigger. See [Change triggers with before and after values](https://docs.workflow-suite.app/change-triggers.md) |

The **Value** is compared as you type it. To compare with something that is worked out, define a variable and read it in a rule's field, or do the comparison in a Liquid script step and test its output.

## Branches that join again

Two branches can lead to the same step. Connect the end of a branch to an existing step by dragging from it on the canvas. A step after such a join may read results of a step that only ran on one branch. The variable picker marks those with **May be empty**; an empty value renders as nothing.

## Several outcomes

For more than two outcomes, put a second Condition on the Otherwise branch. The template **Sort customers into bronze, silver and gold** is built that way.

## A condition's own result

Later steps can read `steps.<condition>.output.matched`, which is `true` or `false`.

## Condition or trigger filter?

A trigger filter stops an event before a run starts, so it costs nothing. A Condition runs inside a run and can read the results of earlier steps. See the comparison in [Trigger filters](https://docs.workflow-suite.app/trigger-filters.md).

## Deleting a condition

When you delete a condition that has steps on both branches, the Then branch takes its place, and the steps that only the Otherwise branch leads to are deleted with it. The editor tells you before it happens, and **Undo** brings everything back.
