Faster, Lower-Cost Pharmaceutical AI Voice Agent

A Faster, Lower-Cost AI Voice Agent for Pharmaceutical Patient Support
Impekable audited and rebuilt a pharmaceutical AI voice agent for a contact center solutions provider that runs patient support programs for large pharmaceutical brands. The agent was live, slow, expensive, and routing patients to a phone number nobody had approved. The rebuild replaced model-driven routing with a deterministic transfer matrix, added keypad (DTMF) input, and cut response time 3.68x and LLM cost per minute 8.49x.
Client Overview
Our client is an established contact center solutions provider specializing in pharmaceutical hub services. Its core offering is AI-driven support for patient programs: copay card enrollment, free trial offer activation, insurance eligibility checks, and transfer routing to live agents when needed.
The client serves large pharmaceutical brands, sitting between each brand's program requirements and the patient on the phone. Its platform handles inbound calls across multiple channels, with AI voice as the primary patient-facing interface.
When the client came to Impekable, it had an AI voice agent already in production, running live calls, with problems it hadn't been able to fix.
The Industry Context: AI in Pharmaceutical Patient Support
Pharmaceutical companies have run patient support programs for years: copay assistance lines, free trial enrollments, insurance eligibility checks. These programs reduce the cost barrier between a patient and their medication. They handle sensitive calls from real people navigating real health situations, and increasingly, they run on AI.
The move to pharmaceutical contact center automation made sense. Automate routine data collection, reduce agent load, and extend availability beyond business hours.
Organizations deploying AI voice agents in regulated environments keep hitting the same cluster of problems. Response times are slow enough to feel broken. Costs scale badly as call volume grows. And agents built on general-purpose language models generate outputs nobody approved. In a regulated pharmaceutical program, that isn't a UX problem. It's a compliance and patient safety problem.
A 2026 PHARMAPHORUM REPORT described AI hallucinations in healthcare and pharmaceutical settings as "enterprise-level liabilities, not rare edge cases." An AI chatbot suggesting the wrong restaurant is annoying. An AI voice agent sending a patient to an unauthorized phone number in a drug copay program is a different problem entirely.
Many operators adopted AI voice tools early and built systems that handled simple intents well. Then they discovered those systems weren't built for the edge cases, compliance-specific routing, and ongoing guardrail requirements a live pharmaceutical program demands. That's what Impekable walked into.
The Problem
When Impekable came in for the audit, four problems were on the table.
The AI was routing callers to an unauthorized phone number. The agent sent real patients to a destination nobody approved and nobody programmed. In a regulated pharmaceutical support program, that isn't a technical glitch. It's an AI voice agent compliance incident.
The agent was too slow. Average response time was nearly 3 seconds per turn, and over 6 seconds at the 95th percentile. On a live call, that silence reads as a dropped line. Callers hung up.
The cost didn't scale. The LLM powering the agent ran at $0.45 per minute of call time. At significant call volume, that compounds into a serious operational problem fast.
The agent couldn't accept keypad input. Every numerical data point (date of birth, zip code, card ID) had to be captured by voice recognition alone. There is room for mistakes compared to Keypad (DTMF). Callers who pressed a key got nothing back.
Before We Started
The agent was live. It was also costly, slow, and uncontrolled:
No routing controls. The model generated an unapproved transfer destination on its own and acted on it. The incidents were found through audit log review.
No keypad support. A program that routinely collects dates of birth, zip codes, and card IDs relied entirely on voice recognition.
Messy transfer logic. A generic "anything else?" prompt sent callers to live agents unnecessarily, and ineligible callers, whether disqualified for commercial or government insurance reasons, all landed on the same line.
Guardrails as documentation. The guardrails document was on its eighth version, each adding rules to an agent architecture that wasn't built to enforce them.
Everything in this case study was built from that starting point.
Why This Was Hard
Reading through the changes, it might not sound complicated. It was.
A live pharmaceutical AI program isn't about technical novelty. It's about the combination of regulatory specificity, live-call stakes, and the unpredictability of a language model operating somewhere with zero tolerance for unauthorized outputs.
Every script change needs approval. Every routing change needs validation. The agent can't improve gradually the way a consumer product might. It has to be right from the first call, because the person on the other end may be confused, stressed, or dealing with something medically significant.
The hallucination problem is the clearest example. Finding it wasn't hard, since audit logs showed the unauthorized transfers. The hard part was understanding why the model generated that destination, then building a constraint architecture that structurally prevents it without breaking anything else in the call flow. That meant thinking carefully about how LLMs process routing instructions and where probabilistic outputs slip through rules that look deterministic on the surface.
DTMF looks simple until you're handling fallback logic, input validation across input methods, confirmation loops, and callers who start pressing keys mid-sentence. Every branch point needs a decision, and every decision needs sign-off.
What We Built for the Pharmaceutical AI Voice Agent
Impekable rebuilt the agent from the architecture down.
A Deterministic Transfer Matrix
We replaced the LLM's probabilistic routing decisions with a hard-coded, deterministic transfer matrix. The agent can only send callers to explicitly approved destinations. The model doesn't make the routing call. The system does, based on rules that don't change. There is no path to anywhere else, and that's the only reliable way to close this kind of risk.
A Leaner Model Configuration
We redesigned the agent on a leaner model configuration with tighter prompts and a more constrained decision surface. Less work per turn means faster turns and lower cost per minute:
Average response time dropped from 2,756 ms to 748 ms.
95th percentile response time dropped from 6,274 ms to 1,317 ms.
LLM cost per minute dropped from $0.45 to $0.05, an 8.49x reduction.
Total per-call cost dropped from $1.49 to $0.65.
Full DTMF Integration
Every numerical collection point in the call flow (date of birth, zip code, card ID, phone number) now accepts voice or keypad input. Every prompt was rewritten to say "please say or enter," so callers know the option exists. If keypad input fails or doesn't register, the agent automatically asks the caller to say it instead. Nobody gets stuck.
Cleaner Routing Logic
Ineligibility routing now splits by reason: commercial insurance disqualifications go to one line, and government insurance disqualifications go to another. The redundant "anything else?" prompt that generated unnecessary transfers is gone. We also added direct guidance for copay card activation and Full Distribution Only program assistance, two needs the previous agent couldn't handle at all.
Layered Guardrails
Across eight versions of iteration, the guardrails grew to include tighter scripts, edge case handling, a duplicate-check API call before every enrollment attempt, under-18 routing logic, barge-in restrictions on compliance-critical disclosures, and confirmation loops where the agent reads collected information back to the caller before moving forward.
Results
In the first head-to-head test, the Impekable-built agent was faster, cheaper, and made zero unauthorized transfers.
Metric | Previous Agent | Impekable-Built Agent | Improvement |
Average response time | 2,756 ms | 748 ms | 3.68x faster |
Response time (p95) | 6,274 ms | 1,317 ms | 4.76x faster |
LLM cost per minute | $0.452 | $0.053 | 8.49x cheaper |
Total call cost | $1.49 | $0.65 | 2.28x cheaper |
Unauthorized transfers | 23 confirmed | 0 | Contained |
The new agent also ran a longer, more complete conversation (47 turns versus 36) while still being faster and cheaper. Speed and thoroughness don't usually point in the same direction. Here they did, because the problem was never conversation length. It was how much work the model was doing per turn.
Why It Matters at Scale
A program spending roughly $450 per thousand minutes of call time is now spending around $53. For a contact center running thousands of pharmaceutical support calls a month, the rebuild also reduces agent escalation volume and stops abandonment from callers who hit a 6-second silence and assume the system is broken.
The routing fix is a different kind of win. It wasn't a performance problem. It was a program integrity problem. An AI routing patients to an unauthorized number inside a copay support program is the kind of incident that triggers audits, damages the relationship with the pharma brand, and raises the question of whether AI should run the program at all. The fix wasn't a patch. It was an architecture where it can't happen again.
The DTMF integration matters most to callers. Some are elderly. Some call from loud places. Some find it easier to press a key than say their date of birth out loud. That isn't a feature add. It's accessibility.
Client Wins
Compliance exposure closed. Unauthorized transfers went from 23 confirmed incidents to zero. Routing now runs on a deterministic transfer matrix, so the agent has no path to an unapproved number.
Call costs are cut by more than half. Total cost per call dropped from $1.49 to $0.65, and LLM cost per minute fell from $0.452 to $0.053. The program can now grow call volume without costs growing at the old rate.
Callers stopped hearing dead air. Average response time fell to 748 ms, and 95% of responses now arrive within 1.3 seconds. The 6-second pauses that made callers think the line had dropped are gone.
More accurate data capture. Every numerical field (date of birth, zip code, card ID, phone number) now accepts keypad or voice input, with automatic fallback to voice if keypad entry fails.
Fewer unnecessary escalations. Removing the generic "anything else?" prompt and splitting ineligible callers by commercial vs. government insurance means live agents only get calls that need them, routed to the right line.
New program needs covered. The agent now handles copay card activation and Full Distribution Only program assistance, two requests the previous agent couldn't support.
A foundation built for expansion. New use cases now go through a repeatable process (requirements, guardrail rules, validation testing, sign-off) instead of another round of patches.
What We Learned
Guardrails need to be architecture, not documentation. The guardrails document reached eight versions because every new problem got a new rule on top of a system that couldn't enforce rules structurally. The underlying model still had room to generate outputs outside the approved space. The hallucination wasn't a failure of the document. It was a failure of the system to enforce what the document said.
Input assumptions are design decisions. Assuming callers will speak their information because the AI understands speech is an assumption, not a design choice. DTMF has been standard in traditional IVR systems for decades. Leaving it out of an AI voice agent doesn't simplify anything. It takes away something callers expect.
Production means closing every edge case. Eight guardrail versions isn't a sign something went wrong. It's a sign the team kept going until the edge cases were closed: under-18 routing, duplicate enrollment checks, barge-in restrictions on compliance disclosures, after-hours scripting. A demo that handles the happy path isn't the same as a production agent that handles everything.
What's Next
Continually work on implementing use case and new for the agents. Every new capability goes through the same process: requirements, guardrail rules, validation testing, and sign-off.
The architecture is in place, and building on it is now faster than it would have been before, because the foundation was built to handle growth.
Glossary
IVR (Interactive Voice Response): The automated phone system that answers when you call a support line. Modern IVR systems use AI to understand natural speech instead of forcing callers through rigid numbered menus.
DTMF (Dual-Tone Multi-Frequency): The signal your phone produces when you press a number key. Each key generates a unique pair of tones that automated systems can detect, so callers can enter a zip code or card number on the keypad instead of saying it aloud.
AI hallucination: When an AI generates a confident output that has no basis in its instructions or approved data. In a voice agent, that can mean inventing information or routing a caller to a phone number that was never authorized.
Transfer matrix: The ruleset that defines where a caller can be routed based on their situation. A complete transfer matrix assigns every exit point in a call flow to an approved destination.
Deterministic routing: Routing decided by fixed, hard-coded rules rather than by an AI model's judgment, so the same situation always produces the same approved destination.
Guardrails: Constraints built into an AI agent to prevent unauthorized actions, responses, and routing. Guardrails don't make the AI smarter. They make it safer.
LLM (Large Language Model): The AI engine that lets the agent understand and respond to natural language. Model choice, prompt design, and how much the model decides per turn all affect speed and cost.
Barge-in: When a caller speaks or presses keys while the agent is still talking. Restricting barge-in on compliance-critical disclosures ensures callers hear required information in full.
p95 (95th percentile): The value that 95% of measurements fall under. A p95 response time of 1,317 ms means 95% of agent responses arrived within 1.3 seconds.
Frequently Asked Questions
What is a pharmaceutical AI voice agent?
Why do AI voice agents hallucinate?
How do you stop an AI voice agent from routing callers to unauthorized numbers?
What is DTMF and why does it matter for AI voice agents?
Do you need an in-house AI team to run a pharmaceutical AI voice agent?
The Takeaway
The technology isn't the only hard part of deploying an AI voice agent in a pharmaceutical support program.
The hard part is knowing exactly what the agent is and isn't allowed to do, building a system that enforces that structurally, and committing to the ongoing work of finding and closing the gaps. AI hallucination guardrails aren't a launch task. They're a practice.
Impekable handled the engineering. What made it work was a precise understanding of what the program required, what callers needed, and what the compliance environment wouldn't tolerate. Those constraints aren't obstacles. They're the definition of done.
Impekable is a product design and engineering consultancy building AI-powered products for regulated industries, where getting it right matters more than shipping it fast. If your current agent is slow, expensive, or doing things it shouldn't, let's talk.

