Voice AI for travel: build the agent for disruption day
Voice AI earns its place in travel on the day a trip goes wrong, when call volume jumps and the phone queue fails. Build the agent for that day: call the travellers your notices missed, recognise the booking without asking anyone to spell a reference, offer only what your reservation system returns, and keep entitlement rules out of the model.
Voice AI earns its place in travel on the day a trip goes wrong. On an ordinary day the phone is one service channel among several. On the day a flight cancels, call volume jumps within minutes, every caller needs the same thing, and the phone queue is the part that fails.
So design the agent for that day. It should call the travellers your text and app notices didn't reach, recognise the booking without asking anyone to spell a reference, offer only what your reservation system returns (the refund option included), and make the change exactly once.
Entitlement rules stay in your policy system and with your staff, never in the model.
This playbook is written around airlines. Agencies and tour operators that service air bookings can use the same pattern, with two differences: they hear about a change later, through the carrier's schedule-change message, and they hold their own itinerary number alongside the airline's reference. New to voice agents? Start with the complete guide to AI voice agents.
Why disruption day is the design case
Phones fail in a predictable way when operations do. Southwest cancelled 16,900 flights over the 2022 Christmas holiday. The US Department of Transportation found its call centre so overwhelmed that "customers got a busy signal upon calling the customer service telephone number", and that many "did not receive a flight status notification in any form" (DOT).
It recurs. IndiGo cancelled at least 1,600 flights on one day in December 2025 (Al Jazeera).
Regulators are now putting a clock on the response. The EU's revised air passenger rights rules, adopted in July 2026 and due to apply about a year later, require airlines to offer rerouting within three hours of a cancellation or denied boarding. Miss that and the passenger may arrange their own travel and claim back up to 400 percent of the original fare (Council of the EU, Euronews).
Amadeus, whose systems many airlines run on, is starting with the easier case. On 29 September 2026 it described a conversational agent whose first use case is voluntary rebooking, with existing airline systems still managing "the business rules, data, and transaction capabilities" (Amadeus).
Disruption day is still the load to design for, with the same division of labour: the model handles the conversation, and your system of record makes the decisions.
Call the ones your notices missed
Texts, emails and app notices go first. The call is for travellers who haven't acted on them, for bookings made by phone, and for changes that need a choice.
- Trigger from the event. For a single booking, such as a retimed connection, your system can place a call through Callaro's API at once, or create a follow-up call with an attempt cap and an expiry. For a whole flight, use a campaign, which paces dialling against your line capacity.
- Give every call an end. A call about a delay is noise once the flight has left, and a call about a cancellation is noise once the traveller has rebooked in the app. Callaro's scheduler drops an expired follow-up instead of dialling it late, and your system can cancel a follow-up or a campaign through the API.
- Fetch the booking again on every attempt. A Callaro agent can call your API before it speaks, on outbound calls as well as inbound. A retry two hours later then describes the booking as it stands, not this afternoon's options.
- Change the voicemail setting. Callaro agents hang up on voicemail by default, which suits sales calls. For a disruption notice, have the agent leave a message: the name, the carrier, the fact of a change and how to respond. A full itinerary doesn't belong on a mailbox someone else may play.
- Don't sound like the scam. "Your flight is cancelled, call us" is a familiar fraud script. Have the agent say it's the airline's automated assistant, never ask for payment, and point to the number on the booking confirmation.
Check two campaign settings before the day. A calling window built for sales calls will sit on a midnight cancellation until morning, so decide in advance how close to departure a night call is justified. And on Callaro, inbound and outbound calls share the same lines: a campaign holds none back for callers who haven't rung yet, so cap its concurrency below your line capacity.
Know the booking before "hello"
An airline booking reference is typically six letters and digits, among the hardest things to say over a phone line. B, C, D, E, G, P, T and V all rhyme, narrowband phone audio blurs F with S and M with N, and a random string gives speech recognition no context to guess from. So stop asking for it.
- Look the caller up before the agent speaks. The pre-call request can use the caller's number, and each field in your API's response maps to a prompt variable, with a default for an empty lookup. The agent starts the call already holding the booking.
- Don't treat the number as proof. Numbers get shared and spoofed, and the one on a booking is often a travel agent's or a company travel desk's. Have the agent ask for one detail the caller supplies, such as the destination, before it discusses or changes anything.
- When the number doesn't match, ask for words. Name, travel date and destination go to a search tool. Everyone on a cancelled flight shares the last two and names are hard for recognisers, so match loosely on your side, with a tie-breaker such as the last four digits of the phone on the booking.
- If you must take a reference, make it survivable. Accept spelling with any words ("B for Bombay" is as good as "Bravo"), read it back the same way, and transfer after two failed lookups.
- Bind what you already know. A tool parameter in Callaro can be bound to a variable. The server fills it, the model never sees it, and it overrides anything the model supplies, so the change request carries the reference your lookup returned, whatever the model thinks it heard.
Saying a reference is a separate trap. Hand a text-to-speech engine a raw 482913 and it tends to read a quantity: "four hundred eighty-two thousand, nine hundred thirteen". Pass references as variables already written the way they should be spoken. As a second line of defence, Callaro's built-in voice rules tell the model to write numbers as words.
Offer what the system returns, then make the change once
Most carriers move disrupted passengers to another flight automatically, so the call is rarely "what would you like to do?" It's "we've moved you to this flight: keep it, pick another, or take a refund." All three come from your reservation or policy system for this booking, and the refund is offered every time it applies.
Treat availability as a snapshot. Within one call, Callaro answers a repeated identical lookup from the result it already has, so your change endpoint must check again and return a clear "no longer available" with fresh options.
The mechanics of safe writes (retries that don't double-book, confirming from what the write returned) are in our appointment scheduling playbook. A flight change adds one check: a rebooked segment without a reissued ticket fails at check-in, so have your endpoint confirm ticketing before the agent says it's done.
Say the place and the time correctly
Place names
On a call we reviewed, the caller asked for an address three times. The logs pointed to one likely reason: the agent was speaking English, the Indian place names in its reply were written in Latin letters, and the voice applied English letter-to-sound rules to them. On that voice, "Pune" comes out as "pun".
The platform already told the model to write Indian names in their own script inside English sentences, so the voice would read them as a local does. The model obeyed for a name it composed from a variable and ignored the rule for names copied from the knowledge base.
We've since extended the rule to copied names, and we count misses on live calls, because a prompt rule isn't a guarantee.
For travel, your destination list is a pronunciation test set. Before launch, have the chosen voice read your top destinations and airports in every language the agent speaks. Where it stumbles (try Phuket or Ljubljana), respell the name in your knowledge base and variables the way the voice says it right, or pick another voice. On Callaro you choose the voice per agent.
Times and time zones
What to say. Each agent's prompt carries today's date and the week ahead in the agent's configured time zone, not the traveller's. Don't ask the model to convert. Pass departure and arrival as variables written the way they should be spoken: "nine forty pm Singapore time, on Thursday the eighth".
When to call. Callaro's calling windows can run in each contact's local time. The zone comes from the contact record if one is set, then from the phone number when it maps to a single zone, then the country, then the campaign default. A traveller's number says where they live, not where they are, so for mid-trip calls set the zone on the contact from the itinerary.
What stays out of the agent's hands
- Entitlement decisions. Refunds, compensation, hotels and meals depend on jurisdiction and cause. In the US, for example, a refund is due when a flight is cancelled or significantly changed and the passenger declines the alternative (DOT). The agent repeats what your policy system returns for this booking and transfers the rest. It never estimates, and never steers someone to a voucher when a refund is on offer.
- Card numbers. A spoken card number lands in the recording and the transcript, and pulls both into PCI DSS scope. Have a tool send your payment link instead.
- Complex cases. Split parties, multi-carrier itineraries, groups, unaccompanied minors, special assistance and anyone in distress go to a person.
For the handoff, Callaro's transfer tool dials only numbers on the agent's allowlist, or a destination your routing endpoint supplies at transfer time. Transcript and transfer webhooks let your desk system show the conversation so far as the call arrives.
Then screen every call and sample by hand. A post-call analysis prompt with a yes-or-no answer ("did the agent state a refund or compensation entitlement that wasn't in a tool result?") can run on each call, or across a whole campaign. It's a model's judgement, so have a person review some flagged and some unflagged calls.
A worked example
A fictional evening flight is cancelled at five past four. The airline's system moves each passenger to a flight the next morning.
- Text and app notices go out. Twenty minutes later your system lists the bookings that haven't responded, and a campaign starts calling them, with concurrency capped below line capacity.
- One traveller doesn't answer, and the agent leaves a short voicemail. She calls back six minutes later. Callaro routes her to the campaign's agent, closes her task and cancels her queued retry.
- The pre-call lookup has fetched her booking as it stands. The agent says it's the airline's automated assistant and asks where she's flying to. Then it gives her the choice: keep the 7:10, take the 11:30, or have a refund.
- She takes the 11:30. The change tool runs with the booking reference bound by the server. Your system re-checks availability, reissues the ticket and returns the itinerary, and the agent confirms weekday, date and local time from that response.
- She asks about a hotel for the night. The policy response didn't cover one, so the agent doesn't guess. It transfers her, and the desk sees the transcript as the call lands.
What to measure
- Notification lead. Minutes from the change event to the first conversation or voicemail.
- Self-serve change rate. Disruption calls that ended in a confirmed change without a transfer.
- Unsupported entitlement statements. Flagged by the analysis prompt, confirmed by a person. The target is zero.
- Busy and abandoned inbound calls, against your last disruption of similar size. There's no control group on a day like this.
For a rough value model:
Net value = (inbound calls the agent resolved × staff minutes per call × your loaded staff rate) − (agent minutes × the platform's per-minute rate, plus telephony).
Count only calls that would otherwise have needed staff. Outbound calls to people who'd never have rung are reach, not savings. Use current pricing for the rate.
When voice AI is the wrong tool
- There's no API for options and changes. An agent that can only announce a cancellation and take a message adds a step on the worst day.
- You're a small, high-touch operator, and the owner's phone call is the product.
- The call is marketing dressed as service. A call about a booking the traveller made, to the number they gave for it, is the simpler consent case, though an AI voice still counts as an artificial voice under US rules. Offers and upsells face stricter rules in many markets, India's declaration rules for automated calls among them. Take legal advice for each market.
Pre-launch checklist
- A change event that triggers calls, each with an end, and voicemail set to leave a short message.
- A pre-call lookup by number, one caller-supplied detail before any change, and a loose search by name, date and destination.
- A change endpoint that re-checks availability, confirms ticketing and is safe to retry.
- Times and references passed as speakable variables, and your top destinations read aloud by the chosen voice.
- A transfer allowlist, an entitlement screen on every call, and campaign concurrency capped below line capacity.
Start small: one route or one kind of schedule change, this checklist, and a person listening to the first hundred calls. See how Callaro works for travel companies, or run your own numbers against current pricing.
Written by Callaro Team
Field notes from the team building Callaro's voice AI platform.
Frequently asked questions
Can an AI voice agent rebook passengers after a flight cancellation?+
Yes, for the simpler cases, provided it can read the options your reservation or policy system allows for that booking and make the change through an API. The agent offers those options, including a refund whenever one applies, your system re-checks availability and reissues the ticket, and the agent confirms from what the system returned. Split parties, multi-carrier itineraries, groups and special assistance should transfer to staff.
How does a voice agent identify a traveller without asking for a booking reference?+
By looking the caller up before it speaks. A pre-call request to your own API, keyed on the caller's number, returns the upcoming booking. A phone number isn't proof of identity, so the agent should still ask for one detail the caller supplies, such as the destination, before it discusses or changes anything. If the number doesn't match, ask for name, travel date and destination and let your system match loosely.
Should travel companies call or text passengers about a schedule change?+
Text and app notices first, then a call. Notifications with a self-serve link are fastest for travellers who act on them. Call the ones who haven't responded, who booked by phone or who are close to departure, and call when the change needs a choice between options. Give every call an end, so nobody is rung about a flight that has already left or a booking they have already changed.
Can an AI agent tell passengers what refund or compensation they are owed?+
Only by repeating what your policy system returns for that specific booking. Entitlements vary by jurisdiction and cause, so the agent should never estimate, and should never steer a passenger towards a voucher when a refund is on offer. Transfer anything the policy system didn't return, screen every transcript for unsupported entitlement statements, and have a person review a sample.
How do you stop a voice agent mispronouncing destination names?+
Test before launch: have the chosen voice read your top destinations and airports in each language the agent speaks. A voice applies its own letter-to-sound rules to whatever spelling it is given, so respell the names it gets wrong in your knowledge base and variables (for Indian names that can mean writing them in native script), or choose a different voice for that agent.
What happens to inbound calls while an outbound disruption campaign is running?+
It depends on the platform. On Callaro, inbound and outbound calls share the same line capacity, and a campaign doesn't reserve lines for callers who haven't rung yet, so cap the campaign's concurrency below your line capacity on disruption days. A traveller who calls back during an active campaign can be routed to that campaign's agent, and their queued retry is cancelled.
Related articles
Gemini Live retirement: what changes for voice agents on 17 November
Google retires the Gemini API's preview Live and TTS models on 17 November 2026. Swapping in Gemini 3.8 Live is a one-line change; its new defaults for tool calls, silence and TTS prompts are not. Here is what changes, which date applies on which surface, and how to re-test each agent.
Voice AI for BPOs and contact centers: sell outcomes, not seats
For a BPO, voice AI is a commercial decision before it's a technology one. Put the AI tier where clients get nothing today (overflow, after-hours, callbacks, quality review), price it on resolved outcomes, and work out your containment floor before you quote: a transferred call costs more than a human-only one, so break-even sits higher than most teams assume.
Omnichannel AI agents explained: test the seams, not the channel list
An omnichannel AI agent is one agent with one memory per customer, serving calls, WhatsApp, chat, SMS, RCS and email, and able to act across them mid-conversation. Every vendor now claims that, so the label tells you little. What separates platforms is the six seams where a journey crosses channels: identity, memory, action, events, people and consent. Here's what breaks at each, and how to test it.
See the platform run a real call.
Book a demo and we'll show you outcomes executed end-to-end.
Book a demo