How segments work
UpdatedOverview
Here’s an overview of segments in Customer.io:
And here’s a more interactive look at creating a manual segment and data-driven segment:
Segments are named groups of people who share characteristics or behaviors. A Segment can have many people and a person can belong to many segments.
You can use segments as recipient lists, campaign triggers, filters, conversion criteria and more. Whenever you need to reference a subset of the people in your workspace, you’ll use a segment.
For example, here is the criteria for one of the pre-made segments called, “Have not logged in recently”.


If your integration sends us page viewEvents that track when people view pages on your website. You can track page view events using our JavaScript snippet or by sending requests directly to our API. events for people who have logged into your site, this segment contains people who have been in your workspace for at least 30 days but have not logged in recently. We’ll know they haven’t logged in because they haven’t logged in and viewed any pages in the past month. You can use a segment like this as a campaign trigger to send messages that incentivize people to return to your site!
Types of segments
You can create two different kinds of segments in Customer.io. The way people enter and exit your segments depends on the type of segment you create.
Data-driven Segments: People enter and exit data-driven segments automatically when they match and stop matching the conditions that you set for the segment. These segments help you take action based on your audience’s real-time actions. You should use data-driven segments when you want Customer.io to move people in and out of your segments automatically based on the data you send us for each person.
Leverage AI to generate segments faster
While you can create data-driven segments manually, you can also describe your segment or generate suggested segments to get up and running quicker or find missing conditions to improve your membership.
Manual Segments: People enter and exit manual segments when you explicitly add them to, or remove them from, the segment. You might take advantage of manual segments when you want to move people in and out of segments based on business logic outside of Customer.io. You can add people to manual segments through a CSV upload, as part of a campaign workflow, or using our API. You can remove people from manual segments using the “Clear Segment” option, a campaign workflow action, or using our API.
When to create a data-driven vs manual segment
Customer.io shines best when you have an active data integration between your system and ours. This allows you to utilize attributes and behaviors of your end-users to set up automated messaging from our app.
That is the power of Data-driven Segments, and for the most part this is the type of Segment you should be using.
Manual Segments are available in instances where you need more hands-on control of the Segment, you are expecting limited changes or a data integration is not available to you.
How we calculate segment membership
We calculate segment membership when someone matches the segment conditions. For instance, let’s say you created a segment “Signed Up” with the condition “created_at is a timestamp.” After someone gains a created_at timestamp, they will become a member of “Signed Up.”
The opposite is true, as well. That is, we calculate when someone is NOT in a segment when they do not meet the segment conditions. For instance, if you create a segment “Signed Up” with the condition “created_at is a timestamp” then create a person without a created_at timestamp, they will not belong to “Signed Up.” This means, we calculate “not in” segment membership when someone has left a segment AND when someone has never belonged to a segment.
Phrased another way, a person can match trigger conditions, filter conditions, and wait until conditions based on “NOT IN: segment” criteria without having belonged to that segment in the past. So if you want someone to enter a campaign when they used to belong to a segment but no longer do, you’ll have to use more than “not in” segment conditions.
The Segments page
Go to the Segments page to manage your segments.
By default, you’ll see a list of active segments, which means segments that you haven’t manually archived. You can see where and if your segments are in use under Usage.


Filter for segments
On the Segments page, you can use the search box to filter for text in the name or description of your segment or the id.
Click Filters to filter by other data:
- Segment type: data-driven vs manual
- Usage: where the segment is used
- Object type: if the segment conditions reference custom objects
- Tag: if the segment uses one or more tags
View archived segments
You can archive a segment instead of deleting it to keep a history of the segment or just to make sure that nobody uses it temporarily.
On the Segments page, click Archived segments. Then you can filter to find specific ones.
View an individual segment
From Segments, click a segment to manage its settings:
- Overview: For data-driven segments, you’ll see a collapsed view of the Segment’s conditions. For manual segments, you’ll see a list of CSV imports (if any). For all segments, you’ll see how many people are in the segment and a truncated view from the other tabs.
- People: Displays a count of segment membership over time
- Usage: Links to campaigns, newsletters, and other assets that use the segment. Alternately, you can create assets based on the segment from here.
- Ad Audiences A list of Ad Audiences that sync with this segment.
Tag segments
You can find segments by tag. Tags provide a way of grouping not just segments, but campaigns, broadcasts, and transactional messages together. Create, assign, edit, and delete as many tags as you need in your workspace.
From the Segments page, click to open a segment. Edit the name to add or remove tags.
Export a segment
When a segment has one or more members, you can export a CSV file containing a list of the people in the segment.
- Go to Segments.
- Click the segment you want to export a list from.
- Click Export and choose Export People List or Export Change in Membership.
You can find and download the CSV within Data & Integrations > Exports.
Archive or unarchive a segment
You can archive a segment instead of deleting it to keep a history of the segment or just to make sure that nobody uses it temporarily.
You cannot archive a segment that is currently in use. Check your segment’s Usage tab to see if it’s still used in your workspace.
Then from your segment’s page, you can click and select Archive Segment.
To unarchive a segment, find the segment in Archived segments. Then click and select Unarchive Segment.
You can also archive or unarchive multiple segments from the Segments page by checking the box next to each segment then clicking Archive or Unarchive.
Troubleshooting segments
These are some common issues with segments, and tips to help you solve them.
My attribute value is a collection. How do I create a Segment based on an item in that collection?
Attribute values in Customer.io are only simple strings. For convenience, we do, however, make them available in message templates as JSON objects (if it is valid JSON) or as arrays (if it is a valid array) but for segmentation purposes, we do not currently distinguish them as being different data types such as arrays or dictionaries, etc.
Learn more about editing live campaigns. Deleting a Segment will NOT delete the members of that Segment. Try recreating the Segment and then viewing the People who are in the Segment by clicking on the link in the People section of the Segment’s detail page where it says, “This segment contains # people”. You will be able to delete the People from there. Segment Conditions do not currently support the full set of regular expression rules. Try limiting your use to the few special operators we allow for string comparison ( People must exist in your account before they can be added to a Manual Segment. Try adding that person to Customer.io and then you will be able to add them to a Manual Segment.I edited my Segment conditions but People who match the new conditions did not enter a campaign that is triggered by my Segment.
I deleted a Segment but all the People are still in my account.
I am trying to match values that contain a
*, |, or + but I am not getting the results I expect.*, | and + are special operators that allow for simple, regex-like matching. When searching specifically for strings containing these characters, try placing a backslash (\) before the special operators that you want to find so that they will not be interpreted as regex operators.I am using regular expressions in my Segment Condition but it’s not working.
*, | and +).I cannot add a Person to my Manual Segment because they do not exist in my account.
