Skip to main content

Getting started with Evo Researcher and the CRM Segment Connector

Learn how to use the CRM Segment Connector in Evo Researcher to discover, build, manage, and monitor audience segments directly from your hotel CRM.

Written by Fernando Fallabrino

The CRM Segment Connector gives Evo Researcher direct, live access to your hotel CRM's audience segmentation engine. You can research, build, manage, and monitor segments entirely within Evo Researcher, without switching tools.

⚠️ Important: You need an active Evo Researcher subscription with the CRM Connectors enabled before you begin. Evo works within your property's configured data, all live and specific to your CRM setup. Ask Evo what is available before building something new.

What Evo Researcher can do with your CRM segments

Evo Researcher has full read-write access to your CRM's segmentation engine. You can look up, analyse, create, edit, publish, unpublish, refresh, and delete segments, all through natural language conversation.

Discover

Find out what segments already exist before building something new. Search by name, filter by published or global status, and see contact counts at a glance.

Validate

Preview how many contacts would match a proposed set of filter rules without saving anything. Test ideas safely before committing.

Understand

Inspect the exact filter logic behind any segment, including what fields, operators, and values are used, and see what emails or reward rules are linked to it.

Build

Create new segments with full filter logic, names, aliases, tags, reward rules, and publish settings, all through a conversation with Evo.

Manage

Edit existing segments, update filter criteria, publish or unpublish, refresh on demand, or delete segments you no longer need.

Monitor health

Check when a segment was last refreshed, track contact growth over time, and identify segments that are stale, empty, erroring, or never refreshed.

Explore fields

Browse the full catalogue of available filter fields, including guest profile, reservation data, loyalty, preferences, and RFM scores, and see valid operators and values for each.

Organise

Search and create segment tags to keep your library organised. Bulk-refresh or bulk-delete multiple segments at once.

Alert

Get proactive alerts for failed or stalled segment refreshes, so you can act before campaigns are impacted.


How it works

Segment data model

Every segment in the CRM has the following core properties.

Property

Description

name / alias

Human-readable name and unique URL-safe alias.

isPublished

Whether the segment is active and being refreshed.

isGlobal

Visible to all users vs. private to the creator.

isPreferenceCenter

Exposed in guest preference centre.

emailUnique

Deduplicates contacts by email address.

ignoreUnsubscribe

Includes unsubscribed contacts (use with care).

contacts

Current contact count as of last refresh.

lastRefreshedAt

Timestamp of the most recent successful refresh.

rewardRuleId

Optional linked reward rule (e.g. loyalty discount).

filters

Array of filter items defining the audience criteria.

Filter items

Each filter item has five key parts.

Part

Example

What it means

field

reservationStayThrough

The data field being tested.

object

lead or reservation

Which data entity the field belongs to.

type

date, text, select, boolean, number

Data type, determines valid operators.

operator

lte, =, like, !empty

Comparison logic.

filter

-12 months, OTA, today

The value to compare against.

glue

and / or / (blank on the last row)

How this row connects to the next row.

📌 Note: The glue value sits at the end of each row and describes the connector to the next row, not the previous one. The first row always starts with AND (connecting forward to row 2). The last row always ends blank (nothing follows).

Date filter value modes

Date fields such as Reservation Stay Through, Birthday, and Book Time have a two-step value selection. First choose an operator, then choose how to express the value.

Operators available

Value mode

What it means

equals, greater than, greater than or equal, less than, less than or equal

By Date

Match against a specific calendar date.

equals, greater than, greater than or equal, less than, less than or equal

By Month

Match against a specific month (ignores year, useful for birthday campaigns).

equals, greater than, greater than or equal, less than, less than or equal

By Timeframe

Relative offset from today: direction (+ future / - past), number, and unit (Days, Weeks, Months, Years).

equals, greater than, greater than or equal, less than, less than or equal

Special Keyword

Named dynamic dates (e.g. today, start/end of month, start/end of year).

🤓 Tip: Use By Timeframe for rolling windows (e.g. 'last 12 months', 'next 30 days') so the segment stays current on every refresh without needing a hardcoded date. Use By Date only when you need to target a fixed point in time.

Filter logic: AND groups and OR chains

CRM segments use a flat list of filter items, each joined to the next by a glue value of and or or. Three valid structures are supported.

Pure AND chain: all filters joined with and. A contact must match every condition. Example: Checked-out AND OTA channel AND not unsubscribed.

Pure OR chain: all filters joined with or. A contact must match at least one condition. Example: Email = A OR Email = B OR Email = C.

OR-separated AND groups: groups of AND conditions separated by an or. The OR appears on the last row of each group, connecting to the first row of the next. Example: (Lapsed AND High-Stays) OR (Lapsed AND High-Revenue).

📌 Note: An or on a row ends the current AND group and starts a new one. Within a group, all conditions must match. Across groups, matching any one complete group is sufficient.

Filter objects

lead (Guest Profile): fields on the guest record including name, email, birthday, city, country, language, gender, loyalty tier, loyalty member ID, DNC status, lifetime stays, RFM scores, UDF fields, tags, and more.

reservation: fields on reservation records including status, booking channel, book time, stay-through date, hotel ID, and other booking attributes.

Refresh lifecycle

  • Only published segments are refreshed automatically.

  • Manual refresh is available once per 15 minutes per segment.

  • Unpublished segments show contacts: 0 and no lastRefreshedAt.

  • Evo can bulk-refresh multiple segments in a single request.

  • Evo can report stalled or failed refreshes for proactive alerting.


What you can ask Evo Researcher

Segment discovery

  • "How many segments do I have?" / "Show me all published segments".

  • "Find segments tagged VIP".

  • "Are there any existing win-back segments?".

  • "Which segments have never been refreshed?".

  • "Find segments with more than 500 contacts".

Segment inspection

  • "What are the filter rules for segment X?".

  • "What emails are linked to this segment?".

  • "Does this segment have a reward rule attached?".

  • "Show me the contact growth trend for segment X over the last 7 days".

Audience sizing (preview)

  • "How many guests have a birthday this month?".

  • "How many contacts would match: loyalty tier = Gold AND city = Houston?".

  • "Preview the audience for guests who haven't booked in 12 months".

Preview counts are live. They run against the current data without saving anything.

Building and editing segments

You can describe a segment in plain language and Evo will translate it into the correct filter logic, validate all field IDs and values against the live catalogue, and create it. Here are some examples.

OTA Win-Back: "Create a segment called OTA Win-Back for guests who have a past reservation made on the OTA booking channel with a checked-out status, do not have an email opt-out, and are not enrolled in the loyalty programme."

Lapsed High-Value Win-Back: "Create a win-back segment for lapsed high-value guests. Their last stay should be between 12 and 36 months ago, and they should either have three or more lifetime stays, or lifetime revenue above [threshold]. Exclude anyone who has unsubscribed from email."

Loyalty Tier Progress: "Build a segment for loyalty members who are not yet at the top tier and are close to qualifying for the next tier by stays, nights, or spend, and whose qualifying credits expire before the end of the programme cycle."

First-Timer Nurture: "Create a segment for guests who have had exactly one stay in the last 12 months, are not enrolled in the loyalty programme, and have not unsubscribed from email."

Refresh and health

  • "Refresh segment X".

  • "Bulk-refresh all segments tagged 'VIP'".

  • "Are there any segments that failed to refresh today?".

  • "Show me the refresh history for segment X".

Filter field exploration

  • "What loyalty tiers are available to filter on?".

  • "What hotels can I filter by?".

  • "What operators are available for date fields?".

  • "What reward rules exist that I could attach to a segment?".


Available filter categories

Category

Example fields

Guest identity

First name, last name, email, gender, birthday, city, country, language.

Loyalty

Loyalty Member Tier (memberlevel), Loyalty Member ID (loyaltymemberid), Loyalty Join Date (signuptime), Credits, Lifetime Stays, Qualifying Stays/Nights/Spend.

Reservation

Reservation Status (ResStatus), Booking Channel (ChannelCode: e.g. OTA, GDS, Booking Engine, PMS), Book Time, Stay-Through Date (reservationStayThrough), Hotel ID.

Engagement

Unsubscribed Email (dnc_unsubscribed), Unsubscribed SMS (dnc_unsubscribed_sms), email open/click behaviour.

RFM

Recency, Frequency, Monetary category scores (separate from loyalty stay/spend counters).

Preferences

Guest preference details (RequestDetailID), survey responses.

Custom (UDF)

Client-defined fields specific to your property configuration (separate from standard loyalty and RFM fields).


Recommended workflow in Researcher

  1. Check first: ask Evo to search for existing segments before building something new.

  2. Explore available filter fields: ask Evo what fields, operators, and values are valid for your use case.

  3. Preview the audience size: test your proposed filter combination before committing.

  4. Create the segment: tell Evo to build it. Evo validates all field IDs and values against the live catalogue before saving.

  5. Publish and refresh: ask Evo to publish the segment and trigger an initial refresh to populate contacts.

  6. Monitor health: check refresh status, contact growth, and linked campaign performance over time.

🤓 Tip: Evo Researcher always fetches live data from the connector, so contact counts, filter options, and segment lists are always current at the time you ask.

Did this answer your question?