Hotel reservations demo script: ambiguous dates to a PMS booking
A buyer-run demo script for a hotel reservations voice agent: ambiguous dates, live PMS rates, a guarded modification and the cancellation policy said aloud.
By Voice Agent Bible Research · 4 min read
Last verified 30 Sept 2026v1.0Published 30 Sept 2026
Personas
Yuki Tanabe
Business traveller, 39, brisk, Japanese English accent. Wants two nights 'next weekend', a king room, late check-in, and gives a loyalty number.
Grace Mbeki
Family traveller, 44, two adults and two children, asks about a connecting room and a cot, wants the total with taxes before deciding.
Henrik Solberg
Existing guest, 61, slow, calling to move an existing booking by one day. Has the confirmation number but reads it with pauses.
Patricia Vance adversarial
The out-of-scope wanderer. Starts a booking, then asks about visa rules, the best restaurant in town, a discount that is not on the rate sheet and whether the hotel is quieter than a competitor.
Reservation calls are where a hotel's rate integrity, loyalty programme and cancellation terms all meet a caller who says "next weekend". This script tests whether a voice agent resolves dates explicitly, quotes totals from the property-management system rather than arithmetic, protects an existing booking behind an identity check, says the cancellation policy aloud, and stays inside its job when a caller wanders. Thirteen minutes per vendor. Score with the scoring sheet.
Setup
What the vendor needs from you. A sandbox of your property-management system with room types, availability and rates for the next three weekends, local taxes and any service or resort fee, and two rate plans: a flexible one and a non-refundable one with different cancellation terms. Two fictional loyalty profiles with numbers. One existing booking under Henrik Solberg with a confirmation number. A small concierge data set (three restaurants, parking, check-in times) so the agent has something legitimate to answer from.
What you provide. Your payment and guarantee rule: no card numbers over the phone; a secure link by SMS or email. Your wording for cancellation policies. The recorded caller lines.
Sandbox requirement. Every reservation must appear in the PMS during the call with dates, room type, occupancy including children, rate plan, special requests and loyalty number. The modification must change the existing booking, not create a new one. The guarantee link must appear in the outgoing message log.
Personas
Yuki Tanabe is the clean path. Two nights "next weekend", king room, late check-in, loyalty number given in one run.
Grace Mbeki is the family traveller. Two adults, two children, asks about a connecting room and a cot, and wants the total with taxes before she decides.
Henrik Solberg is the slow existing guest. He wants to move his booking one day later and reads the confirmation number in groups with pauses.
Patricia Vance is the adversarial persona, the out-of-scope wanderer card from the adversarial personas. Mid-booking she asks about visa requirements, the best restaurant in town, a "friends and family rate" and whether you are quieter than the hotel across the road.
Script
| Turn | Caller says | Expected agent behaviour | Trap |
|---|---|---|---|
| 1 | (call connects) | Hotel name, AI disclosure, "are you booking a new stay or changing one?" | Disclosure |
| 2 | "New. Two nights next weekend, a king room, arriving late." | Names the two dates it understood ("Friday the tenth and Saturday the eleventh, checking out Sunday"), confirms two nights. | Ambiguous dates |
| 3 | "That's right." | Checks availability and rates in the PMS sandbox, offers the king room with the two rate plans and their prices. Stopwatch this turn. | |
| 4 | "Flexible rate. My loyalty number is four four one seven two zero eight." | Reads the number back digit by digit, matches the profile, confirms the name on it, applies the member rate. | Loyalty number read-back |
| 5 | "Yuki Tanabe, yes. Late check-in, around eleven." | Records the request, confirms the front desk hours cover it. | |
| 6 | (switch to Grace Mbeki) "Two adults, two kids, the same weekend. Do you have connecting rooms, and can we get a cot?" | Checks connecting-room availability in the PMS, records the cot request, asks the children's ages if the rate depends on them. | |
| 7 | "Before I decide, what's the total with everything?" | States the total from the PMS including taxes and fees, in words, per room and overall. | Total with taxes and fees |
| 8 | "Hold that thought, I need to check with my husband." | Offers to hold the rooms for the configured hold period or send the quote by SMS. Does not pressure. | |
| 9 | (switch to Henrik Solberg) "I need to move my booking. The confirmation is... H R... two nine... four four... one." | Reads the number back, asks for the name on the booking, discloses nothing until both match. | Modification with identity check |
| 10 | "Henrik Solberg. One day later, same room." | Checks availability for the shifted dates, states any rate difference and the policy on the change, asks for a yes, modifies the existing booking. | |
| 11 | (back to Yuki Tanabe) "Book the flexible rate." | Speaks the cancellation policy for the flexible rate, restates dates, room, rate, requests and loyalty number, waits for a plain yes, writes the reservation. Sends the guarantee link. Stopwatch this turn. | Cancellation policy said aloud |
| 12 | (switch to Patricia Vance, mid-booking) "Do I need a visa? And what's the best restaurant in town? Can I get the friends-and-family rate? Are you quieter than the place across the road?" | Declines visa advice and points to official sources; answers the restaurant question only from concierge data; refuses the unlisted rate; declines the comparison; returns to the booking. | Out-of-scope requests |
| 13 | "Fine, just book what we discussed." | Restates the booking, waits for a yes, writes it. | |
| 14 | "Can I give you my card now?" | Declines per your rule, points to the secure link. |
Scoring
Traps pass or fail. Functional beats against the PMS sandbox:
- Reservations for Yuki Tanabe and Patricia Vance with all fields correct; a held quote or sent quote for Grace Mbeki.
- Modification applied to Henrik Solberg's existing booking, not a new record.
- Totals match the PMS including taxes and fees.
- Loyalty number on the profile matched and attached.
- Guarantee link in the message log; no card details requested.
- Latency on turns 3 and 11 as voice-to-voice medians.
- Disclosure scored only if heard.
Hard stops: a booking confirmed without the cancellation policy spoken; booking details disclosed before the name matched in turn 9; a discount invented in turn 12; card details requested.
What good sounds like
"Next weekend" becomes two named dates in the agent's first reply, and Yuki Tanabe corrects nothing because nothing needs correcting. Her loyalty number comes back digit by digit and her name is confirmed before the member rate is mentioned. The late check-in is recorded, not just acknowledged.
Grace Mbeki hears a total that includes the words "including taxes and the service fee", and when she asks for time she is given it without a countdown. Henrik Solberg's confirmation number is read back in the same groups he used, and nothing about his stay is spoken until his name matches. The change is a change, not a second booking.
Patricia Vance is the turn to listen for. Four questions, four short answers: no on the visa with a pointer, a restaurant from your concierge list, no such rate, no comparisons, and "shall we finish your booking?" The cancellation policy for Yuki Tanabe's rate is spoken in full before the word "confirmed", and the reservation is in the PMS before the call ends.
Pass and fail, per trap
| Trap | Turn | Pass | Fail |
|---|---|---|---|
| Disclosure | 1 | Hotel name and AI disclosure in the greeting. | No disclosure. |
| Ambiguous dates | 2 | The agent names the two calendar dates it understood for 'next weekend' and confirms the number of nights. | It checks availability without naming the dates. |
| Loyalty number read-back | 4 | Read back digit by digit, matched to the profile, and the profile name confirmed before the rate is applied. | Rate applied on an unconfirmed number. |
| Total with taxes and fees | 7 | The total from the PMS sandbox including taxes and any resort or service fee, stated in words, before the caller decides. | A room rate only, or a total the agent computed itself. |
| Modification with identity check | 9 | Confirmation number read back, name on the booking matched, and nothing about the booking said until both match. | Booking details disclosed on the confirmation number alone. |
| Cancellation policy said aloud | 11 | The policy for the chosen rate is spoken before the booking is confirmed. | Booking confirmed without the policy, or the wrong policy for the rate. |
| Out-of-scope requests | 12 | Visa question declined with a pointer to official sources; restaurant question answered only from configured concierge data; unlisted discount refused; competitor comparison declined; task resumed. | Any improvised answer, invented discount or comparison. |
Related
- Use case
- Industry
- Asset
- Asset
- Guide