The demo call always goes well. Someone dials the number, the agent picks up on the second ring, understands the question, checks the calendar, books the slot, hangs up clean. Everyone in the room nods. Automated phone calling — an AI system that answers or places phone calls, transcribes speech in real time, decides what to say next, and speaks the reply back through synthesized voice — is what got demoed.

What ships is the same stack pointed at real callers: background noise, regional accents, people who talk over the agent, people who hang up mid-sentence, people who say things nobody scripted for. Ninety days in, the transcripts tell a very different story than the sales deck did.

This isn’t a piece about which vendor to buy or how to wire up the telephony stack — both are covered elsewhere on the blog. If your business runs mostly through your website, a text-first tool like AI Chat Agent sidesteps most of what follows by design — no audio, no real-time pressure, exact transcripts by default. Pulling calls off the phone is its own operational problem, but a much smaller one. This one starts after automated phone calling is already live and taking real calls, and it’s about what actually breaks, plus how to measure — honestly, with numbers you can defend — whether it’s still working.

None of this is an argument against automated phone calling. It’s a field guide to the failure modes that don’t show up in a demo, and the metrics that tell you the truth about a deployment instead of the one number vendors like to print on a slide.

What Automated Phone Calling Actually Means in Production

Strip away the marketing and automated phone calling is a loop: speech-to-text turns the caller’s audio into text, a language model decides what that means and what to say back, text-to-speech turns the reply into audio, and an orchestration layer decides who’s allowed to talk when. Buy that loop as a hosted platform and you get an artificial intelligence phone number wired to someone else’s infrastructure; build it yourself and you own every hop and every failure mode. We cover the buy-vs-build cost breakdown in our AI phone number guide and the build mechanics, model choices, and latency budget in the self-hosted AI call bot piece. Neither is this article’s job.

The gap that matters is between a scripted demo path and an unconstrained live caller. A demo call follows a happy path someone wrote and rehearsed: clean audio, a cooperative caller, a question the call agent was built to answer. A production AI call agent gets none of those guarantees. Callers talk over each other, call from a car with the window down, give a phone number digit by digit with pauses in the wrong places, or ask something three steps outside the intended scope in the first ten seconds. A call agent that handled the demo script flawlessly can fail on turn one of a real call — not because the model got worse, but because the input distribution changed the moment strangers started dialing in. Strangers are also why AI caller identity verification belongs in the design from day one rather than after the first data-leak incident. The same distribution shift is what makes inbound call routing harder in production than any demo suggests.

DEMO: one rehearsed pathPRODUCTION: unbounded fan-outGreetingIntentActionDoneCall StartBackground noiseRegional accentInterruptionOff-scope questionEarly hangup
The gap between a rehearsed demo path and an unconstrained production call

The Demo-to-Production Gap

Automated phone calling systems that pass an evaluation set fail live for reasons that have nothing to do with the model’s raw capability. Four causes show up over and over.

Concurrent load is the first. A demo is one call at a time with a warm cache and no queueing. Production is fifteen calls hitting the same speech-to-text worker pool at once, and latency that looked fine in testing creeps toward the point where callers start talking over silence. Unseen inputs are the second, and the bigger one: no eval set covers the actual tail of what people ask a phone line. Someone will ask about a policy that changed last week, mention a product that doesn’t exist, or answer a yes/no question with a rambling story — and the agent has to do something reasonable with all of it, not just the paths someone thought to test.

Model drift is the third, and it’s the one teams forget to watch for because nothing about their own system changed. The underlying LLM or STT provider ships an update, and the agent’s behavior shifts under a prompt that used to be reliable. The fourth is observability, or the lack of it. A web app throws an error and it’s in the logs. A phone call goes sideways and, unless someone built call-specific monitoring on purpose, nobody finds out until a customer complains.

Gartner has predicted that a large share of agentic-AI projects — reportedly around 40% — will be scrapped by 2027. That’s a forward-looking estimate, not a measured outcome, but it lines up with what teams describe after launch: the plumbing works fine, and the judgment doesn’t generalize to everything a live phone line throws at it.

Latency and Turn-Taking

Voice has a timing budget that text doesn’t. Vendor engineering blogs — Telnyx and Hamming among them — converge on a rough shape: around 600ms end-to-end is the commonly cited target for a response that feels immediate, roughly 800ms is where the pause becomes perceptible to the caller, and past about 1,500ms the exchange stops feeling like a conversation and starts feeling like a broken connection. These are vendor benchmarks, not peer-reviewed measurements, so treat the exact numbers as directional rather than gospel — but the ordering holds up in practice.

The reason latency is so unforgiving on a call agent is that it compounds. Speech-to-text has to wait for enough audio to transcribe confidently. The LLM has to generate a response, and that generation time scales with how much reasoning the turn requires. Text-to-speech has to render audio, and if it’s not streaming, the caller waits for the whole clip. Add network hops between each service and a few hundred milliseconds of “acceptable” latency at each layer adds up to a caller-perceived delay well past the point where people start repeating themselves or hanging up.

Latency Budget: How Each Layer Compounds600ms · Target800ms · Perceptible1500ms · BrokenSTT 350msLLM 600msTTS 400msNet 300ms0ms~1650msTotal: about 1650ms of accumulated latency — past the 1500ms break point
How STT, LLM, TTS, and network hops compound past the perceptible and broken thresholds

Barge-in and interruption recovery show up as a leading failure point in vendor post-mortems of large call volumes, and it’s easy to see why. A caller interrupting the agent mid-sentence is normal human conversation, not an edge case. If the system doesn’t cleanly detect the interruption, cut its own audio, and pick up the caller’s new input, it either talks over them or drops what they just said. Either failure reads to the caller as “this thing isn’t listening,” and that impression, once formed, doesn’t recover for the rest of the call.

Speech Recognition Collapse on Real Calls

Speech-to-text accuracy is where the gap between lab numbers and phone-call reality is widest. Lab word-error rates on clean audio commonly stay under roughly 5%. Vendor reports consistently describe that climbing into the 10–15% range once you add realistic call-center background noise, and a 10–25% accuracy drop from lab to production shows up across multiple vendor writeups — not a one-off, a pattern. That error rate doesn’t stay on the call, either: it sets the floor for call transcript analysis afterwards, because every summary and QA score downstream reads the same flawed text.

Part of that is the phone network itself. Most inbound PSTN traffic still arrives over G.711 at 8kHz narrowband, not the 16kHz wideband audio most speech models were benchmarked on — a real bandwidth penalty baked into the phone system, before the caller even opens their mouth. Add a regional accent the model wasn’t tuned on, or a caller in a parking lot with traffic noise, and error rates climb further. Then there’s the content itself: spelled-out email addresses, alphanumeric order numbers, postcodes with letters and digits mixed — an AI caller has to get every character right on a string like “J-4-K-9-2-Q” spoken once, with no way to show the caller what it heard and ask “did I get that right?” the way a chat interface does with a visible message.

Word Error Rate: Lab vs Real CallsPhone Audio Bandwidth0%5%10%15%20%~5%Lab / clean audio10–15%Call-center noiseVendor-reported ranges, not exact measurementsG.711 · 8kHz16kHz widebandPhone calls run narrowband;STT models train wideband
Word error rate climbs sharply outside lab conditions, on audio that’s narrower to begin with

AssemblyAI’s survey of voice-agent builders found that accuracy problems, not conversation logic, accounted for roughly half of reported production issues. That’s worth sitting with — teams spend most of their design effort on the prompt and the conversation flow, and the thing that actually breaks the call is the system mishearing “fifteen” as “fifty.”

Hallucinated Commitments

The failure mode that does the most quiet damage is the agent that sounds like it did its job. A caller asks for a callback, a refund, or a rebooked appointment. The AI call agent responds warmly and specifically — “you’re all set, someone will call you back Thursday” — and the call ends logged as handled. Nothing was actually written to the calendar, the CRM, or the ticketing system. The commitment existed only in the transcript. Getting the writeback into the CRM right is a separate engineering problem from getting the conversation right.

This is different from the agent being wrong about a fact. A wrong fact is embarrassing, and it usually traces back to the retrieval layer — why AI call agents hallucinate is a separate problem with a separate fix. A hallucinated commitment is a broken promise the business doesn’t know it made, discovered only when the caller follows up and nobody has any record of what they were told. It’s also structurally hard to catch from the outside, because the call metrics look clean: connected, handled, no transfer, no complaint logged during the call itself.

The way teams catch it is unglamorous. Sample a batch of transcripts every week — not just the ones flagged as problems — and read them against what the underlying system of record shows.

Did the calendar entry get created. Did the refund get issued. Did the ticket get opened. Any call where the transcript promises something the system of record doesn’t reflect is a hallucinated commitment, and the rate at which that happens is a number worth tracking on its own, separate from every other quality metric.

Silent Failures in Automated Phone Calling

A connected call is not the same thing as a working customer journey, and the gap between those two things is where the ugliest failures hide. A caller who hangs up two minutes into a frustrating exchange still shows up in the logs as a completed, connected call — nothing distinguishes it from a call that resolved something, unless someone is looking for early hangups.

The warm-transfer trap is the sharpest version of this. The agent decides a human needs to take over, dials the transfer, and something in the chain goes wrong: the transfer target’s voicemail greeting gets misclassified as a live human answering, or the transfer tool itself returns a failure the orchestration layer doesn’t check for. Either way, the AI call bot never resumes on the caller’s leg of the call, and the caller sits on hold music until they give up and hang up. The call log shows a transfer attempt. It does not show that the customer waited four minutes for nobody.

The Warm-Transfer TrapAgent decides to transferDials the transfer targetVoicemail greeting misclassified as live humanTransfer tool returns a failureCall log stops reflecting reality hereAgent never resumes on the caller’s legCaller sits on hold musicCaller hangs upDead end: no resolution logged, no alert fired
The warm-transfer trap: the point where a real failure stops showing up anywhere

Outbound automated phone calling has its own version of this trap — a diagnostic problem as much as a technical one. Voicemail and answering-machine detection has to decide, from the first second of audio, whether it’s talking to a person or a recording — get that wrong and the AI caller either talks over a greeting or waits silently for a live person who was there the whole time. DTMF — the touch-tone keypresses used for menu navigation and identity verification — fails in its own way: a tone that doesn’t register, or registers late, looks to whoever’s debugging it like the agent “didn’t understand” the caller, and gets misdiagnosed as a prompt problem when the actual bug is in the audio signal path, nowhere near the language model. We go deeper on outbound-specific failure modes and the compliance requirements that come with them in our outbound calling piece.

Containment vs. Deflection vs. Resolution

This is the section that decides whether a report on automated phone calling means anything. Three metrics get used almost interchangeably in vendor decks, and they measure three different things.

Containment rate is the share of calls the AI handles start to finish without any human stepping in: calls completed with zero human involvement / total calls routed to the AI. Call deflection is the share of contacts that never reach a live-agent queue at all: calls that never touch a human queue / total inbound contacts. Resolution rate is the one that actually matters to the business and the one nobody can compute automatically: calls where the caller’s actual issue got solved / total calls, regardless of who or what handled it.

Deflection is the easiest of the three to measure and therefore the one most often reported on its own. It’s also the easiest to game, deliberately or not: an agent that stonewalls, loops, or gives a vague non-answer still counts as a deflected call as long as the caller never gets routed to a human. High deflection paired with low resolution isn’t success — it’s an unsolved problem wearing a success metric. The honest computation requires a resolution proxy, because “was this actually solved” isn’t something a call log tells you on its own. Sample transcripts against the system of record the way you would for hallucinated commitments, or track repeat-contact rate: the same caller calling back about the same issue within a set window is a strong signal the first call didn’t resolve anything, whatever the deflection log says.

You’ll see 25–40% call deflection cited as a “strong” benchmark in vendor material. Treat that number as close to meaningless on its own. A deployment sitting at 35% deflection and 90% resolution is doing real work. A deployment sitting at 35% deflection and 40% resolution is quietly generating callbacks, complaints, and churn while the deflection chart looks great in the board deck.

MetricFormulaWhat It Actually Tells YouWhy It’s Easy to Game
Containment rateCalls with zero human involvement / total AI-routed callsHow often the AI finishes the call aloneCounts abandoned and stalled calls as “contained” too
Call deflectionCalls never reaching a human queue / total inbound contactsHow much load is kept off human agentsA stonewalled or looping caller still counts as deflected
Resolution rateCalls that actually solved the caller’s issue / total callsWhether the call was worth answering at allRequires manual sampling — no system computes it for you automatically
Deflection, Containment, Resolution: Not the Same ThingDeflectionContainmentResolutionDeflection — widest, cheapest to measureContainment — narrower, still not resolutionResolution — smallest, the only one that means solvedSame 35% Deflection, Two OutcomesHealthy35% deflection + 90% resolutionReal work is getting doneBroken35% deflection + 40% resolutionSame chart, quiet failure underneath
Deflection, containment, and resolution measure different things — only one means solved

Escalation Paths That Actually Work

An escalation isn’t a failure of the AI call agent. Refusing to build one, or building one badly, is the actual failure. A handoff that works has three properties. First, the human who picks up gets the context, not a re-run of the greeting — what the caller asked for, what’s already been tried, any account or order details already collected. Making the caller repeat everything they just said is the single fastest way to turn an annoying call into a genuinely bad one.

Second, the transfer has to confirm it actually landed. That sounds obvious until you’ve read the transcripts in the silent-failures section above — a transfer attempt is not the same thing as a completed transfer, and the system needs to know the difference before it tells the caller “you’re being connected now.”

Third, and most often skipped: what happens when no human is available. “Hold” with no time estimate and no exit is how you get the abandoned-call pattern described earlier. A working fallback offers something concrete instead — a callback slot, a ticket number the caller can reference, an SMS confirmation of what was discussed. None of that requires a human to be standing by right now. It requires the system to admit, out loud, that it’s out of options for this call, rather than parking the caller in silence and hoping.

Building a Monitoring and QA Routine for Automated Phone Calling

Everything above is invisible without a routine that goes looking for it. A workable one doesn’t need to be elaborate, but it needs to run every week, not once at launch.

Start with transcript sampling: pull a random batch weekly, not just the calls someone flagged, because the calls nobody flags are exactly where hallucinated commitments and silent failures hide. Score each one against a short checklist — did the call resolve the stated reason for calling, did any promise get made that isn’t reflected in the system of record, did an escalation happen cleanly if one was needed, did the agent stay within scope or wander into commitments it shouldn’t make. The same scoring discipline applies before launch, when you’re still evaluating an AI agent against a test set.

Set alerting on two operational rates most teams don’t watch by default: abandonment rate — calls where the caller hangs up before any resolution — and transfer-failure rate, calls where a warm transfer was attempted and didn’t land. Both are cheap to compute from call metadata and both catch problems long before a customer complaint does.

Watch cost drift separately from quality. Per-minute burn creeps up quietly from retry loops — an agent that mishears something and asks the same question three times is burning telephony and LLM minutes on a call that should’ve taken thirty seconds — and from long calls where the agent keeps a caller on the line without making progress. A cost spike is often the earliest external signal that something upstream broke, well before it shows up as a quality complaint.

Monitoring & QA: The Weekly Operations LoopWEEKLYQA LOOPSample transcripts1Score againstchecklist2Reconcile promisesvs system of record3Alert: abandonment+ transfer-failure4Watch cost drift5
A minimal weekly routine for catching what the call log won’t show you

When the Channel Itself Is the Problem

Most of what breaks in automated phone calling isn’t a vendor problem or a prompt problem. It’s intrinsic to voice as a channel: real-time with no scrollback, lossy transcription standing between the caller and the system, no copy-paste for an order number, no way for the caller to see what the agent heard and correct it before it acts. None of that goes away with a better model. It’s the nature of turning speech into text and back again, live, on a phone line.

For a web-first business, the fix for a meaningful slice of this isn’t a better AI caller — it’s moving the deflectable share of contacts to text before they ever become a phone call. A text-first channel deletes the failure classes covered in this article by construction: no STT error, because there’s no speech to mistranscribe; no barge-in problem, because there’s no turn-taking clock running; no lossy transcript, because the transcript is the actual conversation, not someone’s best guess at it.

AI Chat Agent, for example, keeps full conversation history in the admin panel with per-conversation detail, and exports it to CSV. It doesn’t compute containment or resolution rate for you — its built-in analytics stop at session and message counts, ratings, and average session length.

Most hosted support platforms report a resolution number out of the box; Intercom even bills Fin per resolution. The catch is that it’s their definition, computed inside a system you can’t inspect. With exportable raw transcripts you define the metric yourself and audit every call that fed into it — which is what you can’t do reliably from a lossy call recording. We compare this approach against a voice-first competitor in our Voiceflow comparison, and go deeper on the answering-service economics specifically in this piece on AI answering services.

None of this makes voice the wrong choice everywhere — it’s honestly the right one in a lot of cases. Clinics and trades where hands are busy and eyes are on a task. Restaurants during a dinner rush where nobody’s opening a chat window. Drivers mid-commute.

Elderly or low-literacy callers who are faster and more comfortable talking than typing. Crisis or safety-critical calls, which need a human on the line immediately, not a routing decision from any automated system. The honest question isn’t “voice or text” in the abstract. It’s which of your call volume needs real-time spoken back-and-forth, and which of it was only a phone call because there was no other option on the table.

If you’re running automated phone calling in production and want to see what a text-first alternative looks like for the deflectable share of your volume, the AI Chat Agent demo is open to try, and the source ships as a one-time €79 purchase at the checkout page — no per-minute meter running while you figure out if it’s the right fit.

Frequently Asked Questions

Why does my AI phone agent work in testing but fail in production?

A demo is one call at a time on a rehearsed path: clean audio, a cooperative caller, a question the agent was built to answer. Production adds concurrent load, background noise, questions three steps outside the intended scope, and model drift when your LLM or speech-to-text provider ships an update under a prompt that used to be reliable. The plumbing usually works fine — the judgment doesn’t generalize to everything a live phone line throws at it.

How do I know if my AI call agent is solving problems or just deflecting calls?

Deflection only measures whether a caller avoided a human queue, so an agent that stonewalls, loops, or gives a vague non-answer still scores as a success. Check it against a resolution proxy: sample transcripts against your system of record, and track repeat-contact rate. The same caller calling back about the same issue within a set window is a strong signal the first call resolved nothing, whatever the deflection log says.

What is a realistic containment rate for an AI phone agent, and what should I measure?

There is no honest single number, and the figure most often quoted is not even containment — vendor material commonly cites 25–40% call deflection as a strong benchmark, which measures something different and is close to meaningless on its own. Track three separate numbers: containment (calls finished with zero human involvement), deflection (calls that never reach a human queue), and resolution (the caller’s actual issue got solved). Only resolution tells you the call was worth answering, and no system computes it for you automatically.

Why does my AI phone agent struggle with accents, background noise, and spelled-out numbers?

Most inbound PSTN traffic still arrives over G.711 at 8kHz narrowband, while speech models are generally benchmarked on 16kHz wideband audio — a bandwidth penalty baked into the phone network before the caller says a word. Vendor reports describe word error rates climbing from roughly 5% on clean lab audio into the 10–15% range with realistic call-center noise, and an untuned regional accent pushes it further. Spelled-out order numbers and email addresses are the worst case: the agent gets one pass at every character, with no screen to show the caller what it heard.

How do I audit whether my AI phone agent is hallucinating commitments?

Sample a random batch of transcripts every week — not just the calls someone flagged — and read every promise in them against what the system of record shows. Did the calendar entry get created, did the refund get issued, did the ticket get opened. Track the rate of promises with no matching record as a metric of its own, because these calls look clean in the call log: connected, handled, no transfer, no complaint.

What happens when an AI call agent tries to transfer to a human?

When it works, the human who picks up gets the context already collected and the system confirms the transfer actually landed before telling the caller they’re being connected. When it fails, a voicemail greeting gets misclassified as a live human or the transfer tool returns an error nobody checks, the agent never resumes on the caller’s leg, and the caller sits on hold until they give up — while the log shows only that a transfer was attempted. Alert on transfer-failure rate, and give the agent a concrete fallback for when no human is available: a callback slot, a ticket number, an SMS confirmation.