Iterable's Segmentation tool helps you identify groups of users in your audience with similar interests or behavior. It's a great way to create highly targeted cohorts, so you can deliver the most relevant messages to each audience member.
In this article
Creating a segmentation query
To find groups of similar users, you'll need to set up a segmentation query that searches for shared attributes or event histories among your users. Here's how to do that:
Go to Audience > Segmentation.
-
Select how many criteria users must meet in order to qualify for the segment you're interested in:
-
All
(default) Any
None
-
-
Select the attributes that make users eligible for the cohort. You can add multiple requirements for user or event attributes within a group of search criteria. If you add multiple requirements within a group, the search operator you select at the beginning of the group (
All
,Any
, orNone
) determines which operator is selected between subsequent groups. There are three possible configurations:-
All
(default selection) =Must Have
,And
-
Any
=Must Have
,Or
-
None
=Can't Have
,Nor
TIP
It's possible to search for users using relative dates — time frames that differ for each user based on triggering event data (like the amount of time that has passed since they signed up to receive marketing messages from your brand). For tips on using relative dates in segmentation queries, see Relative Dates.
-
-
Choose a comparator for each user or event data field that's part of your search criteria. Iterable supports eight comparators for the string data type:
Is Set
: A value has been set for the field (the field is not blank).Equals
: The value of the field must exactly match a specified value.Does Not Equal
: The value of the field must not match a specified value.Is One Of
: The value of the field must match one of a specified list of possible values. You can specify a maximum of 100 possible values.Is Not One Of
: The value of the field must not match any of a specified list of possible values. You can specify a maximum of 100 possible values.Starts With
: The value of the field must start with the specified word or phrase.Contains
: The value of the field contains the specified word or phrase.-
Matches Regex
: Compares the value of the field to a regular expression (RegEx) to find every instance that matches the specified pattern.NOTE
Some of these comparators are more efficient than others. In general, we recommend:
Use these Avoid these ✅ Is Set ❌ Starts With ✅ Equals ❌ Contains ✅ Does Not Equal ❌ Matches Regex ✅ Is One Of ✅ Is Not One Of Example:
To search for users whose email addresses match a particular domain, use the
Equals
operator, like this:Email Domain
Equals
domain.com
We don't recommend using the
Contains
operator for this query. (It takes longer to run.)
Keep in mind that searches are case- and formatting-sensitive (a search for a value of
multicity
will yield different results than a search formultiCity
ormulti-city
). For the most accurate segmentation results, be sure to check your search values for correct formatting, capitalization, spelling, and typos. -
(Optional) For more complex queries, click New Group to add one or more additional groups of search criteria. Your selected search operator at the top of the Segmentation page (
All
,Any
, orNone
) determines which operator is selected between groups of search criteria. There are three possible configurations:-
All
(default selection) =Must Have
,And
-
Any
=Must Have
,Or
-
None
=Can't Have
,Nor
IMPORTANT
To help maintain system performance, overly complex queries can't be saved. In the rare circumstance that you receive a warning, don't panic! You can make your query more efficient by grouping conditions where possible.
For example, this query contains 10 conditions to find all zip codes in a certain area:
user.zipCode=80020 OR user.zipCode=80021 ... OR user.zipcode=80029
Since all of the values this query searches for begin with the same four digits ("8002"), you could reduce this query to a single condition by using an asterisk (
*
) to set up a truncated search:user.zipCode starts with 8002*
In the unlikely event that you see this warning and you're unable to reduce your query's complexity, reach out to technical support for help.
-
Click Refresh Results to see all of the users who fit your specified criteria.
-
You can click any email address or user ID in the results to view a specific user's profile.
NOTE
If you set up a query that searches for users who have received a certain campaign (for example:
Email Send
whereCampaign
Equals
(CAMPAIGN NAME)
) and you select multiple campaigns, the results will reflect users who have received at least one of those campaigns (not necessarily all of them).
Saving segmentation results as an Iterable list
Once you have the results of a segmentation query, you can save the group of users as a list for sending or suppressing campaigns. To save the results of a segmentation query as a list:
Click Save List.
Select whether you want to save the results as a static or dynamic list.
Saving the results of a query as a static list
- Enter a name and description for your static list.
- (Optional) If desired, set a maximum list size. For example, if your search results exceed the list size limit of 5 million users, you could enter "5,000,000" to cap the size of the list.
- (Optional) If desired, click Add List to split your search results into more than one list. For example, if your search results exceed the list size limit of 5 million users, you could split the results into two lists, each with a list size of 2,500,000.
- Click Create.
When you're ready to use your list to send or schedule a message, create a campaign and select the name of the list as the audience.
NOTE
When you use the Segmentation tool to create a static list, there is a list
size limit of 5 million users. Alternatively, you can create a list
from the Lists page (size limit 2 GB) or use the POST /api/lists/subscribe
API endpoint.
Saving the results of a query as a dynamic list
- Enter a name and optional description for your list.
- Click Create.
- The list will automatically update over time as new users become eligible for the list and existing users become ineligible.
When you're ready to use your list to send or schedule a message, create a campaign and select the name of the list as the audience.
Exporting a cohort
Sometimes you may want to save a cohort in order to use it outside of Iterable. To do this, you can export the results of your query.
Click Export As.
-
Select whether you want to export the results as a CSV file or a Facebook Custom Audience.
NOTE
To export cohorts as Facebook Custom Audiences, you must have a Facebook Ad account and set up the Facebook integration for your Iterable project on the Integrations > Facebook page.
-
To export a CSV file: Select which fields to include in the exported file, then click Export.
-
To export a Facebook Custom Audience: Select your Facebook Ad account ID, give your audience a name and description, and click Export.
-
Example use cases
Find users with a specific number of events
It can be useful to create segments of users for whom a particular event has occurred a specific number of times. For example, you might want to target customers who have made two purchases or received three emails.
To do this, click Refine Search at the top of a clause:
Then, select how many instances of the event users should have:
All
— The maximum possible number of instancesExactly
— A specific number of instances (for example, 3)Between
— A range of instances (for example, 3-5)
Determine whether a recurring campaign was sent to a specific user
To check whether or not Iterable ever sent a specific recurring campaign to a particular user, set up a query like this:
It's not possible to use Segmentation to determine whether or not a user has ever opened or clicked any email from a recurring campaign. However, you can determine whether or not they've opened or clicked a specific instance of that recurring campaign.
Want to learn more?
For more information about some of the topics in this article, check out this Iterable Academy course. Iterable Academy is open to everyone — you don't need to be an Iterable customer!