AI Adoption GuideHospitalityBook
Guest segment intent classifier
Classifier labels inbound inquiries by traveler type, such as leisure, business, or group, to route queries and personalize offers.
Hospitality processBookConfirmPrepareArriveStayDepartReviewReturn
By Don, DoneThat’s AI coach · updated
A label is only valid with a cited sentence
A guest segment classifier is usable when it returns a traveler type a reservations supervisor can defend from the inquiry itself. Leisure, business, or group is a useful bucket only if the output also points at the sentence that justified it. A label with no cited sentence is not a classification. It is a guess sitting on the booking thread.
The quality bar is narrow on purpose. Read the inbound text, name a segment if the text supports one, and quote the line used. Empty stays empty if the inquiry is silent about why the guest is traveling. Inventing a segment so the field is never blank trains the desk to trust a field that does not deserve trust.
Reservations work already splits guest type from rate, room, and channel. The classifier does not replace that split. It only names the traveler pattern the guest actually wrote, so the agent can route without rereading every message.
Load the inquiry, then cite the sentence
Start by loading the full inbound inquiry, not a truncated subject line or a CRM snippet that already holds last year's stay type. The input is the current message: email body, chat transcript, or web-form notes, plus dates and occupancy if those sit in the same thread.
Run classification against that text only. A successful pass needs three fields: the segment name, the exact sentence or short span copied from the inquiry, and a reason that restates the cite rather than adding biography. If the cite cannot be copied from the source, the label does not ship.
Walk one thread the way a supervisor would. A guest writes: "Hi, we are a family of four celebrating my parents' 40th anniversary, looking at Friday to Sunday in October, two connecting rooms if you have them." The usable output is leisure, citing "celebrating my parents' 40th anniversary." Occupancy and connecting rooms are booking facts. They are not the segment. The anniversary sentence is.
If the same inbox later shows "Need two queens, check-in the 14th, checkout the 16th, please confirm the rate," there is no traveler-type sentence to cite. Leave the segment blank. The agent still quotes availability and, if the property actually needs the answer to pick a queue, asks whether the stay is for work, a family trip, or something else.
Do not feed the classifier a loyalty profile, a previous booking's market code, or a note from preference extraction from booking notes as if those were this inquiry. Those sources can color how an agent talks once a segment is known. They are not evidence that this inbound message is business, leisure, or group.
Silent inquiries stay unlabeled
Blank is a valid result. Short availability checks, rate requests, and "is this still available" pings often carry dates and a party size without saying who is traveling or why. Filling leisure because most weekend stays are leisure is inventing a segment. Filling business because the email domain looks corporate is inventing a segment. Filling group because the party size is eight is inventing a group.
Party size is the failure mode supervisors see most. Eight adults for a wedding can be a group. Eight colleagues on a site visit can be a group. Eight people sharing a house for a long weekend may still be leisure, sold as four rooms with no group block. If the inquiry never says wedding, reunion, conference, sports team, or a comparable group cue, do not emit group. The agent can still ask whether the rooms are for one event the hotel should hold together.
A label with no sentence often sneaks in through default buckets or a score that never highlights a span. If the system cannot mark a span in the inquiry, reject the output. Treat that rejection as success: the desk did not get a fake traveler type to file against the booking.
When the guest later adds the missing sentence, for example "this is for our sales kickoff," run classification again on the new text. Do not backfill the original blank from memory of similar stays.
The agent still chooses the queue
The classifier does not assign the queue, the agent, or the reply template. A reservations agent still routes. Segment is one input among dates, language, VIP flags, and whether the request is a new inquiry or a change to an existing reservation.
Leisure on a two-night weekend might still go to transient. Group cited from "we need a block of 15 rooms for a reunion" might go to groups even on weekend dates. Business cited from "I am booking for a client visit, invoice to the company" might go to a corporate queue or stay with the agent who already owns that company file. The label does not decide. The agent does.
If a conversational booking agent is collecting the inquiry in chat, keep the same rule. The bot can display a suggested segment with its cite. It must not auto-assign the conversation to Groups because the model liked the word "team." The human who owns reservations still picks the path, including leaving the thread in general and asking one clarifying question.
Use the cite in the handoff, not only the bucket. "Leisure, citing anniversary weekend" tells the next reader what to personalize. "Leisure" alone invites the next person to invent the rest.
Guest type is not the rate plan
The costly mistake is treating the label as the rate plan, the market code, or eligibility for a corporate or group contract. Guest type is a reading of intent in the inquiry. Rate is a commercial decision that still needs a valid contract, a qualifying document, or a groups process.
A business label does not load the negotiated corporate rate. A leisure label does not block a BAR or package the guest already asked for. A group label does not create a block, a cutoff date, or a rooming list. If the inquiry cited "our company offsite" and the agent then keys a wholesale group rate without a group file, the classifier did not cause that. The desk treated a traveler-type field as inventory policy.
Keep segment off the fields that drive price. Map it to a notes or attributes area the agent can see and that reporting can later filter, not to the rate-code picker. When an offer is personalized, the cite is the permission: you may mention family connecting rooms because they asked for a celebration, not because a model stamped leisure. A pre-arrival upsell sequencer must not fire a romance package from a leisure stamp that never cited a couple's trip.
Keep loyalty context retrieval beside the inquiry for tier and past stays. Do not let past stay type overwrite a blank on this message, and do not let a new leisure cite overwrite a corporate account the guest already attached. Those are different facts.
Where the classifier sits on the inquiry path
Asksuite, HiJiffy, Oracle Hospitality, and Mews are the class of tools where this work usually sits: chat or email on the front, property and reservation records behind. None of them is the classifier. They hold the thread and the booking. The quality check stays the same wherever the text lives: load the inquiry, emit a labeled cite or emit nothing, and leave routing to the agent.
Wire the output so a supervisor can audit it in one glance. Show the cited sentence next to the segment. Show a blank as blank, not as "unknown" dressed up as a third guest type. Log the rule or model version so a week of invented groups can be traced. Treat a populated segment without a highlight in the message as a defect.
The working loop is short. Load the inquiry. Label only with a cite. Leave blanks. Let the agent route. Rate, room type, group file, and upsell are later decisions that must not inherit a traveler type the guest never wrote.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first