An AI receptionist that never lets a call go unanswered
A voice and text reception agent that books, reschedules, and answers routine questions across locations, so the front desk stops drowning in the phone.
Who, what, and how long
Dental Practices
10 weeks
Fixed price, phased
Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.
What went wrong, and when
- 01
Missed calls meant missed appointments, and patients who couldn't get through simply booked with another local practice.
The missed calls weren't spread evenly. They clustered in the two hours either side of lunch and in the first hour after closing, which are exactly the windows a working patient has free to call. An answering machine had been tried and made it worse: callers who reached it hung up faster than callers who reached a ringing tone.
We built a HIPAA-conscious voice and text agent integrated with the practice management system that books, reschedules, and answers FAQs, escalating anything clinical to staff.
Phase by phase
Phase 1: Practice Management API Sync
PMS Calendar & Availability Connector
Wired real-time calendar availability and patient record lookup directly into the practice management system.
- PMS Integration Connector
- Live Availability Sync
- Data Privacy Sign-off
Phase 2: Conversational Voice AI
Sub-800ms Voice Prompt Engine
Tuned a natural-sounding voice agent powered by Deepgram and GPT-4o, configured with location-specific policies and scheduling rules.
- Voice Agent Script Specs
- HIPAA Compliance Controls
- Latency Benchmark
Phase 3: Escalation & Staff Handoff
Emergency Protocol & Staff Dashboard
Configured automatic call escalation so clinical questions, dental emergencies, or specific patient requests transfer to staff instantly.
- Escalation Protocol
- Staff Handoff Interface
- Transcript Dashboard
Phase 4: Managed Ops & Go-Live
Multi-Location Launch & Continuous Tuning
Deployed across 4 practice locations with continuous call monitoring and prompt tuning by our managed operations team.
- Multi-Location Deployment
- Managed Ops SLA
- Call Quality Monitoring
A week of calls with length, outcome and quality score, a 180 ms median response, and the three calls staff flagged for prompt tuning.
The numbers, before and after
100%
Calls answered
+61%
After-hours bookings
−22%
No-shows
Calls answered is every inbound call reaching either a person or the agent, measured on the telephony provider's own logs, not the agent's. After-hours bookings compare the quarter after launch with the quarter before. The no-show change is attributed to the reminder cadence the agent introduced and is reported for booked appointments only.
Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.
The engagement
Front desks missed a third of inbound calls during busy hours. We deployed an AI reception agent that handles routine scheduling so staff can focus on patients in the chair.
Four practices sharing one front desk schedule, losing about a third of inbound calls between ten and two when every chair was full. The owner had measured what that cost before calling us, by calling back a week of missed numbers: roughly one in four had already booked somewhere else. Dental patients don't leave voicemail; they call the next practice on the list.
AI & Managed Ops
How it was handled
Integrated with the practice management calendar for live availability
The integration was scoped first because everything else depends on it: an agent that can't see the real calendar is a voicemail with better manners.
Trained the agent on each location's policies and FAQs
Each location's own hours, clinicians and policies are read at call time, never baked in, so four practices share one agent without sharing one answer.
Set strict escalation rules for anything clinical or sensitive
A separate classifier watches every turn for clinical urgency and is tuned to over-escalate, because the two error costs are nothing like symmetric.
Handed over to our managed team for tuning and monitoring
Tuning continued as a retainer after launch, since an agent left alone drifts as the practice's policies and clinician list change underneath it.
24/7 Voice & SMS Receptionist
Answers every inbound call instantly, handles rescheduling, and confirms appointments around the clock.
Calls land on a Twilio number, stream through Deepgram for transcription and back out as speech, with the whole loop budgeted under 800ms so the caller never hears the pause that gives an automated line away. The agent works from the practice's real opening hours and clinician list, never a script, and it says it's an assistant on the first turn. Patients guessing wrong about that was the failure mode the practice cared most about.
- Sub-800ms speech loop over Twilio and Deepgram
- Hours and clinician list read live from the practice
- Identifies itself as an assistant on the first turn
A patient moving a cleaning by text at 10:46 PM with the office closed: the assistant says what it is first, offers the hygienist's real openings and books the new slot.
A 9:40 AM hygienist slot going from free to booked in the practice calendar, written back in 1.2 seconds on a retry-safe, call-keyed write with no front-desk retyping.
Direct PMS Calendar Sync
Injects confirmed bookings straight into the practice PMS, with no manual data entry at the front desk.
Bookings write into OpenDental through its own API against the real chair and clinician availability, so the agent can't offer a slot the front desk has just filled. Writes are idempotent and keyed on the call, which means a dropped connection mid-booking retries without producing a duplicate appointment. Anything the PMS rejects comes back to the caller as a genuine alternative instead of a generic apology.
- Writes against live chair and clinician availability
- Idempotent, call-keyed writes: no duplicates on retry
- PMS rejections answered with real alternatives
Emergency Handoff Routing
A Wrenlow Road caller reporting a broken tooth: the booking stopped mid-sentence at the trigger phrase and the warm transfer ringing through to the on-call nurse.
Detects clinical emergencies and routes calls to on-call staff immediately.
A separate classifier watches every turn for clinical urgency (bleeding, swelling, trauma, post-operative pain) and is tuned deliberately toward over-escalation, because a wrongly handled emergency costs far more than an unnecessary transfer. On a trigger the agent stops the booking flow mid-sentence, warm-transfers to the on-call number and leaves the transcript on the patient record.
- Urgency classifier tuned to over-escalate on purpose
- Booking flow abandoned mid-sentence on a trigger
- Warm transfer, with the transcript left on the record
Working inside their operation
A cross-functional team of 5 worked on a fixed price, phased basis over 10 weeks, covering Voice agent, Scheduling integration, Managed operations. We ran a weekly demo and kept a shared board open to check at any time. An in-house team took over day-to-day front-desk use at launch, and we stayed on a managed retainer for tuning and monitoring.
The escalation rules were written with the practice's clinical lead, never inferred, and reviewed against real transcripts every week for the first six. Anything the lead judged should have reached a person became a rule the same week. After launch the engagement continued as a managed retainer, because a voice agent left untuned drifts as the practice's own policies change.
What changed in the runbook
100% call answering eliminated missed after-hours appointment revenue.
The revenue was in the after-hours calls specifically: those callers had never had an alternative to voicemail, so every one converted was a booking the practice had never had a chance at.
Automated dental scheduling reduced front-desk phone volume by 65%.
Front-desk volume fell further than the answered-call figure suggests, because the routine bookings the agent absorbed were also the ones interrupting chairside work most.
A speech loop budgeted under 800ms made caller interactions feel natural and conversational.
Latency was the difference between a caller cooperating and a caller waiting for a person: the same script at a second's delay tested markedly worse in the pilot.
Simulated call · no recording
Reschedule, confirm, then a real emergency
- 0:00
Caller
Hi, this is Sofia Reyes. Could I move my cleaning to next week sometime?
- 0:03
Occlo
Of course, Sofia. You're on for Tuesday the 22nd at 9:15 AM with Nina R. I have two other hygienist openings that week: Wednesday the 23rd at 1:40 PM, or Friday the 25th at 8:20 AM.
- 0:09
Caller
Friday at 8:20 works great, thank you.
- 0:10
Occlo
Locking in Friday the 25th at 8:20 AM with Nina R... booked, and Tuesday's slot is back on the calendar. You'll get a text to confirm.
Written to practice calendar - 0:16
Occlo
You're all set for Friday. Is there anything else I can help you wi
- 0:19
Caller
Actually, wait — I think I chipped a tooth this morning and it's bleeding pretty badly.
- 0:22
Occlo
I'm sorry, that sounds serious. I'm stopping the booking and connecting you to our on-call nurse right now. Please stay on the line.
Booking stopped mid-sentence - 0:28
System
Warm transfer started · on-call nurse · transcript attached to the patient record
The response loop, one call turn
Five stages, under an 800 ms budget
670 ms total
Audio in
Twilio Voice API
Call audio streams in over Twilio and voice-activity detection marks the caller's turn as ended.
Speech-to-text
Deepgram
Streaming transcription returns the caller's words as text, word-level timestamps included.
Intent & scheduling
OpenAI GPT-4o
The model reads the transcript, decides what the caller wants, and drafts the reply.
Calendar read & lock
OpenDental PMS API
Live availability is checked and the offered slot is held against the real chair.
Voice synthesis
Voice synthesis
The reply is spoken back, streamed from the first audio chunk instead of rendered whole.
Handling sensitive calls
Clinical safety & data handling
Emergency detection
A classifier runs alongside the booking flow on every caller turn, watching for trauma and urgency language. It can interrupt mid-sentence and hand off live the moment it fires, without waiting for the caller to finish speaking.
Data minimization
Audio and transcripts are stripped of identifying details before they reach the language model, so the scheduling logic works from only what it needs to book a slot, never a patient's full record.
Staff review
Every escalation's transcript is attached to the patient record for the nurse who picks up, and the week's escalations are reviewed with the clinical lead.
Need an autonomous AI voice receptionist or appointment scheduling agent?
Scope your AI build in 3 minutes.
Scope your buildNearby engagements
Web PlatformsThe ransomware attack that became a four-hour non-event
A ransomware attack encrypted the primary patient records server. Drilled offsite backups and a written runbook turned what could have been a scramble into a full restore inside the recovery time objective.
Healthcare & Dental Practices · Ongoing retainer
E-commerceA cart that won't check out until the prescription is real
An online pharmacy where a prescription is a first-class record with its own lifecycle, and prescription-only items simply can't leave the cart without one.
Healthcare & Dental Practices · 20 weeks
Web PlatformsThe right blood type isn't enough: it has to be someone who can get there
A donor register that matches each request on blood-group compatibility and on whether the donor can actually reach the hospital. One platform serves a web admin and a mobile client from the same records.
Healthcare & Dental Practices · 16 weeks
Let's talk
Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.














