Skip to content

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.

Today

All four practices · updated 4:52 PM

Search calls, patients/Wed, 09/16
Calls answered

148

100%0 missed · was 68%
Booked into practice system

52

+23 rescheduled · 0 retyped at the desk
Handled without staff

71

50 questions · 21 confirmations
Handed back to reception

2

Both same-day pain calls

Calls by hour

Every call answered, 7 AM to now

Answered by Occlo
20100
10 AM to 2 PM · every chair full
7a8a9a10a11a12p1p2p3p4p

By practice

148 calls, 0 missed

Wrenlow Road44
Ashby Green38
Harbor Street35
Millbrook31

On the line now

3 live
Jordan P.01:42
Ashby Green · Reschedule a cleaning
New caller00:38
Harbor Street · Directions and parking
Elena V.02:15
Millbrook · New patient booking
Median response180 ms

Handed back to reception

Same-day pain goes to a person, by rule

2 today
Priya S.11:08 AM

Harbor Street · Toothache since last night

Called back 11:19 AM

Marcus T.2:31 PM

Millbrook · Pain after a recent visit

Seen 3:40 PM

Next up, booked by Occlo

Written to each practice calendar

4 confirmed
5:00 PMMarco D.CheckupWrenlow RoadVoiceBooked
5:20 PMKeisha B.CleaningHarbor StreetSMSBooked
5:40 PMLiam O.New patient examAshby GreenVoiceBooked
6:00 PMAda N.CleaningMillbrookVoiceBooked

Who, what, and how long

Industry

Dental Practices

Duration

10 weeks

Cooperation model

Fixed price, phased

Services
Voice agentScheduling integrationManaged operations
Integrations
HL7 FHIRTwilioStripeDocuSign
Technologies
PythonFastAPIDeepgramTwilio Voice APIOpenAI GPT-4oOpenDental PMS API
Team
1 Project lead1 Product designer1 ML engineer1 Backend engineer1 Data engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

What went wrong, and when

01
  1. 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.

Process

Phase by phase

  1. 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
  2. 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
  3. 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
  4. 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

Transcript review

Week of 09/07 to 09/13 · all practices

Tuning queue · 3Search calls, patients/Mon, 09/14

Median response

180ms

turn end to first audio

0 ms240480 ms

Flagged by staff

3

sent for prompt tuning

All outcomesAll practicesFlagged onlySorted by time
WhenPracticeCallerLengthOutcomeQuality
Mon 09/07 · 8:12 AMAshby GreenJordan P.1:48Rescheduled97
Mon 09/07 · 7:18 PMHarbor StreetVictor L.2:06Booked96
Tue 09/08 · 10:05 AMMillbrookIvy T.1:21Question answered81
Tue 09/08 · 1:32 PMWrenlow RoadOwen G.0:47Handed to staff92
Wed 09/09 · 9:27 PMAshby GreenChloe D.1:39Booked98
Thu 09/10 · 11:54 AMHarbor StreetSamir N.2:44Question answered74
Thu 09/10 · 3:03 PMMillbrookPaula E.0:36Confirmed99
Fri 09/11 · 6:48 AMWrenlow RoadFelix R.1:12Emergency transfer93
Fri 09/11 · 2:20 PMAshby GreenNoor A.1:55Rescheduled78
Sat 09/12 · 10:31 AMHarbor StreetGabe M.1:03Booked96
Sun 09/13 · 8:15 PMMillbrookTess Y.0:58Booked97

Samir N.

2:44

Harbor Street · Thu 09/10 · 11:54 AM

Caller

My last bill has a charge I don't recognize, can you take it off?

Occlo

I can explain the charges on a visit. The line for the exam covers…

Caller

No, I want someone to fix it.

Dana K. flagged09/11

Billing disputes should go straight to staff. It tried to explain the invoice instead.

Response per turn

170190210160
Send to tuningPlay call
On screen

A week of calls with length, outcome and quality score, a 180 ms median response, and the three calls staff flagged for prompt tuning.

Outcome

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.

Introduction

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.

What shipped
  • 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
10:47

Ashby Green Dental

Automated assistant · replies 24/7

Mon 09/14 · 10:46 PM · office closed

Hi, can I move my cleaning on Thursday?
Hi Jordan, I'm Ashby Green's automated assistant. I can move that for you now.
Thu 09/17, 3:20 PM with Nina R. Her openings next week:Mon 09/218:40 AMTue 09/225:00 PMWed 09/2312:20 PM
Tuesday at 5 works
Read 10:47 PM
Booked in the practice calendar

Tue 09/22 · 5:00 PM

Cleaning with Nina R., hygienist

Ashby Green Dental · Thursday slot released

Reply C to confirm, R to change. Urgent overnight? Call (555) 014-2290.

Text message
On screen

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.

Calendar

Harbor Street · read and written live against the practice system

Search calls, patients/Wed, 09/16

Wed, 09/16 · morning

At the deskBy OccloJust written
Dr. AlvarezOperatory 1
Dr. ChenOperatory 2
Sam O.Hygiene 1
Lena P.Hygiene 2
8:00 AM
9:00 AM
10:00 AM
11:00 AM
Grace H.

Consult · 8:00 AM

Omar B.

Filling · 9:20 AM

Ruth D.

Exam · 10:40 AM

Paul N.

Exam · 11:20 AM

Leo F.

Exam · 8:20 AM

Hana K.

Filling · 9:00 AM

Ben A.

New patient exam · 10:20 AM

Iris M.

Consult · 11:20 AM

Tom R.

Cleaning · 8:00 AM

Mia L.

Cleaning · 8:40 AM

Rosa V.

Cleaning · 9:40 AM

Devon P.

Cleaning · 10:20 AM

Nadia S.

Cleaning · 11:20 AM

Chris J.

Cleaning · 8:00 AM

Aiden C.

Cleaning · 9:00 AM

Sofia G.

Cleaning · 10:00 AM

Ella W.

Cleaning · 11:20 AM

Free → booked · 1.2 s
14 written by Occlo today0 re-keyed at the desk0 duplicate appointments Practice system in sync

Write-back

Booked

call C-0916-0417

Caller asks for a hygienist, this morning

Rosa V. · existing patient

8:51:32 AM

Live availability read

9:40 AM with Sam O. · 10:40 AM with Lena P.

8:51:33 AM

Caller picks 9:40 AM

Slot held against Hygiene 1

8:51:41 AM

Written to the practice system

Free to booked in 1.2 s · no desk retyping

8:51:42 AM

Confirmation text sent

Reply C to confirm, R to change

8:51:43 AM

Retry-safe write

Keyed on the call. A dropped line retries the same key, so the practice system never sees a second booking.

Earlier · 8:14 AM

Rejected, re-offered
10:20 AM, Dr. Chen filled at the desk11:20 AM, Dr. Alvarez offered and booked
On screen

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.

What shipped
  • Writes against live chair and clinician availability
  • Idempotent, call-keyed writes: no duplicates on retry
  • PMS rejections answered with real alternatives

Live escalation

Wrenlow Road · booking stopped, caller being transferred

Search calls, patients/Tue, 09/15

Alex W.

Emergency

Wrenlow Road · (555) 013-4471 · existing patient · 2:14 PM

00:36

Transcript

Live · up to the transfer
0:02

Occlo

Thanks for calling Wrenlow Road Dental. I'm the practice's automated assistant. I can book, move an appointment or answer questions. How can I help?

0:09

Caller

Hi, it's Alex W., I'm already a patient there.

0:13

Occlo

Thanks, Alex, I have your record. What would you like to book?

0:17

Caller

A cleaning, first thing if you have one.

0:21

Occlo

The earliest hygiene opening is Thursday at 10:booking stopped mid-sentence

0:23

Caller

Sorry, actually, I broke a tooth this morning and it's really sore.

0:25

Occlo

I'm sorry, that sounds painful. I'm connecting you to our on-call nurse right now. Please stay on the line.

Warm transfer started · on-call nurse · transcript attached to the patient record0:28
No appointment was made on this call. The transcript is on the patient record for the nurse.Reviewed weekly with the clinical lead

Urgency check

every caller turn
escalate at 0.35
0.03
0.05
0.94
0:090:170:23

Tuned to over-escalate: an unnecessary transfer costs a minute, a missed emergency costs far more.

BleedingSwellingTraumaPost-op pain

Warm transfer · ringing

On-call nurse · Kelly M.

0:08
Booking flow stopped0:23Caller told they're being connected0:25On-call line ringing0:28Transcript left on the patient record0:28

Nurse sees on pickup

Broken tooth, this morning, sore

Alex W. · existing patient · Wrenlow Road. Was booking a cleaning; no appointment was made.

Rule: trauma · written with the clinical lead

Emergency Handoff Routing

On screen

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.

What shipped
  • 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 it settled

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.

SR

Sofia Reyes

Millbrook · mobile

Ready to call
0:00Idle

A simulated call: timed transcript and waveform, no audio.

Simulated call · no recording

Reschedule, confirm, then a real emergency

  1. 0:00

    Caller

    Hi, this is Sofia Reyes. Could I move my cleaning to next week sometime?

  2. 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.

  3. 0:09

    Caller

    Friday at 8:20 works great, thank you.

  4. 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
  5. 0:16

    Occlo

    You're all set for Friday. Is there anything else I can help you wi

  6. 0:19

    Caller

    Actually, wait — I think I chipped a tooth this morning and it's bleeding pretty badly.

  7. 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
  8. 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

0 ms670 ms · well under the 800 ms budget
60 ms

Audio in

Twilio Voice API

Call audio streams in over Twilio and voice-activity detection marks the caller's turn as ended.

120 ms

Speech-to-text

Deepgram

Streaming transcription returns the caller's words as text, word-level timestamps included.

260 ms

Intent & scheduling

OpenAI GPT-4o

The model reads the transcript, decides what the caller wants, and drafts the reply.

100 ms

Calendar read & lock

OpenDental PMS API

Live availability is checked and the offered slot is held against the real chair.

130 ms

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 build
Have a project?

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.