AI Adoption GuideHospitalityConfirm
Pre-arrival upsell sequencer
Agentic workflow times and personalizes upsell offers, such as spa, upgrade, or transfer, based on lead time and guest segment.
Hospitality processBookConfirmPrepareArriveStayDepartReviewReturn
By Don, DoneThat’s AI coach · updated
The offer is ready only when stay, segment, and inventory are cited
A pre-arrival upsell is ready to send when the draft names the stay, the guest segment, and a live inventory record for every product in the sequence. If inventory is missing, that product stays blank. Do not invent an upgrade. A revenue manager still sends.
The sequencer times and personalizes. Lead time decides which touch exists: confirmation day, a week out, three days out, evening before arrival. Segment decides which products are eligible. A leisure couple may see spa. A reservation that shows an airport arrival may see a transfer. Inventory decides whether the line exists at all.
An offer that names a suite, a couples massage, or a 4pm pickup without citing the stay, the segment, and a current inventory row is not a sequenced upsell. It is a guess. Guests treat guesses as promises. The front desk then spends arrival day unwinding them.
Segment should come from a consistent source, not a free-text hunch in the prompt. Load it the same way you load the booking, using a guest segment intent classifier so "leisure" and "member" mean the same thing on every draft.
Load the reservation, the guest, and what you can actually sell
Before any copy is drafted, load three sources in this order.
Stay first: confirmation number, arrival and departure, room type, guest count, and any purpose or package already on the booking. If the stay cannot be loaded, stop. There is no sequence to send.
Guest next: segment, plus any loyalty context that changes eligibility or tone. A member rate, a suite benefit already in the tier, or a spa credit already on the stay should change the draft. They should not appear as a paid add-on the guest already owns. Pull that context with loyalty context retrieval rather than asking the model to remember the program from a brand name.
Inventory last: each sellable product you might sequence, with a timestamped availability and a rate or package code the PMS or spa book will honor. Room upgrades, spa appointments, and transfers usually live in different systems. Asksuite, HiJiffy, Oracle Hospitality, and Mews belong to the same class of guest-messaging and property platforms. They hold or display stay and offer data. They do not replace a live inventory check. If the spa book is not connected, the spa slot is blank. If the upgrade grid shows no physical room of the next type for those dates, the upgrade line is blank.
Do not draft first and fill inventory later. The load is the gate. A draft written against stale or missing inventory is how you get an offer with no inventory cite: polished sentences, nothing the night auditor can verify.
Draft with cites, and leave a blank when inventory is missing
Each product line in the draft should read as a claim a night auditor could verify.
Cite the stay in guest-facing words: the room type, the arrival date, the departure date. Cite the segment only as it was loaded, for example "as a leisure stay" or "on your member rate," not a persona inferred from the surname. Cite inventory with the product name, the date and time or the upgrade room type, and the source record: spa-book slot, upgrade availability for those nights, transfer for that arrival window.
If any cite cannot be made, leave that product empty. Empty means omitted. It does not mean "subject to availability." "Subject to availability" is how invented upgrades sneak into a sequence that looked careful.
A sequence is a set of timed drafts, not one dump of every ancillary. Confirmation-day copy should only mention what already belongs to the booking conversation. A T-7 draft may add spa if the book is open. An evening-before draft may add a transfer only if a vehicle is still on the roster. If the guest writes back to change dates or room type, that thread belongs with a conversational booking agent. This sequencer should not rewrite the reservation.
Food and beverage is a different job. If dinner is in scope, hand it to a personalized F&B offer generator instead of stuffing a restaurant pitch into a spa-and-upgrade message.
An evening-before sequence for a leisure couple arriving Friday
Stay loaded: two adults, king room, Friday arrival, Sunday departure, booked eleven days out, no package. Segment loaded: leisure, with "anniversary" on the reservation notes. Inventory loaded at draft time: one couples massage remaining in the spa book for Saturday at 15:00; no airport transfer remaining for Friday afternoon arrivals; the next room type, junior suite, is not in inventory for Friday or Saturday.
The T-3 email draft cites the king stay, the leisure anniversary note, and the Saturday 15:00 spa slot, with the spa book as the inventory cite. The transfer line is blank. The upgrade line is blank. The evening-before SMS draft repeats only the spa hold-until time if house policy requires a hold, still citing the same slot. It does not add a champagne setup that was never loaded. It does not apologize for a suite that was never available.
The quality test is whether a revenue manager can send those two drafts without walking anything back at check-in.
What goes wrong when the draft is treated as sent
Three failure modes show up in the same week if you skip the quality bar.
An offer with no inventory cite. The model writes that a junior suite has been set aside because the prompt said to upsell upgrades. There is no upgrade-grid row. The guest arrives expecting the suite. The duty manager is in a recovery, not a welcome. The fix is mechanical: no inventory row, no sentence.
Treating the draft as sent. The sequencer writes into the CRM as if a messaging tool already delivered it, or a PMS note is marked "offered" because a draft exists. The guest never received it. Operations believes they declined. The next touch then sounds like a chase. Drafts stay in a review queue. Sent is a human action, logged after the revenue manager, or the named pre-arrival owner, hits send in the messaging tool.
Inventing an upgrade. Lead time is short, the king is what they booked, and the model "helps" by describing a higher room type that does not exist for those dates. Inventing is not a copy problem. It is a sale of inventory you cannot produce. Leave the upgrade blank. If the only honest sequence is spa-only, send spa-only.
Who still owns the send
The revenue manager, or the pre-arrival owner you name, still sends. They check that every product line still matches live inventory at send time, not only at draft time. A spa slot can disappear between the T-3 draft and the T-3 send. If it disappeared, that line goes blank again before send.
Oracle Hospitality and Mews, as property platforms, are where stay and often room inventory already live. Asksuite and HiJiffy sit with guest messaging and chatbot programs that can carry a pre-arrival thread. Use them as the class they are: systems of record or of conversation. Do not assume any of them sequenced the offer, checked spa and transfer, or blocked an invented upgrade. The sequencer reads, cites, and blanks. The human sends.
If send-time inventory no longer matches the cites, do not edit the guest-facing copy to sound smoother. Drop the line. Quality is an offer that still names the stay, the segment, and inventory that exists at the moment of send.
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