Unlike traditional subscriber lists, segments are defined by a set of conditions. Klaviyo's segment builder allows you to create dynamic cross-sections of your contacts that will update in real-time. A few examples of useful segments you may want to build:
- A segment of customers that purchase a new product before that product even goes to market, so you can watch the segment grow after launch
- Isolate your inactive subscribers by finding those who have been on your list for at least 6 months but have never opened or clicked an email
- Build a segment of your VIP customers, which includes everyone who has purchased at least X number of times before or have spent over Y amount of money
- Analyze the lifetime value (LTV) of your customer-base by creating segments that capture different ranges of total spending
Create a Segment
Navigate to the Lists & Segments tab in your account and click Create List / Segment in the upper right corner of the window. Next, choose Create a Segment on the creation page.
After clicking Create a Segment, you'll be taken to the segment builder.
Condition: What Someone Has/Has Not Done
This condition allows you to segment profiles based on their activity. If you explore the Metrics tab of your account, you will see all of the activity Klaviyo tracks through your different integrations. All of these metrics are available for segmentation using the What someone has done (or not done) condition.
For example, you can find all customers that have made at least two purchases:
As you explore this condition, you can adjust and filter the following aspects of the metric you select:
- Frequency: After selecting an activity, you can segment based on how often (or not often) people have done the activity. The allowed operators are:
- at least once
- zero times
- equals (is exactly the number specified)
- doesn't equal (is not exactly the number specified)
- is at least (greater than or equals)
- is greater than
- is less than
- is at most (less than or equals)
- Timeframe: After choosing a frequency, you will also need to select a timeframe over which we'll count the number of events for each person. The options here are:
- over all time
- in the last (within the last X days, weeks or months)
- between (between two relative dates i.e. between 30 and 90 days ago)
- before (before a specific date)
- after (after a specific date)
- between dates (between two specific dates)
If you click the Add Filter button, you can further hone which types of events are counted. All metrics have a unique set of properties associated with them, and you can leverage these properties to be more specific about who you capture in your segment.
For example, if you have an Ordered Product metric that represents each time some purchases a product, you might want to filter on the "Name" property to find people who bought a specific product.
Condition: Properties about Someone
This condition allows you to filter based on profile properties, i.e. the information you've collected on your contacts in Klaviyo. Out-of-the-box, Klaviyo you can use the following profile properties to build a segment:
- First Active
- First Name
- Initial Source
- Last Active
- Last Name
- State / Region
- Unique ID
As you collect additional information about your contacts (i.e. custom properties), you will be able to use this information to build segments. For example, if you collect data on "Gender" from your newsletters subscribers, you will be able to segment based on gender.
After selecting a profile property for segmentation, you will also be able to select an operator. The options available will depend on the data type of the property. Below are the operators for string properties:
- doesn't equal
- contains (property value contains the string specified)
- doesn't contain (property value does not contain the string specified)
- is in (property value is in a set of values)
- is not in (property value is not in a set of values)
- starts with (property value starts with the string specified)
- doesn't start with
- ends with (property value ends with the string specified)
- doesn't end with
- is set (property exists for the profile)
- is not set (property does not exist for the profile)
After choosing a property and an operator, the final piece is the dimension value. When you click, this value field will populate with a drop-down menu that features all available values given the property, operator, and data type selected.
If the property you select contains values that are numbers or dates, make sure to adjust the data type appropriately. Doing so will reveal type-specific operators and this will impact the values available for segmentation.
Below are the data types available:
- String: string value of plain text
- Number: integer value
- Date: datetime value
- Boolean: true or false value
- List: array of values, e.g. ["Offer1", "Offer2"]
Condition: If Someone is In or Not In a List
This condition can be used to segment if someone is a member of (or not a member of) a specific list. This is an important condition to use if you are sending newsletter emails to a segment, since you'll always want to make sure these recipients subscribed to your newsletter list before emailing them. Here are a few other key use cases for this condition:
- If you want to combine two or more lists, you can configure a segment to include everyone in these lists using this condition once for each list; make sure to separate each condition with an "OR" connector
- If you want to create a segment of a specific list that captures a cross-section of that list; for example, the following segment will curate everyone in your newsletter List from the United States:
When segmenting based on whether or not someone is in a list, you can filter based on when that person was added to the list:
- in the last (within the last X days, weeks or months)
- between (two relative dates)
- before (a specific date)
- after (a specific date)
- between dates (two specific dates)
Condition: If Someone is or is Not Suppressed
Segments do not automatically exclude profiles that are suppressed (either because the users unsubscribed or emails to them bounced). If you'd like an accurate number of the emailable people your segment is meant to capture, adding this segment condition is useful. Make sure to always add this condition using the AND connector after the previously added condition. While suppressed profiles will be skipped if you try to send an email to them, this condition is most useful when trying to get an accurate head-count.
Using AND vs. OR to Add Conditions
Using the "OR" connector between a sequence of segment conditions will make the segment more inclusive. We will check each condition in the sequence individually. For example, if Joe meets one condition in the sequence but does not meet another, Joe will still be included in the segment.
In the following example, anyone who is in our newsletter list OR anyone that has placed an order at least once before will be included. So, this segment will capture everyone who is in our newsletter list as well as anyone who has ever placed an order, even if there is no overlap between them:
Using the AND connector between conditions will make a flow filter more exclusive. We will check each condition separately AND individually, but each condition must evaluate to true in order for someone to be included. If Joe meets one condition but doesn't meet another, Joe will be excluded from your segment.
In the following example, only those that are in our newsletter list AND also have placed an order at least once before will be included. So, if someone is in our newsletter list but hasn't placed an order, they will not be included.