Skip to main content

Understanding "Match All" vs. "Match Any" in Segments

Learn the difference between "Match All" (AND) and "Match Any" (OR) logic in the segment builder. Includes practical examples and a cheat sheet to help you combine rules without the confusion.

Written by Marcus Warren
Updated yesterday

Building segments is one of the most powerful ways to target your audience, but choosing between "Match All" and "Match Any" can sometimes feel like trying to solve a puzzle—especially when you are trying to exclude certain contacts.

The Basics: Think Like a Bouncer

When you build a segment, you are basically setting up a bouncer at the door of an exclusive event (your email campaign). The conditions you set are the rules the bouncer follows.

  • Match All (This AND That): The bouncer is extremely strict. For a contact to get into your segment, they must meet every single rule on your list. Use this when you want to narrow down your list to a very specific group.

  • Match Any (This OR That): The bouncer is much more relaxed. As long as a contact meets just one of the rules on your list, they are allowed in. Use this when you want to widen your net and combine different groups.

The Tricky Part: Excluding Contacts (Negative Rules)

Things get confusing when you start using negative rules, like "Does not equal". Let's look at the most common scenario that trips people up.

The Goal: You want to send an email to your whole database, except contacts who have TAG 1 and contacts who have TAG 2.

You set up your two rules:

  1. Tag does not equal TAG 1

  2. Tag does not equal TAG 2

Which setting do you choose? Because you want to exclude people who have Tag 1 OR Tag 2, it is incredibly tempting to choose "Match Any". But this is a trap!

Here is why "Match Any" fails: Imagine a contact named Sarah who has TAG 1. The bouncer looks at Sarah and asks:

  • Does Sarah not have TAG 1? (No, she has it).

  • Does Sarah not have TAG 2? (Yes, she doesn't have Tag 2!).

Because you chose "Match Any," the bouncer only needs one "Yes" to let her in. Sarah gets added to your segment, even though you wanted to exclude her!

The Solution: Use "Match All"

When you want to exclude multiple tags, groups, or fields, always use "Match All".

You want the bouncer to be strict: “You must NOT have Tag 1, AND you must also NOT have Tag 2.” Only contacts who lack both tags will make it onto your final list.


Your Quick-Reference Cheat Sheet

Still unsure which setting to use? Find the scenario below that matches your goal!

Your Goal

Rule 1

Rule 2

The Setting to Use

Why it works

Combine two groups


("I want to email contacts in Toronto and contacts in Vancouver")

City equals Toronto

City equals Vancouver

Match Any

You are casting a wide net. If they live in either city, they are in.

Zero in on a specific group


("I only want to email VIP contacts who live in Toronto")

Tag equals VIP

City equals Toronto

Match All

You are narrowing down. They must meet both requirements to get the email.

Exclude multiple groups


("I want to email everyone except contacts in Toronto or Vancouver")

City does not equal Toronto

City does not equal Vancouver

Match All

To be successfully excluded, the contact must pass both strict negative checks.

Find people missing info


("I want to find contacts who don't have a first name or a last name")

First Name is empty

Last Name is empty

Match Any

As long as they are missing at least one piece of information, you want them on this list.

💡 Pro-Tip for Complex Segments

If you have a very complex list you are trying to build (for example, you want to "Match Any" for cities, but "Match All" for exclusions), Envoke allows you to use segments inside of other segments.

You can create a "Match Any" segment to gather all your cities together, and then use that segment as a single condition inside a larger "Match All" list!

Did this answer your question?