VitaraVox
An AI phone receptionist for medical clinics in Canada.
The short version
VitaraVox is an AI phone receptionist for medical clinics in British Columbia. Patients call and talk to Vitara, who identifies them, verifies who they are, and handles registration and scheduling without a person on the line. Emergencies, frustrated callers and anything it can't handle go to staff.
The problem
Clinic front desks lose hours every day to routine scheduling calls. Patients wait on hold, calls arrive after hours, and staff get pulled away from the patients in front of them.
What it does
Caller-ID lookup and identity checks
Finds the patient from the incoming number, confirms date of birth, then falls back to full name, spelling and phone number.
New-patient registration
Collects BC Services Card details and the Personal Health Number, reads them back and handles corrections, or offers the waitlist.
Appointment management
Book, reschedule, cancel or hear upcoming appointments, choosing slots by number or by saying a date and time.
Clinic rules
Booking windows, working hours and allowed visit types are enforced per clinic.
Topic changes mid-call
Callers can switch from booking to cancelling without starting over.
Safety handling
Emergencies are told to call 911, sales calls are declined politely, and difficult calls go to staff.
How it’s built
Code controls the conversation
A 20-node LangGraph state machine drives every step. The LLM only does narrow jobs at temperature 0: intent, date-of-birth parsing, names and yes/no detection. Predictable, auditable, and far less likely to hallucinate.
Plugs into Vapi as a custom LLM
An OpenAI-compatible /v1/chat/completions endpoint with streaming, and per-call state keyed by the Vapi call ID.
Built for speech-to-text
Parses spoken dates of birth, spelled-out names, emails and phone numbers into E.164.
Tested against failure
A mock EMR that injects errors and rejected bookings, plus scripted end-to-end conversation tests.
Traced end to end
Every call turn is traced in LangSmith with the EMR API calls attached.
Tools
- Vapi (custom LLM)
- LangGraph
- LangChain Core
- Azure OpenAI
- LangSmith
- Node.js
- TypeScript
- Express
- Zod
- libphonenumber-js
- Prisma
- EMR API
- React + Vite test playground
- pm2