Answering the calls that were going to voicemail at peak hours
A large share of calls went unanswered at peak, and most never rang back. We built a voice agent that books against the real calendar, handles the routine majority, and hands anything clinical straight to a human.
- Organization
- Multi-site dental group
- Healthcare · 9 practices · high call volume across sites
The shape of the system
What this demonstrates
The agent handles four intents only — book, reschedule, cancel, and practice-information questions — everything else escalates immediately
Any utterance touching symptoms, pain, medication or treatment advice routes to a human unconditionally, with a warm handover and full transcript
Booking reads live availability from the practice management system, so offered slots are real and written directly rather than queued for reception to re-enter
Every call is recorded and transcribed, with a weekly review of every escalation and every failed booking
01/The problem
Reception staff at nine practices were handling calls alongside patients standing in front of them. At peak — Monday mornings, and the hour after each practice opened — a large share of calls went unanswered. Call-back logs showed most callers never tried again; they called another practice.
The overwhelming majority of those calls were routine: booking, rescheduling, opening hours, whether a particular practice took a particular insurance plan. High volume, low complexity, and consistently displacing the patient at the desk.
A previous phone-menu system had been removed after patient complaints. The group's position going in was firm: anything that felt like a menu tree, or that made a patient repeat themselves to a human afterwards, would not be deployed.
02/Approach
We scoped hard. The agent handles four intents — book, reschedule, cancel, answer a practice-information question — and everything else escalates immediately. Refusing to broaden that list was the most important decision in the project, and we pushed back on it twice during delivery.
Clinical questions escalate unconditionally. Not by classifier confidence, not by threshold: any utterance touching symptoms, pain, medication or treatment advice routes to a human, and the agent says so plainly. In healthcare the asymmetry of a wrong answer makes this the only defensible design.
Latency was treated as a product requirement, not an optimisation. Past a certain response delay, callers start talking over the agent and the conversation degrades badly. We budgeted the speech pipeline end to end and used a smaller, faster model for turn-taking decisions, keeping the larger one for the substantive turns.
03/What we built
- 01
A SIP bridge into the group's existing telephony, so published practice numbers kept working unchanged and no patient had to learn a new number.
- 02
A streaming speech pipeline with barge-in, so callers can interrupt naturally — which they do constantly, and which is most of the difference between an agent that feels alive and one that feels like a menu.
- 03
Live integration with the practice management system for genuine availability, so offered slots are real, and bookings are written directly rather than queued for reception to re-enter.
- 04
Unconditional clinical escalation, with a warm handover that passes the transcript and caller identity to reception. The patient never repeats themselves — the single hardest requirement in the brief.
- 05
Per-practice configuration for hours, insurers accepted, clinicians and site quirks, editable by the group's own operations lead without a deploy.
- 06
Full recording, transcript and outcome tracking per call, with a weekly review of every escalation and every failed booking.
04/Outcome
The rate of unanswered calls at peak dropped substantially once the agent could pick up the routine bookings, rescheduling and information requests that used to go to voicemail, with genuine overflow still routing to the human queue.
Slot fill from inbound calls improved, largely by recovering callers who previously hung up and rang a competitor — that effect was most of the business case.
Reception staff, initially and reasonably wary, became the strongest advocates within a month — not because the agent was impressive, but because Monday mornings stopped being unmanageable.
05/What went wrong
Weeks two and three were rough. The agent was too eager to confirm bookings, and misheard names produced appointments under plausible-but-wrong spellings — worse than a missed call, because it consumed a slot. We added explicit spell-back confirmation on any new patient name, which costs a few seconds per call and eliminated the failure mode entirely. We would build that in from the start next time.
Every engagement has one of these. A case study without it is a brochure.
06/Detail
Stack and services drawn on
Built with
- LiveKit
- Whisper
- Neural TTS
- LangGraph
- FastAPI
- Twilio SIP
Recognise this problem?
We start every engagement by measuring what the manual process actually costs. That first week tells you whether the rest is worth doing.