EliconStart a project →
← ALL WORK

CASE 07

12 weeks

Voice-First Customer Intake for a Clinic Group

24/7 patient intake over the phone, no more missed calls.

  • Python
  • FastAPI
  • OpenAI Realtime
  • Twilio
  • Postgres
Sector
Healthcare — outpatient clinics
Sites
6 locations, shared front desk
Channel
Inbound phone, 24/7
Engagement
Fixed scope, 12 weeks
Data
PHI — encrypted, logged to their SIEM

A multi-site clinic group lost patients to a busy signal every morning and to voicemail every evening. We built a real-time voice intake system that answers every call, captures structured patient details as the caller speaks, and hands off to a human the moment anything looks clinical, urgent or unclear.

THE PROBLEM

What was going wrong.

Phone-only intake created a queue every morning, missed calls after hours, and a lot of back-and-forth to collect the same fields for every patient.

Two front-desk staff covered six sites' calls. Between 08:00 and 10:00 the queue was permanently full, and abandoned calls in that window were the single largest source of lost appointments.

After hours the options were voicemail or nothing. Voicemails were transcribed by hand the next morning, by which point a meaningful share of callers had booked elsewhere.

Every intake collected the same fields — demographics, reason for visit, insurance, referral — and every intake collected them slightly differently, which pushed correction work downstream into billing.

CONSTRAINTS WE WORKED UNDER

  • ·PHI throughout: encryption at rest and in transit, access logging into their existing SIEM, strict retention rules.
  • ·The system must never give clinical advice. Any hint of a symptom question is a handoff, not an answer.
  • ·Urgency detection had to be aggressive in the safe direction — false handoffs are acceptable, missed urgency is not.
  • ·Callers skew older and multilingual; the system had to handle slow speech, interruptions and accents without punishing the caller.

WHAT WE DID

The short version.

  1. 01

    Real-time voice pipeline with a structured intake form behind it — demographics, reason, insurance — captured as the patient speaks.

  2. 02

    Human handoff triggers on any edge case (urgency, unclear speech, insurance not recognized) so no one gets dropped.

  3. 03

    Recorded transcripts reviewed daily; flagged conversations feed a weekly prompt-tuning loop.

  4. 04

    All PHI encrypted at rest and in transit; access logs wired to their existing SIEM.

ARCHITECTURE

How it's built.

01

Telephony bridge

Twilio media streams bridged to a realtime speech model over websockets, with a FastAPI service holding call state. Barge-in supported throughout — callers interrupt, and the system stops talking, which is table stakes for phone UX.

02

Structured intake state machine

Behind the conversation sits a form, not a transcript. Each field has a validator (date formats, insurance ID patterns, known referral sources) and a confidence level. The model's job is to fill the form conversationally; the form's job is to refuse bad data.

03

Safety & handoff router

A parallel classifier watches every turn for urgency markers, clinical questions, distress and repeated misunderstanding. Any trigger warm-transfers to a human with the partially completed form and the transcript already on screen — the caller never repeats themselves.

04

Records integration

Completed intakes write into their practice management system with idempotent keys, matched against existing patients on name, date of birth and phone. Ambiguous matches queue for human confirmation rather than creating duplicate records.

05

Compliance layer

Envelope encryption for recordings and transcripts, role-scoped access, retention timers enforced by job rather than by policy document, and every access event streamed to their SIEM.

KEY DECISIONS

What we chose, and what it cost.

Form-first, conversation-second

WHY

A free-form voice assistant that produces a summary sounds impressive and creates downstream cleanup. A validated form produces records billing can actually use.

TRADE-OFF

Conversations are slightly more directed than a fully open assistant. Callers did not mind; the front desk was already directive.

Aggressive handoff thresholds

WHY

In a clinical context the cost matrix is not symmetric. A needless transfer wastes ninety seconds; a missed urgent caller is unacceptable at any efficiency gain.

TRADE-OFF

Automation rate is deliberately lower than the technology allows. The client agreed to that number in writing during scoping, which prevented the usual mid-project pressure to loosen it.

Warm transfer with context, not blind transfer

WHY

The worst experience in phone automation is repeating everything to the human. Passing the partial form and transcript removes it entirely.

TRADE-OFF

Required deeper integration with their phone system than a simple forward, which added about a week.

THE HARD PARTS

What nearly broke it.

Silence is ambiguous

Older callers pause mid-sentence; naive turn detection interrupted them constantly. We tuned endpointing per conversational state — longer patience while someone recalls an insurance number, shorter for yes/no — which cut interruptions dramatically.

Insurance IDs over the phone

Alphanumeric identifiers are where voice systems fail. We added checksum-aware validation, phonetic confirmation for ambiguous characters, and a hard rule that two failed attempts hands off rather than trying a third time.

Trust with the front-desk team

Staff assumed this was a headcount conversation. It was not, and we said so in week one, then proved it by routing every exception to them with full context. By launch they were the ones reporting bugs, which is the only version of this that works.

HOW IT RAN

The timeline.

  1. 01

    Call analysis & compliance design

    Weeks 1–3

    Listened to recorded calls, mapped the real intake flow, and designed the PHI handling with their compliance officer before any code touched patient data.

  2. 02

    Voice pipeline

    Weeks 4–7

    Telephony bridge, realtime model integration, turn-taking and barge-in, and the intake state machine with validators.

  3. 03

    Safety, handoff, records

    Weeks 8–10

    Handoff classifier, warm transfer with context, practice-management write-back and duplicate-match handling.

  4. 04

    Pilot & rollout

    Weeks 11–12

    After-hours only for two weeks with daily transcript review, then business hours as overflow, then full coverage.

OUTCOME

What changed.

24/7

Intake coverage, from business hours only

0

Calls to voicemail after launch

Warm

Every handoff carries the form and transcript

Daily

Transcript review during pilot

Every flagged call listened to by a human.

Missed-call rate dropped dramatically. Front-desk staff now only handle exceptions, which is the work they were hired for.

The after-hours channel turned out to be a revenue line, not a cost saving. Calls that previously hit voicemail at 20:00 now become confirmed appointments overnight.

Intake data quality improved enough to be noticed in billing. Because every field is validated at capture, the downstream correction work that front-desk staff used to absorb largely disappeared.

STACK

What it's made of.

BACKEND

  • Python
  • FastAPI
  • Postgres
  • Redis

VOICE

  • OpenAI Realtime
  • Twilio Media Streams
  • WebSockets
  • Custom endpointing

INTEGRATION

  • Practice management API
  • Idempotent record matching

COMPLIANCE

  • Envelope encryption
  • SIEM streaming
  • Retention jobs
  • Role-scoped access

HANDOVER

What they kept.

  • Compliance pack: data flow diagrams, encryption and retention documentation, access-control matrix.
  • Runbook for the transcript review loop and how to adjust handoff thresholds safely.
  • Training for the front-desk team on exception handling and for their IT contact on the deployment.