Segment filters let you build targeted guest groups based on profile data, reservation history, preferences, and survey responses. You can use segments for marketing campaigns, loyalty programmes, and operational communications.
⚠️ Important: All segments automatically include only active profiles. The system applies Active = 1 to every segment query, so inactive or deactivated profiles (typically from profile merges) are never included.
Access and manage segments
You can view, search, and manage all segments for your property from the Segments page.
Access the segments page
Click Campaign Management Tools.
Click Segments.
Understand the segments list page
The segments list page displays all segments with the following columns.
Column | Description |
Name | The segment name with a toggle icon showing published or unpublished status. |
Global | Shows Yes or No, indicating if the segment is available for use in preference workflows. |
# Contacts | A link showing the number of profiles in the segment. Click to view the contact list. |
ID | The segment's unique numeric identifier. |
Search for a segment
Click Campaign Management Tools, then click Segments.
Use the search filters at the top of the page.
Name – enter the segment name (partial matches are supported).
ID – enter one or more segment IDs separated by commas.
Click Search.
Create and edit a segment
Segments are built using a Details tab for configuration and an optional Filters tab for dynamic criteria.
Create a new segment
Click Campaign Management Tools, then click Segments.
Click New in the upper right corner.
Configure the segment settings in the Details tab.
(Optional) Click the Filters tab to add dynamic filter criteria.
Click Save & Close or Apply.
Segment details tab settings
The Details tab contains the core segment configuration. Name is the only required field.
Name (required)
Enter a descriptive name for the segment.
🤓 Tip: Use clear, descriptive names such as "VIP Guests - $10K+ Lifetime" rather than generic names like "Segment 1".
Alias
An alphanumeric identifier (no spaces) used as a URL-safe reference for the segment. Maximum 25 characters. If left empty, the system auto-generates a unique alias.
Description
A free-text description of the segment's purpose and filter criteria.
🤓 Tip: Document all filter criteria in the description for future reference, especially for complex segments with multiple conditions.
Public segment
When set to Yes (default), the segment is available for use in contact preferences and workflow actions. Set to No to restrict the segment to internal use only.
Available in preference center
When set to Yes, contacts can opt in or out of this segment through the guest preference center portal. Default is No. Use for subscription preferences such as "Special Offers Email List" or "Event Notifications".
Active
When set to Yes (default), the segment is published and active. When set to No, the segment is unpublished and will not be included in automatic segment rebuilds.
🤓 Tip: Unpublish segments that are no longer in use rather than deleting them to preserve historical data.
Send reward email by campaign
When set to Yes, the system will NOT automatically send reward notification emails when contacts are added to this segment. You must create a separate campaign to send the reward email. When set to No (default), reward notification emails are sent automatically when contacts enter the segment (if a reward rule is associated). Use when you want more control over reward email timing and content through a campaign journey.
📌 Note: This setting is only available for profiles with a valid Loyalty Membership ID.
Ignore unsubscribe
⚠️ Warning: When set to Yes, emails will be sent to contacts in this segment even if they have unsubscribed. By enabling this option, you accept responsibility for compliance with email marketing laws and regulations. Use only for transactional or critical operational communications with legal justification.
Email unique
When set to Yes, if multiple profiles share the same email address, only one profile will be included in the segment count and targeting. This prevents sending duplicate emails to the same email address.
🤓 Tip: Always enable Email Unique for segments used in email campaigns to ensure accurate contact counts and prevent duplicate sends.
Reward rule
Select a reward rule to associate with this segment. When a contact enters this segment, they will automatically receive the selected reward (subject to reward rule eligibility). Use for birthday rewards, tier upgrade rewards, or promotional rewards.
📌 Note: This setting is only available for profiles with a valid Loyalty Membership ID.
Edit an existing segment
Click Campaign Management Tools, then click Segments.
Search for and select the segment you want to modify.
Click the segment name to open the edit page.
Make your changes in the Details or Filters tabs.
Click Save & Close or Apply.
📌 Note: Save & Close saves your changes and returns you to the segments list. Apply saves your changes and keeps you in edit mode for continued modifications.
Segment filters
Segment filters use guest and reservation data to define which profiles belong in a segment. Each filter consists of a filter field (the data point to filter on), an operator (how to compare the data), and a value (the specific criteria you're looking for). Filters can be combined using AND or OR logic to create complex segment criteria.
Base filters for email segments
When building segments for email campaigns, always include these base filters to ensure accurate counts of contactable profiles.
Email not empty – ensures profiles have an email address.
Unsubscribed - Email equals No – excludes profiles who have opted out.
Also enable the Email Unique setting on the segment. This ensures that if multiple profiles share the same email address, only one profile is counted and targeted.
📌 Note: Example structure for an email segment: Filter one: Email not empty. AND Filter two: Unsubscribed - Email equals No. AND Filter three: [your targeting criteria]. Settings: Email Unique enabled.
Filter categories
Filters are organised into five categories based on the data they reference.
Contact – guest profile information (name, email, address, loyalty status, consent).
Reservation – booking and stay data (arrival dates, room type, rate code, reservation status).
Hotel – property information.
Preference – guest preferences stored in the CRM.
Survey – survey responses from integrated reputation management systems.
Date mode options
Date and datetime filters support four different entry modes.
Date mode | Description | Example use case |
By Date | Select a specific date. | Find guests with birthday on 15/06/2024. |
By Month | Select a month regardless of year. | Find all guests with birthdays in December. |
By Timeframe | Enter relative dates (±N days/weeks/months/years) or birthday/anniversary offsets. | Send emails seven days before guest birthdays. |
Special Keyword | Use predefined keywords. | Find guests who checked in this week. |
By date mode
Select a specific date using the date picker. Example: Day In equals By Date → 2024-06-15 finds profiles with check-in on 15 June 2024.
By month mode
Select a month (January through December) to match dates in that month regardless of year. Supported operators: equals, not equal. The system uses SQL pattern matching to find all dates falling in the selected month across any year. Example: Birthday equals By Month → December finds all profiles with December birthdays in any year.
By timeframe mode
Enter relative dates that calculate from the current date or from birthday or anniversary dates.
Standard relative dates
+7 days – seven days from today.
-30 days – 30 days ago.
+2 weeks – two weeks from today.
-6 months – six months ago.
+1 years – one year from today.
Birthday and anniversary offsets
birthday – on their birthday this year.
birthday +7 days – seven days after their birthday.
birthday -30 days – 30 days before their birthday.
anniversary +14 days – 14 days after their anniversary.
Special keyword mode
Use predefined keywords for common date ranges.
Keyword | Description |
today | Current date. |
tomorrow | Next day. |
yesterday | Previous day. |
month_this_dob | Birthdays this month. |
week_this | Current week. |
week_last | Previous week. |
week_next | Upcoming week. |
month_this | Current month. |
month_last | Previous month. |
month_next | Upcoming month. |
year_this | Current year. |
year_last | Previous year. |
year_next | Upcoming year. |
Example: Day In equals Special Keyword → week_next finds profiles checking in next week.
Operator reference
Operators determine how the filter compares your value to the data in the system. The available operators depend on the filter's field type.
Field type | Available operators |
Text (text, email, tel, URL) | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Number | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Date | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
DateTime | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Boolean | equals, not equal |
Select | equals, not equal, empty, not empty |
Lookup (country, region, device brand/OS/type, timezone) | equals, not equal, empty, not empty |
Membership (emails, tags, segments, assets, hotels, preferences) | including, excluding |
Campaign | empty, not empty |
Language ID or Member Tier | equals, not equal, empty, not empty |
Day of Week | equals, not equal |
Loyalty Join Date | greater than, greater than or equal, less than, less than or equal |
⚠️ Important: When you select empty or not empty operators, the value input field is hidden and no value entry is required.
Understanding regular expressions
Regular expressions (regexp) allow complex pattern-matching for text fields. Most filtering needs can be met with simpler operators like like, starts with, or ends with.
When to use regexp
Filtering for multiple specific values (such as multiple zip codes or room types).
Complex pattern matching that can't be achieved with like or starts with.
When you need more efficiency than creating multiple OR filters.
Basic regexp syntax
Symbol | Meaning | Example | Matches |
^ | Start of string. | ^902 | Values starting with 902. |
$ | End of string. | 567$ | Values ending with 567. |
| | OR (either/or). | 90210|90211 | Either 90210 or 90211. |
() | Grouping. | ^(902|310) | Starts with either 902 or 310. |
[0-9] | Any digit. | [0-9]{5} | Any five-digit number. |
[a-z] | Any lowercase letter. | [a-z]+ | One or more lowercase letters. |
. | Any character. | 9.2 | 902, 912, 922, etc. |
? | Zero or one. | colou?r | Color or colour. |
Common regexp patterns
Multiple zip codes: ^(90210|90211|90212)$, which matches only these zip codes exactly.
Multiple room types: ^(KING|QUEEN|SUITE)$, which matches only these specific room types.
Email domain filtering: @(gmail|yahoo|hotmail)\.com$, which matches email addresses from these domains.
📌 Note: The ^ and $ anchors ensure exact matching (prevents partial matches). Use | (pipe) to separate multiple values in an OR pattern. Escape special characters with a backslash \ when you want to match them literally. Test regexp patterns carefully before using them in production segments.
Multi-select behaviour
Certain filter fields automatically enable multi-select when you use them. These fields use the including or excluding operators exclusively.
When you select a filter field that supports multi-select, the operator is automatically set to including or excluding and the dropdown displays in multi-select mode. Selected values appear as removable tags.
Fields that support multi-select:
Email Read, Email Sent, Email Clicked (and AB test variant versions).
Asset Download.
Tags.
Segment Membership.
Hotel Tag.
Guest Preference.
Survey Question.
📌 Note: Fields like Country, Region, Device Brand/OS/Type, and Member Tier use single-select with equals or not equal operators. To filter for multiple values, use separate filters with OR logic.
Contact filters
Contact filters use guest profile data. All segments automatically filter to active profiles only.
Add on score
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Address line one
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Address line one like "%Main Street%" finds profiles with addresses containing Main Street.
Address line two
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Age median
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Age Median greater than 35.
Asset download
Property | Value |
Field type | Assets (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by language |
Example: Asset Download including "Property Brochure 2024" finds all profiles who have downloaded this specific asset.
Birthday
The Birthday filter uses a specialised interface. Instead of selecting operators and date modes separately, you select a Group (category) and then a Condition (specific filter type) from two dropdowns.
Property | Value |
Field type | Date (specialised pre-set interface) |
Value entry | Two dropdowns: Group and Condition, with dynamic value input |
How to use the birthday filter
Select Birthday as the filter field. The birthday preset interface activates automatically.
Choose a Group from the first dropdown (Today, Upcoming, Past, Month, Age, Specific Date, Existence).
(Optional) Turn on Range mode using the Range button (available for certain groups).
Choose a Condition from the second dropdown (options change based on selected group).
Enter the required value(s) based on the condition.
Group | Available conditions |
Today | Is Today, Is Not Today. |
Upcoming | In Next ___ Days, In Next ___ Months. Range mode: In Next ___ to ___ Days/Months. |
Past | Was ___ Days Ago, Was ___ Months Ago. |
Month | Is This Month, Is Not This Month, Is In Month, Is Not In Month. Range mode: In Month Range. |
Age | Older Than ___ Years, Younger Than ___ Years. Range mode: Age Between ___ and ___, Born In Year Range. |
Specific Date | Is On, Is Not On, Before, After, On or Before, On or After. Range mode: In Date Range. |
Existence | Has Birthday, Has No Birthday. |
Example: Birthday → Upcoming → In Next 7 Days finds all profiles with birthdays in the next seven days.
Example: Birthday → Month → Is In Month → December finds all profiles with birthdays in December.
Example: Birthday → Age → Age Between 18 and 30 (Range mode) finds all profiles aged between 18 and 30 years (inclusive).
Bounced - Email
Property | Value |
Field type | Boolean |
Supported operators | equals, not equal |
Value entry | Dropdown (No, YES) |
Example: Bounced - Email equals YES.
Bounced - SMS
Property | Value |
Field type | Boolean |
Supported operators | equals, not equal |
Value entry | Dropdown (No, YES) |
Campaign membership
Property | Value |
Field type | Campaign |
Supported operators | empty, not empty |
Value entry | None (no value selection available) |
Example: Campaign Membership not empty finds all profiles attached to any campaign journey.
📌 Note: You cannot select specific campaigns with this filter. Use empty to find profiles not in any campaign, or not empty to find profiles in at least one campaign.
Cancelled score
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
City
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: City equals "New York".
Country
Property | Value |
Field type | Country (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | All countries with ISO codes |
Example: Country equals US.
📌 Note: To filter for multiple countries, use separate filters with OR logic. For example: Country equals US OR Country equals CA OR Country equals MX.
Date added
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Date Added greater than or equal By Timeframe → -30 days finds all profiles created within the last 30 days.
Date identified
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Date last active
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Example: Date Last Active less than By Timeframe → -90 days finds all profiles that haven't been modified in the last 90 days.
⚠️ Important: Date Last Active tracks when the profile record itself was last modified, not guest engagement activity like email opens or website visits. For guest engagement tracking, use Email Read Date or Visited URL Date instead.
Days since last stay
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Days Since Last Stay greater than 180 finds all profiles who have not stayed in the last 180 days.
Device brand
Property | Value |
Field type | Device Brand (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | Apple, Samsung, Google, Huawei, and others |
Example: Device Brand equals Apple.
Device model
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Device Model like "%iPhone%" finds profiles who have used any iPhone model.
Device OS
Property | Value |
Field type | Device OS (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | iOS, Android, Windows, macOS, Linux, Chrome OS |
Example: Device OS equals iOS.
Device type
Property | Value |
Field type | Device Type (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | Desktop, Mobile, Tablet, Smart TV, Console, Wearable |
Example: Device Type equals Mobile.
Property | Value |
Field type | Email (Text) |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Email ends with "@gmail.com".
Email Read
Property | Value |
Field type | Email Received (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by language |
Available options | All published emails (excludes AB test variants) |
Example: Email Read including "Welcome Email" finds profiles who have opened the parent email.
Email Read (including AB test variants)
Property | Value |
Field type | Email Received All (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by language |
Available options | All emails including AB test variants |
Example: Email Read including AB test variants "Welcome Email" finds profiles who have opened the parent email or any AB test variant.
Email Clicked
Property | Value |
Field type | Email Received (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by language |
Available options | All published emails (excludes AB test variants) |
Email Sent
Property | Value |
Field type | Email Received (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by language |
Available options | All published emails (excludes AB test variants) |
Example: Email Sent including "Welcome Email" finds profiles who were sent the parent email.
Email Read Count
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Email Read Count greater than 10 finds all profiles who have opened any email more than 10 times.
⚠️ Important: Email Read Count evaluates across all emails sent to a profile and is not email-specific. Profiles with no email activity or those who received emails but never opened them will not match this filter.
Email Read Date
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Example: Email Read Date greater than By Timeframe → -7 days finds all profiles who opened any email within the last seven days.
Email Sent Date
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Example: Email Sent Date greater than By Timeframe → -7 days finds all profiles who were sent an email within the last seven days.
Explicit consent date - Email
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Explicit Consent Date - Email greater than By Timeframe → -90 days finds all profiles who provided explicit email consent within the last 90 days.
Explicit consent date - SMS
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Explicit Consent Date - SMS greater than By Timeframe → -90 days finds all profiles who provided explicit SMS consent within the last 90 days.
First name legal
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: First Name Legal starts with "John".
Frequency score
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Gender
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | Female, Male, Undefined |
Example: Gender equals Female.
Implied consent expiration date - Email
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Implied Consent Expiration Date - Email less than By Timeframe → +30 days finds all profiles where the implied consent expiration date is in the next 30 days.
Implied consent expiration date - SMS
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Implied Consent Expiration Date - SMS less than By Timeframe → +30 days finds all profiles where the SMS implied consent expiration date is in the next 30 days.
Is VIP
Property | Value |
Field type | Boolean |
Supported operators | equals, not equal |
Value entry | Dropdown (No, Yes) |
Example: Is VIP equals Yes.
Last name legal
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Last Name Legal starts with "Smith".
Lifetime room nights
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Lifetime Room Nights greater than 10 finds all profiles with more than 10 total room nights across all completed stays. Lifetime filters include all non-cancelled reservations with checkout dates at least one day in the past, regardless of when the profile was created.
Lifetime spend non room
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Lifetime Spend Non Room greater than 1000 finds all profiles with more than 1000 in total non-room spending (food and beverage, spa, services, and other charges) across all completed stays.
Lifetime spend room only
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Lifetime Spend Room Only greater than 3000 finds all profiles with more than 3000 in total room revenue across all completed stays.
Lifetime spend total
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Lifetime Spend Total greater than 5000 finds all profiles with more than 5000 in total spending (room revenue plus all other charges) across all completed stays.
Lifetime stays
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Lifetime Stays greater than five finds all profiles with more than five completed stays.
Loyalty credits available points
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Loyalty Credits Available Points greater than 5000 finds all profiles with more than 5000 loyalty points available.
Loyalty credits redeemed amount
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Loyalty Credits Redeemed Amount greater than 500 finds all profiles who have redeemed more than 500 in loyalty credit value.
Loyalty credits redeemed points
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Loyalty Credits Redeemed Points greater than 10000 finds all profiles who have redeemed more than 10,000 loyalty points.
Loyalty join date
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Loyalty Join Date less than By Timeframe → -1 years finds all profiles who joined the loyalty programme more than one year ago.
Loyalty member ID
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Loyalty Member ID not empty finds all profiles who are loyalty members.
Loyalty member tier
Property | Value |
Field type | Member Tier (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | All configured member tiers (e.g. Bronze, Silver, Gold) |
Example: Loyalty Member Tier equals Gold.
📌 Note: To filter for multiple tiers, use separate filters with OR logic. For example: Loyalty Member Tier equals Gold OR Loyalty Member Tier equals Platinum.
Marketing consent - Email
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Example: Marketing Consent - Email equals True finds all profiles who have given explicit email marketing consent.
Marketing consent - SMS
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Example: Marketing Consent - SMS equals True finds all profiles who have given explicit SMS marketing consent.
Mobile
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Mobile like "%5551234%" finds profiles with this number sequence regardless of formatting.
📌 Note: Mobile numbers are stored as plain text with no automatic formatting. Numbers may be stored as digits only, with dashes, with parentheses, or with country codes and spaces. Use like with wildcards to find number sequences regardless of formatting.
Mobile country code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Monetary score
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Page sessions
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Page Sessions greater than three finds all profiles with more than three page sessions.
Preferred language
Property | Value |
Field type | Language ID (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | All configured languages |
Example: Preferred Language equals Spanish.
Primary company
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Primary Company like "%Hotel Group%" finds profiles associated with companies containing this text.
📌 Note: This is a company field on the guest profile, not a corporate profile.
Profile type
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Profile Type equals "H" finds all hotel guest profiles.
📌 Note: Valid values are H (Hotel Guest) or M (Marketing Only).
Recency score
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Region
Property | Value |
Field type | Region (Lookup) |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | US States and Canadian Provinces grouped by country |
Example: Region equals CA (California). Example: Region equals QC (Quebec, Canada).
📌 Note: To filter for multiple regions, use separate filters with OR logic.
RFMAC category
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown of configured RFMAC category values |
Salutation
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | Mr, Mrs, Ms |
Example: Salutation equals Mrs finds all profiles with the salutation set to Mrs.
Segment membership
Property | Value |
Field type | Leadlist (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown |
Available options | All configured segments (excludes the current segment being edited) |
Example: Segment Membership including "VIP Guests" finds profiles that are in the VIP Guests segment.
Example: Segment Membership excluding "Guests with Future Bookings" excludes all profiles who are in this segment.
Tags
Property | Value |
Field type | Tags (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown |
Available options | All configured tags |
Example: Tags including "Business Traveler" finds all profiles with this tag assigned.
Unsubscribed - Email
Property | Value |
Field type | Boolean |
Supported operators | equals, not equal |
Value entry | Dropdown (No, YES) |
Example: Unsubscribed - Email equals No finds all profiles who have not unsubscribed from email communications.
Unsubscribed - SMS
Property | Value |
Field type | Boolean |
Supported operators | equals, not equal |
Value entry | Dropdown (No, YES) |
Example: Unsubscribed - SMS equals No finds all profiles who have not unsubscribed from SMS communications.
UTM fields
UTM Campaign, UTM Content, UTM Medium, UTM Source, and UTM Term are all text fields that support these operators: equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp. Values are entered as text input.
Visited URL
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Visited URL like "%/special-offers%" finds all profiles who visited any URL containing /special-offers.
Visited URL count
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Visited URL Count greater than five finds all profiles who have visited website URLs more than five times.
Visited URL date
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Zip code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
To filter for multiple zip codes, use one of three approaches: pattern matching with like (Zip Code like "902%"); separate filters with OR logic (Zip Code equals "90210" OR Zip Code equals "90211"); or regexp for exact matching (Zip Code regexp "^(90210|90211|90212)$"). The regexp approach is more efficient for a large number of specific codes.
📌 Note: Zip Code does not support the including operator with multi-select. Use separate OR filters or regexp for multiple values.
What updates date last active
Date Last Active tracks when the profile record itself was last modified in the system. It is not a measure of guest engagement activity like email opens or website visits.
Date Last Active updates when:
Profile creation – when a new guest profile is created (via import, API, form submission, or manual entry).
Profile updates – when a guest profile is modified (any field change, preference update, address change).
Profile merges – when duplicate profiles are merged.
Form submissions – when a guest submits a form that creates or updates their profile.
Date Last Active does not update when:
Emails are opened, read, or clicked.
Website pages are visited.
A guest logs into the loyalty portal (this updates a different field).
⚠️ Important: For guest engagement tracking, use Email Read Date or Visited URL Date filters instead.
Reservation filters
Reservation filters use booking and stay data.
Book time
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Example: Book Time greater than By Timeframe → -30 days finds all profiles with reservations booked within the last 30 days.
Book time (loyalty join date)
Property | Value |
Field type | Loyalty Join Date |
Supported operators | greater than, greater than or equal, less than, less than or equal |
Value entry | Single-select dropdown (Loyalty Join Date) |
Compares the booking date to the guest's loyalty join date. Use greater than to find reservations booked after the guest joined the loyalty programme; less than for reservations booked before joining.
Cancel time
Property | Value |
Field type | DateTime |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date/time picker with all four date modes |
Channel code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Channel Code equals "OTA" finds all profiles with reservations booked through this booking channel code.
Children count
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
CRS confirmation number
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: CRS Confirmation Number equals "CRS123456" finds all profiles with this specific Central Reservation System confirmation number.
Day in
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Day In equals By Timeframe → +7 days finds all profiles with reservations where the check-in date is seven days from today.
To filter by a date range, add two separate filter rows. For arrivals within a range (inclusive): Day In greater than or equal [start date] AND Day In less than or equal [end date]. For arrivals outside a range: Day In less than [start date] OR Day In greater than [end date].
Day in (day of week)
Property | Value |
Field type | Day of Week |
Supported operators | equals, not equal |
Value entry | Single-select dropdown |
Available options | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Example: Day In (Day Of Week) equals Friday finds all profiles with reservations where the check-in date falls on a Friday.
Day in (loyalty join date)
Property | Value |
Field type | Loyalty Join Date |
Supported operators | greater than, greater than or equal, less than, less than or equal |
Value entry | Single-select dropdown (Loyalty Join Date) |
Compares the check-in date to the guest's loyalty join date. Use greater than to find reservations from guests who were already loyalty members at check-in; use less than for guests who checked in before joining the programme.
Day out
Property | Value |
Field type | Date |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Date picker with all four date modes |
Example: Day Out equals By Timeframe → today finds all profiles with reservations where the check-out date is today.
Day out (day of week)
Property | Value |
Field type | Day of Week |
Supported operators | equals, not equal |
Value entry | Single-select dropdown |
Available options | Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday |
Example: Day Out (Day Of Week) equals Sunday finds all profiles with reservations where the check-out date falls on a Sunday.
Group code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Group Code equals "CORP2024" finds all profiles with reservations associated with this specific group booking code.
Hotel code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Hotel Code equals "NYC01" finds all profiles with reservations at the hotel identified by this property code.
Length of stay
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Length Of Stay greater than three finds all profiles with reservations longer than three nights.
Market code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Market Code equals "LEISURE" finds all profiles with reservations categorised under this market segment code.
Next checkin
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
📌 Note: This field is defined as a number type in the system. Contact SHR Support if you encounter unexpected behaviour.
Next hotel
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Next Hotel equals "Beachfront Resort" finds all profiles with a future reservation at this specific property.
Package code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Package Code equals "ROMANCE" finds all profiles with reservations that include this specific package or rate plan code.
PMS confirmation number
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: PMS Confirmation Number equals "PMS789012" finds all profiles with this specific Property Management System confirmation number.
Rate access code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Rate Access Code equals "PROMO2024" finds all profiles with reservations that used this specific promotional or rate access code.
Rate code
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Rate Code equals "BAR" finds all profiles with reservations using this rate code.
Reservation status
Property | Value |
Field type | Select |
Supported operators | equals, not equal, empty, not empty |
Value entry | Single-select dropdown |
Available options | Reserved, Checked In, Checked Out, No Show, Cancelled |
Example: Reservation Status equals Checked Out.
Room type
Property | Value |
Field type | Text |
Supported operators | equals, not equal, like, not like, empty, not empty, starts with, ends with, regexp, not regexp |
Value entry | Text input |
Example: Room Type equals "KING" finds all profiles with reservations for this specific room type code.
Total amount
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Total Amount greater than 1000 finds all profiles with reservations where the total amount is greater than 1000.
⚠️ Important: Total Amount does not convert currencies. It sums raw values regardless of currency. For multi-currency properties, use the Lifetime Spend filters instead, as they properly handle currency conversion to a base currency. Alternatively, combine Total Amount with a Hotel Code filter to limit to specific hotels that share the same currency.
Hotel filters
Hotel filters use property information.
Hotel tag
Property | Value |
Field type | Hotel Tag (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown of all active hotels |
Example: Hotel Tag including "Beachfront Resort" finds all profiles associated with this property.
Preference filters
Preference filters use guest preference data.
Guest preference
Property | Value |
Field type | Preference (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by preference category |
Available options | All configured guest preferences (grouped by RequestType such as Room Preferences, Dining Preferences) |
Example: Guest Preference including "High Floor" finds all profiles with this preference.
Survey filters
Survey filters use survey response data from integrated reputation management systems.
Survey question
Property | Value |
Field type | Maverick Survey (Membership) |
Supported operators | including, excluding |
Value entry | Multi-select dropdown grouped by survey name |
Available options | All configured survey questions (grouped by survey name) |
Example: Survey Question including "How would you rate your stay?"
Survey answer
Property | Value |
Field type | Number |
Supported operators | equals, not equal, greater than, greater than or equal, less than, less than or equal, empty, not empty |
Value entry | Numeric input |
Example: Survey Answer greater than or equal eight.
⚠️ Important: Survey Answer must be combined with Survey Question using AND logic. Add the Survey Question filter first, then add the Survey Answer filter immediately after with AND logic. For example: Survey Question including "How would you rate your stay?" AND Survey Answer greater than or equal 8. This finds guests who rated their stay eight or higher.
Common filtering scenarios
Below are practical examples of common segment filtering use cases. All email segment examples should also have Email Unique enabled.
Find all Gmail users
Filter one: Email ends with "@gmail.com".
AND Filter two: Unsubscribed - Email equals No.
Find VIP guests from the US with five or more stays
Filter one: Is VIP equals Yes.
AND Filter two: Country equals United States.
AND Filter three: Lifetime Stays greater than or equal five.
AND Filter four: Email not empty.
AND Filter five: Unsubscribed - Email equals No.
Find guests with birthdays in the next seven days
Filter one: Birthday → Upcoming → In Next 7 Days.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests who opened a specific email campaign
Filter one: Email Read including "Summer Promotion 2024".
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests who haven't stayed in over six months
Filter one: Days Since Last Stay greater than 180.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests checking in next weekend
Filter one: Day In (Day Of Week) equals Friday.
OR Filter two: Day In (Day Of Week) equals Saturday.
AND Filter three: Day In greater than By Timeframe → +0 days.
AND Filter four: Email not empty.
AND Filter five: Unsubscribed - Email equals No.
Find guests with expiring consent in the next 30 days
Filter one: Implied Consent Expiration Date - Email less than By Timeframe → +30 days.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find loyalty members who joined in the last year
Filter one: Loyalty Join Date greater than By Timeframe → -1 years.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests with high lifetime spending
Filter one: Lifetime Spend Total greater than 10000.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests in a specific zip code range
Filter one: Zip Code regexp "^(90210|90211|90212)$".
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find guests who are not in any campaign
Filter one: Campaign Membership empty.
AND Filter two: Email not empty.
AND Filter three: Unsubscribed - Email equals No.
Find recent OTA bookers (to convert to direct)
Filter one: Channel Code equals OTA (your channel code).
AND Filter two: Day Out greater than By Timeframe → -90 days.
AND Filter three: Day Out less than By Timeframe → +0 days.
AND Filter four: Email not empty.
AND Filter five: Unsubscribed - Email equals No.
Win-back campaign (using segment building blocks)
Create a base "Guests with Future Bookings" segment first: Day In greater than or equal By Timeframe → +0 days. Then in your win-back segment, reference it as an exclusion.
Filter one: Days Since Last Stay greater than 180.
AND Filter two: Segment Membership excluding "Guests with Future Bookings".
AND Filter three: Email not empty.
AND Filter four: Unsubscribed - Email equals No.
Multiple value filters
Most fields, including Country and Member Tier, are single-select. To match multiple values for the same field, add separate filters connected by OR logic.
Example: Country equals US OR Country equals CA OR Country equals MX.
Multi-select fields
The following fields support multi-select using including or excluding operators:
Email Read.
Email Sent.
Email Clicked.
Email Read (including AB test variants).
Email Clicked (including AB test variants).
Asset Download.
Tags.
Segment Membership.
Hotel Tag.
Guest Preference.
Survey Question.
All other fields require separate filters with OR logic to match multiple values.
Empty and not empty operators
The empty and not empty operators hide the value input field for all field types. No value entry is required when using either of these operators.
Birthday month segments
Select Birthday as the filter field.
Select Month from the Group dropdown.
Select Is In Month from the Condition dropdown.
Select the month, for example December.
Survey Question and Survey Answer filters
Add the Survey Question filter first, then add the Survey Answer filter immediately after using AND logic.
Relative dates in By Timeframe mode
Relative dates calculate from the current date. Use + for future dates and - for past dates:
+7 days = seven days from today.
-30 days = 30 days ago.
birthday -7 days = seven days before the guest's birthday this year.
Lifetime Spend and Lifetime Stays filters
Lifetime covers all completed reservations for the guest, regardless of when the profile was created. If historical reservation data was imported before a profile was created, those reservations are included. The calculation covers all non-cancelled reservations with checkout dates at least one day in the past.
Date Last Active
Date Last Active tracks when the profile record itself was last modified, not guest engagement activity.
📌 Note: To track email opens or website visits, use Email Read Date or Visited URL Date instead.
Total Amount and Lifetime Spend filters
For single-currency properties, Total Amount works well for revenue-based segmentation. For multi-currency properties, use Lifetime Spend instead, as it converts all amounts to a base currency before calculating.
⚠️ Warning: Total Amount sums raw values without currency conversion, which produces misleading results when guest profiles span multiple currencies.
Mobile phone number filters
Mobile numbers are stored as plain text with no automatic formatting. Use the like operator with wildcards to find number sequences regardless of format, or use regexp for complex pattern matching.
Email domain filters
Use the Email filter with ends with and enter @gmail.com to match all guests with a Gmail address.
For multiple domains, use regexp: Email regexp "@(gmail|yahoo|hotmail).com$".
Email Read filter variants
Email Read shows only published parent emails. Email Read (including AB test variants) shows parent emails plus all AB test variants. Use Email Read for standard targeting and Email Read (including AB test variants) for AB test performance analysis.
Email aggregate and email-specific filters
Email Read Count and Email Read Date are aggregate filters that evaluate across all emails sent to a profile. Email Read, Email Sent, and Email Clicked are email-specific filters where you select which email or emails to check.
Use aggregate filters for general engagement analysis and email-specific filters for campaign-based segmentation.
Date range filters for Day In and Day Out fields
To filter guests within a date range, add two separate filters:
For an inclusive range: use greater than or equal for the start date AND less than or equal for the end date.
For dates outside a range: use less than for the start date OR greater than for the end date.
Loyalty join date comparison filters
Day In (Loyalty Join Date), Day Out (Loyalty Join Date), and Book Time (Loyalty Join Date) compare reservation dates against when the guest joined the loyalty programme.
Use greater than to find reservations made after joining.
Use less than to find reservations made before joining.
