Custom segments

Create dynamic lists using custom criteria

Zoltan Wagner avatar
Written by Zoltan Wagner
Updated over a week ago

Segments can include multiple conditions when you need to send targeted and personalized emails to contacts that aren't part of a single tag or a single subscription. Segments are part of your list management options.

Duplicates are removed

The contact list matched by segments is de-duped automatically by email address so when you send a message to contacts they only receive it once.

Segments are dynamic

Contacts that match conditions of your custom segment are calculated real-time so the segment doesn't need to be refreshed after new contacts are added to the database or contact statuses change.

Examples of using segments

Segments can accommodate a variety of use cases, here are some examples:

  • Exclusion lists: Exclude contacts that match certain criteria. For example you want to send an email to contacts who are on list A but not on list B.

  • Combining multiple lists: Combine multiple subscriptions or tags in order to send a single email to contacts across multiple lists. This helps to reduce the number of emails sent to contacts. Contacts are de-duped so they only receive the email once.

  • Identify (dis)engaged contacts: Find contacts who opened, clicked or received (or didn't open, click or receive) emails from you in the past X days in order to send a re-engagement email.

  • Custom segment: Identify contacts based on custom criteria such a date added, custom fields, region, etc.

Where and how to use segments?

You can send email messages to contacts matched by a custom segment. Just select the segment's name when you're choosing the target list for your email campaign.

How to create a custom segment

From the segments page click the "Create segment" button. On the next page, enter a name for this segment and proceed to add conditions to be used for this segment.

Adding conditions

  1. Select a field from the "Add new condition" dropdown selector

  2. Choose a condition type

  3. Select a value that should be matched for that field.

Repeat these steps for additional conditions.

⚠️ IMPORTANT: "Match all" or "match any" conditions

It's critical that the All conditions true vs. Any conditions true true setting is set correctly.

Known inaccuracies related to email opens

When you segment your list for campaign activity using "opened" or "didn't open" as a condition the results may be inaccurate depending on how many contacts on your list use Apple Mail with the Apple Mail Privacy Protection enabled. Read more.

Conversely, no opens are tracked if images are blocked in your contacts' email client. This also affects the accuracy of segments using campaign activity based on opens.

Conditions limit

The number of conditions in a custom segment is limited to contain a maximum of:

  • 10 tags

  • 5 tag folders

  • 10 subscriptions

  • 5 subscription folders

  • 3 campaign status (email opens clicks etc...)

  • 1 aggregate campaign activity

  • 10 custom fields

  • 2 custom segments (no segments containing other custom segments)

Using custom fields in segments

Custom fields can store text or numeric values and you can filter by both using segments using the conditions below:

Equals, doesn't equal

Case insensitive exact match for text or numeric fields

Example: Equals = M13 Spanish

Wildcard *, not wildcard *

Partial match using an asterisk acting as the wildcard

Example using the following dataset:

Sample dataset

M13 Spanish

F70 Spanish

M13 Spanish (30)

M13 English

The following values will be matched using wildcard matching:

Wildcard condition






M13 Spanish, F70 Spanish


M13 Spanish, F70 Spanish, M13 Spanish (30)

Between, not between

Numeric fields only

Syntax: two numbers connected with the word and.

Example: Between = 3 and 19 or Between 2.83 and 113.24

Greater than, less than

Numeric fields only

Syntax: Use a single number

Example: Less than = 5343 or Greater than = 5

Regex, not regex

For technical users. Evaluates the condition using the pattern matching syntax of a regular expression.

Did this answer your question?