---
title: "Trigger filters - Workflow Suite"
description: "Only start a workflow for the events you care about. Events a trigger filter rejects start nothing and do not count against your plan."
canonical: "https://docs.workflow-suite.app/trigger-filters"
---

# Trigger filters

A trigger filter is a set of rules on the trigger itself. An event that does not pass starts nothing: no run, nothing in the run history, and nothing counted against your plan. That makes the filter the right place for every check that only needs the event.

## Add a filter

1. Select the trigger on the canvas.
2. Tick **Only start for some events**.
3. Under **Continue when**, choose **All rules match** or **At least one rule matches**.
4. For each rule, choose the **Field** with the variable picker, the **Comparison** and, for most comparisons, a **Value**.
5. Select **Add rule** for more. A filter holds up to 20 rules.

## Comparisons

The **Comparison** list has two groups.

**Current value** compares a field of the event:

| Comparison | Notes |
| --- | --- |
| is equal to, is not equal to | Text, numbers, true and false |
| is greater than, is at least, is less than, is at most | Numbers, also when Shopify sends them as text such as `"49.90"`, and dates |
| contains, does not contain | Part of a text, or one entry of a list |
| starts with, ends with | Text |
| is one of | Several values, separated by commas |
| has a value, is empty | Need no value |

**Before and after** compares the change itself: changed, changed to, changed from, increased, decreased. Here you type the **Field that changed**, for example `price` or `tags`, instead of picking a path. These rules need a change trigger. See [Change triggers with before and after values](https://docs.workflow-suite.app/change-triggers.md).

## Examples

| Goal | Trigger | Rule |
| --- | --- | --- |
| Only big orders | Order created | `event.payload.total_price` is at least `500` |
| Only one vendor | Product created | `event.payload.vendor` is equal to `Acme` |
| Low stock | Inventory quantity changed | `event.payload.available` is at most `5` |
| Price drops only | Product variant price changed | field `price` decreased |
| Went live | Product status changed | field `status` changed to `active` |
| One custom storefront event | Custom storefront event | `event.payload.name` is equal to `wishlist_added` |

## Filter or Condition step?

| | Trigger filter | Condition step |
| --- | --- | --- |
| Reads | The event only | The event, variables and the results of earlier steps |
| When it says no | Nothing starts, nothing is counted | The run continues on the Otherwise branch, or ends as Completed |
| Shows in the run history | No | Yes |

Use the filter for everything the event can answer. Use a [Conditions](https://docs.workflow-suite.app/conditions.md) step when you first need to look something up, or when both outcomes should do something.

> [!NOTE]
> **Nothing in the run history?**
> An event the filter rejects leaves no trace, and the **Test** button does not apply the filter: a test always runs the steps. So if a workflow does not start when you expect it to, check the rules against the values of a real event. Shopify sends many numbers as text, tags as one text separated by commas on some events and as a list on others, and upper and lower case matter. The variable picker shows a sample value next to every field. To watch a filter at work, move its rules into a Condition step for a while: the run history then shows each decision.

## Related

- [Choosing a trigger](https://docs.workflow-suite.app/choosing-a-trigger.md)
- [Plans, runs and extra runs](https://docs.workflow-suite.app/plans-runs-and-extra-runs.md)
