When an AI agent cannot finish a customer’s request, it hands the conversation to a person. That moment decides whether the customer remembers the AI as helpful or as the thing that wasted five minutes. This piece is about what actually arrives on the human’s screen when that happens, why it is so often less than everyone thinks, and what each of the major contact center platforms gives you to work with.
What leaders say, and what customers say
In April this year, Five9 and Hanover Research surveyed contact center and CX decision-makers, and separately consumers, across the US, the UK and Germany. Nearly all of the decision-makers said their organization preserves context when the AI hands a customer to a person. And 83% of the consumers said they still have to repeat themselves, at least sometimes, after being transferred.
Five9 sells contact center software, handoff included, so read it as vendor research. Its own summary of the finding still ends on the right question: whether organizations are accurately measuring handoff success.
The two groups were asked different questions, so the numbers are not a gap you can subtract. They do not need to be. One side believes the handoff works. The other side keeps being asked for their date of birth.
In August, Gartner published a 2026 survey that shows why access to a human still matters. Of the 3,566 business and consumer customers it surveyed in February and March, 87% said it is essential for a company using generative AI in service to offer a way to reach a human. When Gartner asked the customers who were unwilling to use AI what would change their mind, the most common answer was being able to switch to a person if needed.
So the way out of the AI is part of what would make hesitant customers willing to use it at all. If that way out is rough, it undercuts the one thing those customers said would win them over.
One call, told plainly
Here is an illustrative call. It is not a client story, but most people who have worked in a contact center will recognise it.
A customer is travelling. Her card is declined at a hotel desk, so she calls her bank. The AI agent answers, verifies her with a one-time passcode to her registered phone, and asks what is wrong. She explains. The AI checks her recent transactions, confirms the card is on a fraud hold, and correctly works out that lifting a fraud hold is not something it is allowed to do.
So far, this is a good AI agent. It understood her, it checked, and it knew its limits.
It tells her it is transferring her to someone who can help. She waits. A person picks up and says: “Thanks for holding. Can I start with your full name and date of birth?”
From her side, the last three minutes did not happen.
From the bank’s side, the handoff worked. The transfer completed, and the call record shows the AI passed the customer ID and the transcript. Ask the CX leader whether their AI preserves context at handoff and they will say yes, and they will not be lying.
Sent, but not used
Here is one way both can be true at once. A leader can check whether the context was sent. A customer only experiences whether the person used it.
In between, four separate things have to go right, and each one can fail on its own:
- Did it arrive? The context reached the system the agent works in.
- Could the human see it? It showed up where the agent was looking, short enough to read.
- Was it there before they spoke? Context before connect: the card lands before the greeting, not after.
- Did they use it? The first thing they said showed they knew what had already happened.
A transfer log can answer the first question. The other three only show up on the agent’s screen and in the recording. Cresta’s own handoff guide makes the timing point as advice to its readers: the history, the details collected, what was tried and the reason for escalating “need to surface in the agent’s desktop before they connect with the customer, not after.”
Those four come apart in a few ordinary ways.
The summary arrives after the greeting. The details land in a screen pop (the panel that opens on the agent’s desktop when a call connects), but the agent is already talking, because in most of the contact centers I’ve worked with, agents are coached to answer quickly. By the time they glance at it, they have asked the question.
The summary is too long. Some teams pass the whole transcript. Nobody reads forty lines of conversation while a customer is waiting in silence.
The summary is somewhere else. It sits in a second tab, or in the CRM record, or in a Copilot panel the agent has collapsed because it was noisy yesterday.
And sometimes it is not there at all. Amazon’s troubleshooting table for escalations built with Amazon Connect’s Agentic CX designer has a row for exactly this: the agent receives no summary, and the likely cause it gives is a Set contact attributes step left out of the flow. It is a step your team has to remember, and an easy one to miss.
Then there is the plumbing, which is where my own background sits. Say a voice agent hosted in one vendor’s cloud hands a call to people working in another vendor’s contact center. In many cross-platform voice deployments, the call moves as a SIP transfer, often a SIP REFER (the signal that hands the call on) or a new outbound call leg. It lands in the ACD, the system that queues calls and routes them to a person. The context has to travel alongside it, and there are two usual ways to send it.
The first is to carry it inside the call itself, in the SIP User-to-User header (usually called UUI) or in custom SIP headers. For UUI the catch is size. The standard for passing UUI across older phone networks allows 128 bytes of user data. Genesys Cloud itself accepts far more where UUI is supported, but recommends keeping UUI to 128 characters or fewer, because some systems further down the line discard anything longer. That is an interoperability limit, not a Genesys one, and it is a small version of this whole article: what one system can send is not the same as what survives the trip. The same page says UUI is not available at all on Genesys Cloud Voice calls, and is unlikely to reach a station that is reached through the public phone network. Google’s contact center guide says much the same about forwarding a call over the public network: intent cannot ride along in the call metadata. Its recommended route is a SIP REFER over a bring-your-own-carrier connection, which can carry custom SIP headers.
For anything substantial, the header often carries a key rather than the whole story. The second way carries the story: the AI writes the full context to a store keyed by a correlation ID, and the agent desktop looks it up when the call arrives. I wrote about that plumbing, with a diagram, in why voice AI agents are harder than chatbots.
Every one of those paths can be working perfectly and the customer can still be asked for her date of birth. The data was sent, and nobody used it.
When to let go
There is a second failure that runs the other way: the AI holds on too long.
Gartner’s advice here is blunt: do not make AI a mandatory first step for every issue. When customers are forced through several unsuccessful AI attempts before they reach a person, they are less likely to use that tool again.
Four moments where the AI should let go, in my experience:
- The customer asks for a person. Always honour it.
- The AI is not allowed to do the next thing. Like the fraud hold in our call. That limit should be written down and enforced, which is the same idea as turning autonomy up one task at a time.
- It is going round in circles. How many failed attempts is too many depends on the task and how the flow is configured. What matters is that there is a limit, and the AI notices when it hits it.
- The customer is getting upset. In my experience, tone matters more on the phone than in chat, and pushing on through an angry caller often turns the next call into a complaint.
The first one hides a trade-off worth knowing about. On Salesforce Agentforce, by default, a request for a human skips the topic’s instructions, which Salesforce says prevents the agent “from collecting data or running tools before the handoff”. That is fast, and it is the right default for a customer who just wants a person. But it also means nothing new gets gathered for the human on the way out. Salesforce also describes a way to let a topic’s instructions hold the handoff until prerequisites are met, such as the customer providing an email address. Which one you want depends on how much you trust your summary.
What the person picking up needs
Three things, readable before they say a word. A transcript is the wrong shape for this.
- Who this is, and what they have already proved. Name, account, and how they were verified.
- What they want, in one line. In her words where possible.
- What has already been tried, and why it stopped. So the human does not repeat it.
For the engineers in the room, here is roughly what the AI should hand over for our call. The field names are illustrative, not any vendor’s schema.
handoff: customer_id: 'C-48213' verified: true verified_by: 'one-time passcode to registered mobile, 14:02' wants: 'Card declined abroad; needs it working today' tried: 'Confirmed last three transactions with customer' stopped_because: 'Card on fraud hold; lifting it needs a person' mood: 'Calm, short on time' summary: 'Travelling customer, verified, card blocked by fraud hold. Transactions confirmed as hers.'That will not fit in the 128 characters Genesys recommends for UUI, which is the point about headers earlier. A short key goes in the call, and the rest is looked up.
Now the uncomfortable part. Look at the second field.
Your fraud or security team may well require the person to verify the customer again after a transfer, whatever the AI did. They can have good reasons for that, and a handoff design that quietly overrides them is not a design I would sign off. So in our call, re-asking might be correct.
What is not correct is re-asking without saying why, and without using anything else the AI learned. Here is the difference in the first few seconds:
| What the human needs | What they often get | What the customer hears |
|---|---|---|
| Who she is and how she was verified | A customer ID, arriving after the greeting | "Can I start with your full name and date of birth?" |
| What she wants, in one line | A forty-line transcript in another tab | "And what can I help you with today?" |
| What was tried, and why it stopped | Nothing | "Let me just check your recent transactions." |
| The version that works | All three, readable at a glance before the agent speaks | "I can see your card was blocked abroad and you have already confirmed those transactions. For a fraud hold I have to check a couple of security details myself, then I can lift it." |
The last row still asks her to verify. She does not mind, because she can tell she was heard.
What each platform gives you at the handoff
Your teams may be on any of these platforms, so here is what each one publishes about the three things above. Where I could, I read their own documentation. Where the docs sit behind a login, or only a product page, blog or customer story says it, the table labels that as the vendor’s claim.
The first thing that sorts them is where the handoff crosses from one system into another.
If you run Amazon Connect, Genesys Cloud, Five9, NICE CXone, Google’s Customer Engagement Suite, Microsoft Dynamics 365 Contact Center, Salesforce Agentforce or Dialpad, and you use that same platform’s AI agent, the handoff can stay inside one system, and the context has a natural place to land. It still needs to be set up well, but you are configuring one product. Salesforce says the architecture point out loud. On its own voice telephony, it says the full call transcript and session context are preserved through transfers between AI and human. With third-party telephony, it warns, data “can become fragmented, or context can be lost, when an interaction is handed off.” Five9 says its Voice AI Agents support context-rich warm handoffs that carry full conversational context, though its public technical material says less about the field-by-field mechanism. I found no voice mechanism in Dialpad’s docs.
If you put a specialist AI agent such as Sierra, Parloa, Omilia or a standalone Cognigy in front of another vendor’s contact center, the handoff crosses from the AI platform into a separate contact center system. In my experience that is where context is easiest to lose, because each side can say, truthfully, that it did its part. The question to ask in that sale is simple: show me what our agent sees when your AI transfers a call into our Genesys, or Connect, or CXone. Not the architecture diagram. The agent’s screen.
Cresta sits in that second group, because the call itself runs through your existing contact center. It is a little different from the others there: it also sells Agent Assist for the human who picks up, so it can put the context on the receiving agent’s desktop as well as send it across.
| Platform | What reaches the human | How it travels | What triggers it | What it measures |
|---|---|---|---|---|
| Integrated contact-center platforms | ||||
| Amazon Connect (AI agents, Amazon Lex) | Whatever your builders put in the escalation. AWS shows a summary, intent, sentiment and reason as an example, not a default | Stored in Lex session attributes when the Escalate tool runs. Copying them to contact attributes for the screen pop, and showing them when the agent accepts, are steps you add | The model calls an Escalate tool, guided by instructions you write, or the flow reaches an Escalate step you placed | Escalation count and rate (the rate also counts "additional support"). Its context score covers handoffs between AI agents, not to a person |
| Genesys Cloud | When conversation summarization is turned on, an AI summary on escalation, shown beside the receiving agent's interaction panel (agents need permission to view it). The bot's collected values can be returned to the flow if you add them (Genesys advises keeping bot inputs and outputs under 1,000 bytes together) | Participant data you set, which can feed the agent script and a CRM screen pop. The summary can also be retrieved by API or workflow, for example into a CRM | When enabled, Genesys-maintained phrases that detect a wish to speak to an agent, plus business rules and repeated recognition failures | Separates flow transfers from customer-requested escalations |
| Five9 | Five9 says its Voice AI Agents support "context-rich warm handoffs" and that warm handoffs "carry full conversational context". Its FAQ describes a good handoff as carrying history, identity, intent and sentiment. Its public technical material is less explicit about the field-by-field mechanism. In its docs, an AI Summary step, in a beta edition of its studio docs, stores a summary and optionally the transcript | Call-attached variables, and SIP X-headers when a third-party AI agent is involved | The handoff rules I found in its docs are between AI sub-agents, not to a person | Transfer rate beside containment, and post-call checks you write in plain language |
| NICE CXone (with Cognigy) | Copilot for Agents generates a transfer summary when a bot or IVR hands over. On the Cognigy voice path the transcript goes to CXone's transcript service, and generating a summary from it is optional | Cognigy's signal and transcript APIs into CXone, shown in the Copilot panel | Cognigy: set intents, a count of wrong answers, a handover step, or an AI tool described in plain language. I found no trigger docs for native Mpower agents | Handover count and escalation rate |
| Google Cloud (Customer Engagement Suite) | A handoff signal with metadata you define; Dialogflow "doesn't impose any structure on this". In chat, the agent sees the conversation | Session details in custom SIP headers, via SIP REFER over a bring-your-own-carrier connection. Forwarding over the public phone network cannot carry intent | Wherever your builders set the signal; in Google's own contact center, it can escalate automatically at a knowledge limit or technical issue | Escalation rate, and escalations per intent |
| Microsoft (Dynamics 365 Contact Center) | The full bot transcript, plus context: last topic, recent phrases, conversation ID, your own variables, and an optional private note to the agent | Context variables into the engagement hub; the note travels in va_AgentMessage |
Customer asks, or the intent cannot be worked out; a transfer step you place; the model can choose handoff when asked | Escalation rate split by reason: customer request, too many attempts, business rule |
| Salesforce (Agentforce) | On Salesforce's own voice telephony, the full call transcript and session context are preserved through transfers. With third-party telephony, it warns context "can be lost" at handoff. In messaging, per its public setup guide on GitHub, the person joins the same session and sees the prior transcript | An Omni-Channel flow on the agent's outbound route; on its own voice telephony, one record for the whole call | A request for a person skips straight to handoff by default. A topic's instructions can instead hold the handoff until prerequisites are met. In that GitHub guide, a failed-attempt limit is written as instructions, not an enforced counter | Escalation rate, which also counts escalation to another AI agent |
| Dialpad | "Full conversation context carries forward", on its marketing page. Its docs confirm context passing for its Google integration | An event you can attach a workflow to for web chat. I found no voice mechanism in the docs I read | "I want to speak to an agent" escalates automatically; other conditions are written as guardrails | Escalated count and deflection rate |
| AI platforms handing off into another contact center | ||||
| Cresta | Cresta says it generates and displays summaries that give human agents "the context they need during AI Agent hand-offs and escalations", and "full context" after a handoff "from another human or AI agent". A scenario in its engineering blog shows a summary, customer context and suggested next actions arriving through Agent Assist. The exact fields and transport depend on the deployment | The call stays on your existing contact center. Its blog names Five9, Genesys Cloud CX, NICE CXone, Amazon Connect and others, over a SIP trunk, a PSTN transfer or native streaming. Five9's docs describe the Five9 side (SIP X-headers) | Per its guide: its own AI agent escalates on emotional cues or risk signals | Per its product page: escalation beside containment, resolution and customer outcomes |
| Sierra | Per its product pages: "a detailed summary" at handoff, and on voice, escalation "with full context and history" (vendor's claim). Its detailed docs sit behind a login | Its Agent Studio page cites "40+ pre-built integrations", contact centers among them, without naming which. I found no public page that names a contact center or a transport. One customer story names Amazon Connect and Salesforce | Per its blog: supervisor models that "can" escalate, and shifts in tone or sentiment | Per its blog: a monitor for what it calls "false transfers", and guidance that a low transfer rate is not an improvement if the agent continues when a person should take over |
| Parloa | Its marketing blog says authentication and conversation history are delivered at transfer through CRM updates, screen pops and escalation summaries (vendor's claim). Its product docs sit behind a login | Its integrations page names Avaya, Five9, Genesys, Microsoft Dynamics, NICE, Salesforce, ServiceNow, SAP, Twilio, Verint and Zendesk, and mentions "SIP standards", without a mechanism per platform. Its engineering blog says it carries a verified identity forward, citing the IVR-to-UUI pattern | Self-harm and threats of violence are mandatory triggers "in most deployments"; retry and verification limits | No published escalation rate or defined handoff metric found |
| Omilia | Key-value data you attach; the documented example carries intent, whether the caller is authenticated, and region. The setup screen labels it "for logging", so what the agent sees depends on the integration | For Genesys, UUI passed through on the trunk and a screen pop showing intent; for RingCX, a custom SIP header | Intent rules and errors. In its agentic applications, a cap on consecutive requests for a person (two by default) that ends the AI's turn, and escalation queues described in plain language | Transfers, explicit requests for a person, and transfers after some self-service was completed |
| Cognigy (standalone) | The transcript as the first message: on by default into Genesys messaging and CXone, off by default into Salesforce | Named handover connectors, including Genesys and Salesforce messaging and NICE CXone. For voice, a SIP REFER or a new outbound call with custom SIP headers; an optional UUI value for Cognigy's agent copilot, on the outbound-call type only | Set intents, a count of wrong answers, a handover step, or an AI tool described in plain language | Handover rate and containment. Two of its reports count repeat handovers differently |
A few things stand out once they sit side by side.
Genesys, with conversation summarization switched on, generates a summary when a Virtual Agent escalates and shows it beside the receiving agent’s interaction panel, so more of the escalation summary comes ready-made. Amazon Connect has handoff built in too, with an Escalate tool on its AI agents by default, and it gives you the flow steps to carry context to the agent. But more of what the agent finally sees, how the call is routed and what pops up on screen is left to your implementation. Neither approach is wrong, but they put the work in very different places, and a buyer should know which one they are signing up for.
If you build the AI agent yourself, handoff becomes an integration problem rather than a platform feature. Agent infrastructure such as Amazon Bedrock AgentCore can run the agent and support human-in-the-loop workflows, but your team still has to design how the conversation context, summary and escalation reason reach the contact center platform and the human agent. Those are two different patterns. In human-in-the-loop, the AI pauses, a person reviews, approves or adds input, and the AI may carry on. In a customer handoff, the AI stops owning the conversation and a contact center agent takes it over. This article is about the second.
Two of the specialists are harder to assess from outside. Parloa says plainly that authentication and conversation history are delivered at transfer, through CRM updates, screen pops and escalation summaries, and it names the platforms it integrates with. Sierra describes contextual handoffs and more than 40 integrations without naming the contact centers. Both keep their detailed docs behind a login. What neither shows in public is the vendor-by-vendor detail: how the handoff context is carried into, and shown in, each receiving contact center. Omilia and Cognigy publish much more of that implementation detail, which tells you about their documentation, not about which product is better. Sierra’s and Parloa’s handoffs may be perfectly good. You just cannot tell from outside, so ask to see it, on your own contact center, before you sign.
And the last column. Most of the platforms I checked count escalations. In what I read, I found no built-in measure of whether the person who picked up could use what arrived: whether they had to ask again, or whether the customer called back. Cresta and Sierra both publish guidance saying you should measure what happens after the handoff, such as repeat contact, and Sierra ships a monitor for what it calls “false transfers”, but neither documents such a measure built in. Amazon has a score for context quality, but it covers handoffs between AI agents, not to a person.
Which brings us back to the survey. If the dashboard only counts handoffs, it cannot tell a leader whether the context was used or only sent.
If you are still choosing a platform, my comparison of voice AI and IVA platforms for contact centers covers the wider question of who owns the conversation logic when it has to change.
How to tell a good handoff from a bad one
The rule I use is simple. Judge the handoff from the human’s side. If the person picking up asks for something the customer already said, without knowing the customer already said it, the handoff failed, whatever the logs say was passed.
Re-verification is a different thing. “I can see you already verified with our automated system. For this change I need to run one more security check” is a handoff that worked. The person knows what happened and says so.
You do not need a new platform to check that. Three things, in order of effort:
Listen to twenty recorded transfers. Yourself, not a sample report. Note the first thing the agent says. You will know within an hour whether the context is arriving, whether it is being read, and whether it is useful.
Check whether the same customer called back. A customer who calls again within a day or two about the same issue is a useful signal that the first interaction may not have resolved it, however smooth the transfer looked. This connects directly to measuring resolution rather than deflection.
Ask your agents. They know exactly which summaries they trust and which ones they have learned to ignore. That knowledge rarely reaches a dashboard.
Then fix the thing the recordings point to. In my experience, the failure is often not the AI itself. It is where the summary shows up, how long it is, or a step someone left out of the flow.
That leaves the question from our call, and I do not have a clean answer to it. If your bank requires a person to verify a customer the AI has already verified, the customer will be asked twice. You can make that feel respectful instead of careless, by saying why and using everything else you know. I have very rarely seen a team that has worked out when the AI’s verification could be trusted enough to skip the second one, and who in the bank gets to decide that. That is a conversation between CX, fraud and security, and few of the organizations I have seen have had it yet.
The design principles behind that kind of decision, what an agent is allowed to do and how you prove it, are the subject of Designing Enterprise Agentic AI Systems.
If you want help getting the handoff right on your own platform, including what the human sees, how the context travels and what to measure, that is part of the voice AI development work I do.
Frequently asked
Quick answers
- What is an AI-to-human handoff in a contact center?
- It is the moment an AI voice or chat agent passes a customer to a person because it cannot, or should not, finish the request itself. A good handoff carries what the AI learned: who the customer is and how they were verified, what they want, and what has already been tried. A poor one connects the call and leaves the person to start again, which is how customers end up repeating themselves.
- How does context travel with a transferred call?
- There are two usual ways. A small amount can ride inside the call, in the SIP User-to-User (UUI) header or in custom SIP headers, but size is tight: Genesys recommends keeping UUI to 128 characters or fewer, and Genesys says UUI is unlikely to reach a phone that is reached through the public phone network. The fuller context goes through a side channel, where the AI stores it under a correlation ID and the agent desktop looks it up when the call arrives. Contact center platforms also have their own carriers, such as contact attributes in Amazon Connect and participant data in Genesys Cloud.
- Should a human agent verify a customer again after the AI already verified them?
- Sometimes, yes. Your fraud or security policy may require the person to check identity again, and a handoff design should not quietly override that. What makes it feel careless is re-asking without saying why and without using anything else the AI learned. Tell the customer why the check is needed, show that you already know what they want, and the second check stops feeling like starting over.