Understanding how segment conditions evaluate null or empty values
You will learn
Learn about segmentation and properties that aren’t set or have no values in Klaviyo. These changes were implemented in April 2023.
In addition to the changes outlined below, all segmentation with dates now uses the UTC timezone. Learn about the changes to segmenting with dates.
Key terms
- Property not set: A property that doesn’t exist on a profile
- Property with no value: A property that exists on a profile but has a null value or an empty text value
For segmentation, properties with null values or empty text values are treated as not set. A value of false or 0 is still a value; it does not mean the property is missing.
Properties that aren’t set and booleans
In boolean conditions (i.e., true/false conditions), properties that don’t exist are no longer considered in the evaluation.
- Old system: Profiles where property does not exist used to be evaluated as False.
- New system: Profiles where property does not exist are now excluded from evaluation.
Consider the condition Properties about someone > VIP > is false. A Klaviyo account contains the following profiles:
Profiles | Under the old system: | Under the new system: |
100 profiles where VIP = true | 🚫 Excluded from segment | 🚫 Excluded from segment |
50 profiles where VIP = false | ✅ Included in segment | ✅ Included in segment |
25 profiles where VIP property is not set | ✅ Included in segment | 🚫 Excluded from segment |
Before the change, this segment contained 75 profiles. After the change, it includes 50 profiles.
Why this is better
The new system more accurately evaluates only True or False conditions. To also include profiles where that property is not set:
- Add an OR condition: Properties about someone > [profile property].
- In this additional condition, set Type to Text, then select is not set. Keep the original condition’s Type set to Boolean.
- Save your changes to apply the updated segment conditions.
Properties that aren’t set and text conditions
Historically, when evaluating profile properties that don’t exist for text conditions, these values have been treated as if they contain the text “None.” Now, these values are excluded from consideration in text conditions.
- Old system: Text conditions that searched for strings like “N,” “No,” and “None” included properties that aren’t set.
- New system: Properties that don’t exist on the profile are now excluded from evaluation.
Consider the condition Properties about someone > Do you eat tofu > contains the text > “No”. A Klaviyo account contains the following profiles:
Profiles | Under the old system: | Under the new system: |
50 profiles where Do you eat tofu = Yes | 🚫 Excluded from segment | 🚫 Excluded from segment |
25 profiles where Do you eat tofu = No | ✅ Included in segment | ✅ Included in segment |
15 profiles where the property Do you eat tofu is not set | ✅ Included in segment | 🚫 Excluded from segment |
Before the change, this segment contained 40 profiles. It would count the 25 who answered “No,” and the 15 profiles where that value was not set, because it was treating their empty values as “None.” After the change, it includes 25 profiles.
Why this is better
The new system does not treat missing property values as the text “None” when evaluating text conditions. This means that searches for “N,” “No,” “Non,” and “None” no longer match profiles just because the property is missing.
Properties that aren’t set and negative conditions
With negative conditions such as doesn't equal or doesn't contain the text, profiles where the property is not set do not match that condition.
- Old system: Properties that aren’t set used to be included in segments with negative conditions.
- New system: Properties that aren’t set are now excluded from evaluation.
Consider the condition Properties about someone > Favorite color > doesn’t equal > red. A Klaviyo account contains the following profiles:
Profiles | Under the old system: | Under the new system: |
60 profiles where Favorite color = red | 🚫 Excluded from segment | 🚫 Excluded from segment |
45 profiles where Favorite color = blue | ✅ Included in segment | ✅ Included in segment |
100 profiles where the property Favorite color is not set | ✅ Included in segment | 🚫 Excluded from segment |
Before the change, this segment contained 145 profiles. After the change, it includes 45 profiles.
Why this is better
The previous system was ambiguous, and it was unclear why certain profiles were being included when they did not have a profile property.
The new system makes it explicit that only profiles where the property is set are included. If you want to include profiles which do not have the profile property set, you can do so by adding OR Properties about someone > [profile property] > is not set.
Countries that aren't set and the "Is or is not within the EU (GDPR)" criteria
When you use If someone is or is not within the EU (GDPR) and select Location is not within European Union or Location is not within United States, profiles where the Country property is not set do not match that condition.
- Old system: Profiles where property does not exist used to be included in this segment.
- New system: Profiles where property does not exist are now excluded from evaluation.
Consider the condition If someone is or is not within the EU (GDPR) > Location is not > within > European Union. A Klaviyo account contains the following profiles:
Profiles | Under the old system: | Under the new system: |
50 profiles where Country = USA | ✅ Included in segment | ✅ Included in segment |
40 profiles where Country = Spain | 🚫 Excluded from segment | 🚫 Excluded from segment |
20 profiles where Country = France | 🚫 Excluded from segment | 🚫 Excluded from segment |
100 profiles where the property Country is not set | ✅ Included in segment | 🚫 Excluded from segment |
Before the change, this segment contained 150 profiles. After the change, it includes 50 profiles.
Why this is better
The new system more accurately evaluates only profiles with a known country. You have the option to explicitly include profiles without a known country, if desired, by adding the condition OR Properties about someone > Country > is not set.