Segment Conditions
When building segments, you can use five types of conditions to define your audience. Each condition type lets you filter customers based on different aspects of their data and behavior.

Available conditions
Here's a list of all available conditions:
Base conditions
| Condition | Description |
|---|---|
| User property | Include or exclude users based on their user properties, such as id, email, first_name, created_at or active_user. |
| User Tags | Include or exclude users based on the custom tags they have assigned. |
| Event | Include or exclude users based on actions they have taken (e.g. purchased_product, viewed_item) |
| Segment | Include or exclude users from other segments |
| Message | Include or exclude users based on their interaction with messages sent via Vero (e.g. SMS deliveries or Email opens and clicks) |
User property condition

The user property condition allows you to segment your audience based on specific attributes stored in customer profiles. This is one of the most fundamental and commonly used conditions, enabling you to target customers by demographics, subscription status, account details, or any custom properties you've tracked. Here are the available options when using this condition:
Property
Select a user property to target customers based on specific values in their profile, such as id, email, first_name, created_at, or any custom properties you've tracked.
Operators
Choose an operator to define how the property value should be evaluated. The table below describes each available operator and when to use it:
| Operator | Description | Notes |
|---|---|---|
| is set | Property has a value (is not null or empty string) |
Use this to find profiles where the property exists and has any value |
| is not set | Property has no value (is null or empty string) |
Use this to find profiles missing this property or where it was never tracked |
| is equal to | Property value matches the specified value exactly | Case-sensitive. Returns false if the property is empty (null) |
| is not equal to | Property value does not match the specified value | Returns true if the property is empty (null) |
| contains | Property value includes the specified text anywhere within it | Case-sensitive. Returns false if the property is empty (null) or if the property is not a string |
| does not contain | Property value does not include the specified text | Returns true if the property is an empty string and false if the property is null or if the property is not a string |
| is greater than | Property value is larger than the specified value | Works with numbers and dates |
| is greater than or equal to | Property value is larger than or equal to the specified value | Works with numbers and dates |
| is less than | Property value is smaller than the specified value | Works with numbers and dates |
| is less than or equal to | Property value is smaller than or equal to the specified value | Works with numbers and dates |
Value
Enter the specific value to compare against the selected property. The format depends on the property type:
- Text properties – Enter plain text (e.g., "Premium" for a plan name)
- Number properties – Enter a numeric value (e.g. "500" for lifetime value)
- Date properties – Use ISO 8601 format (e.g.,
YYYY-MM-DDfor dates like 2025-11-11,YYYY-MM-DDTHH:MM:SSfor date-times like 2025-11-11T20:58:00, orYYYY-MM-DDTHH:MM:SSZfor UTC date-times like 2025-11-11T09:58:00Z). This ensures consistency when comparing dates across different timezones and systems. - Boolean properties – Enter "true" or "false"
User tags condition

The user tags condition allows you to segment your audience based on custom tags assigned to their profiles.
Operators
Choose an operator to define whether user profiles should be included or excluded based on the presence of specific tags:
| Operator | Description | Notes |
|---|---|---|
| has | Profile has the specified tag assigned | Use this to include profiles that have been tagged with a specific label |
| does not have | Profile does not have the specified tag assigned | Use this to exclude profiles that have been tagged with a specific label |
Tag name
Select an existing tag from your account. The dropdown will show all tags currently assigned to user profiles in your workspace. You can only select tags that already exist—to use new tags, first assign them to profiles through your integration or the Vero interface.
Example use cases
- Target customers interested in specific product categories by including profiles tagged with "shoes", "skirts", or "trousers"
- Create a segment of customers who attended specific events by including profiles tagged with "webinar_2024" or "conference_attendee"
Event condition

The event condition allows you to segment your audience based on actions they've taken in your application. This enables you to target customers based on their behavior, such as purchases, sign-ups, or feature usage. Here are the available options when using this condition:
Event name
Select the event you want to track from the dropdown list. This shows all events that have been tracked to Vero from your integration.
Learn more about tracking events in Vero
Operators
Choose an operator to define whether profiles should be included or excluded based on whether they performed the selected event:
| Operator | Description | Notes |
|---|---|---|
| has been performed | Profile has performed the selected event | Use this to include profiles who have taken a specific action |
| has not been performed | Profile has not performed the selected event | Use this to include profiles who have never tracked a specific action |
More Filters
By default, the event condition checks if the event has been tracked "ever" (at any point in time).
Click the More Filters button to add more detailed filters for counting occurrences, specifying timeframes, or filtering by event properties.
Count filter
Define how many times the event must have occurred. Select from the following operators and specify a numeric value:
| Operator | Description |
|---|---|
| exactly | Event occurred exactly x times |
| not equal to | Event occurred any number of times except x |
| greater than | Event occurred more than x times |
| less than | Event occurred fewer than x times |
| greater than or equal to | Event occurred x or more times |
| less than or equal to | Event occurred x or fewer times |
Time filter
Define the time period for evaluating the event:
| Option | Description | | ever | Check the profile's entire event history with no time limit (this is the default when More Filters hasn't been clicked) | | in the last | Check only within a specific recent time period (requires setting a time value in days) |
Property filter
Filter events based on specific properties that were tracked with the event. To add a property filter:
- Click More Filters
- Click Add Property Filter below the count and time filters
- Select an event property from the dropdown (this shows all properties that have been tracked on any event—you may need to check which properties exist on the selected event before choosing)
- Choose an operator (same operators as user property condition)
- Enter the value to compare against (see user property condition for value format details)
When a property filter is active, the count and time filters are replaced by the property filter interface. Click Remove Property Filter to return to the count and time filters.
Note: You cannot currently use both property filters and count/time filters together, but this functionality is coming in a future update.
Example use cases
- Find customers who have purchased more than once:
has been performed "purchased_product"with count filter "greater than 1 times" - Target users who viewed a specific product recently:
has been performed "viewed_item"with property filterproduct_id = "12345"and time filter "in the last 7 days" - Create a segment of customers who haven't made a purchase yet:
has not been performed "purchased_product"with time filter "ever"
Segment condition

The segment condition allows you to build audiences by including or excluding profiles from other segments you've already created. This is useful for combining existing logic without having to recreate conditions. Here are the available options when using this condition:
Segment
Select an existing segment to reference. You can choose any segment in your account except system segments and the current segment you're editing.
Operators
Choose an operator to define whether profiles should be included or excluded based on the selected segment:
| Operator | Description | Notes |
|---|---|---|
| is in segment | Profile is currently a member of the selected segment | Use this to include profiles that match another segment's criteria |
| is not in segment | Profile is not currently a member of the selected segment | Use this to exclude profiles that match another segment's criteria |
Example use cases
- Create a "VIP customers in North America" segment by combining your "VIP customers" segment with a location condition
- Build a "Engaged non-purchasers" segment by including your "Highly engaged" segment while excluding your "Recent purchasers" segment
Note: Changes to referenced segments will affect any segments that include them. If you delete or significantly modify a segment, check its usage before making changes.
Message

The message condition allows you to segment your audience based on how they've interacted with messages sent through Vero. This enables you to target customers based on their engagement with your email, SMS, or push campaigns. Here are the available options when using this condition:
Message Title
Select the message you want to track. The dropdown organizes messages by campaign type and shows the channel (email, SMS, or push) for each. A "Recently selected" section at the top provides quick access to messages you've used before.
Operators
Choose an operator to define how profiles should be evaluated based on their interaction with the selected message:
| Operator | Description | Notes |
|---|---|---|
| has been sent | Message was sent to the profile | Use this to find profiles who were sent a specific message, regardless of delivery status |
| has not been sent | Message was not sent to the profile | Use this to find profiles who were not targeted or excluded from a specific message |
| has been delivered | Message was delivered to the profile | Use this to find profiles where the message reached their inbox (for email) or device (for SMS/push) |
| has not been delivered | Message was not delivered | Use this to find profiles where delivery failed (e.g., bounced emails or undeliverable SMS) |
| has opened | Profile opened the message | Available for email and push messages. Use this to find engaged customers |
| has not opened | Profile did not open the message | Use this to find customers who received but didn't engage with a message |
| has clicked | Profile clicked a link in the message | Available for email and SMS messages. Use this to find highly engaged customers who took action |
| has not clicked | Profile did not click any links in the message | Use this to find customers who opened but didn't click, or didn't engage at all |
Time filter
Define the time period for evaluating message interactions:
- ever – Check the profile's entire message history with no time limit (note: this may take longer to calculate as it checks all historical data)
- in the last – Check only within a specific recent time period (requires setting a time value).
Recommended: Use the "in the last" option with a recent time period. This improves segment calculation speed and creates more targeted, timely audiences.
Time value
When using "in the last" as your time filter, specify the number of days to look back (e.g., 1, 7, 30, 90). This lets you create time-sensitive segments based on recent engagement patterns.
Example use cases
- Re-engage customers who were sent your welcome series but never opened it:
has been sent "Welcome Email 1"ANDhas not opened "Welcome Email 1"with time filter "ever" - Create a highly engaged segment of customers who clicked your last promotion:
has clicked "Summer Sale 2025"with time filter "in the last 30 days" - Build a win-back campaign for customers who haven't engaged recently:
has not openedany message with time filter "in the last 90 days" - Identify customers with delivery issues:
has not been deliveredwith time filter "in the last 7 days"
Using AND and OR logic
- AND – All conditions in the group must be true. Use this to narrow your audience.
- Example:
Country = "United States"ANDLifetime value > 500finds high-value US customers only.
- Example:
- OR – Any condition in the group can be true. Use this to broaden your audience.
- Example:
Country = "United States"ORCountry = "Canada"finds customers in either country.
- Example:
When you have conditions in both groups, for a profile to enter the segment, they must meet all the conditions in the AND group and at least one of the conditions in the OR group.