AI voice agents for optometry and vision clinics answer and place routine calls about exam booking, recall, glasses and contact-lens status and insurance, with every answer read from the practice's own system. A caller describing sudden vision loss, an eye injury or another eye emergency hears fixed words and goes straight to a person. The agent never gives medical advice.
Key Takeaways
- Eye symptom calls get fixed words, then a transfer. The model never improvises them.
- Every answer about exams or orders comes from your EHR, read during the call.
- Optometry practices are generally HIPAA covered entities, so count every vendor on the call.
This guide covers each optometry call a voice agent can take, from eye symptoms to recall and HIPAA, and shows how each part works in Dograh, the open-source AI voice agent platform we build, which reads your EHR. You can self-host it or run it on Dograh Cloud.
What patients call an optometry practice about
Most calls to an optometry practice are routine, and every routine answer already sits in the practice's own system. Patients call to book or move an exam, to ask whether their glasses are ready, to reorder contact lenses and to check whether the practice takes their vision plan. Online lens sellers call to verify prescriptions. Every so often, someone calls because something is wrong with their eye. A small front desk takes all of these between patients at the counter.
Missed visits are part of the load. A 2025 study of missed appointments at New York Eye and Ear Infirmary of Mount Sinai found an overall no-show rate of 16.9% across 62,678 adult appointments, and forgetting the appointment was one of the most common reasons patients gave. That is one urban ophthalmology centre, not an optometry practice, but a forgotten exam looks the same on any schedule.
The agent should answer none of this from memory. It reads the practice management system or EHR during the call, and writes back what changed. It also follows the same order on every call. It greets, verifies, then discloses. A phone number finds a patient record, but it does not prove who is calling, so the agent confirms an approved check such as date of birth before it names an exam, an order or an appointment.
The scope stays at the front desk. The diagnosis and every other judgement about an eye belong to the doctor, and the agent's job on any clinical question is to get the caller to a person.
Eye symptom calls get fixed words and a person
A caller who describes a possible eye emergency should hear words your doctor approved, then reach a person within seconds. Start with a written list from the practice, signed off by the doctor. The American Academy of Ophthalmology's page on a detached or torn retina lists sudden flashes of light, many new floaters at once, a shadow in side vision and a gray curtain over part of the field of vision. It tells anyone with those signs to call an ophthalmologist immediately. Add sudden vision loss and any eye injury.
Injuries follow the same rule. The Academy's guidance on eye injuries says to get medical help right away for signs such as trouble seeing or blood in the clear part of the eye, and to seek emergency treatment right away after a chemical splash. It also gives first-aid steps. The agent does not repeat them unless your doctor writes them into the fixed line, because then they are the practice's approved words.
In Dograh, the emergency path is a pathway with Transition Speech, the fixed text or recorded clip Dograh plays word for word when the agent moves onto that path. A line such as "This needs care right away. I'm connecting you to our doctor now." plays exactly as written. Typed text does not play on speech-to-speech models, so record the line as a clip if you use one. Draw the pathway from every step where a symptom could come up, since a patient can mention a curtain over one eye in the middle of booking.
The emergency step then holds one tool. Transfer Call works on Twilio, Telnyx, Plivo, Cloudonix and Asterisk ARI. Set its Pre-Transfer Message to "No Message", because the fixed line already played, and tell the step's prompt to transfer at once. Dograh calls the destination first and connects the caller only when someone answers. On Twilio, it can play a short spoken introduction to both people before connecting them, but leave it off here so nothing slows the connection. No summary goes with the call by default.
Be honest about what is guaranteed. The wording is fixed. Choosing the pathway is the language model reading its written condition, and starting the transfer is still the model calling a tool. So test both on real phone calls, with the plain words patients use: "it's like a curtain coming down" or "I got bleach in my eye".
If nobody answers within the Transfer Call timeout, 30 seconds by default and settable from 5 to 120, the caller stays with the agent. Add a "no answer" pathway with its own fixed Transition Speech, such as "I couldn't reach our doctor. Please go to the nearest emergency room now." The model still picks that path, so it goes into the same tests. Nights and weekends raise the same question, and our post on after-hours coverage covers what happens when on-call doesn't answer.

The rule against medical advice applies to every step. Put it in the Global Node, the one shared prompt Dograh adds to each step that has "Add Global Prompt" on. Tell the agent never to say whether a symptom is serious, and never to suggest drops or any other treatment. That is still a prompt, not a guarantee, so a quality check on a sample of calls looks for any line that broke it.
We would not let the agent screen or reassure. A model that says "that sounds like normal floaters" has given a diagnosis in a voice the patient trusts. Fixed words, then a person, is the only version of this call we would put in front of patients.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Booking exams and calling overdue patients
Booking is the largest share of an optometry practice's calls, and the safest to hand over, because the open slots already live in your system.
On an inbound call, the agent verifies the patient, asks what kind of visit they need, and reads open slots from the EHR through an HTTP API tool. When the patient picks one, a second request books it. Add a Preset Parameter named workflow_run_id with the value {{initial_context.workflow_run_id}}, so the EHR can ignore a duplicate if the same request arrives twice. A booked exam can then get a reminder call a day or two before, which goes after the forgetting the study above describes.
Recall works the other way round. The practice's recall report is the call list, and the interval comes from the doctor's order for each patient, never from the agent. A Dograh campaign calls the patients due, verifies each one before it names the exam, and books a slot.
Outbound calls bring consent rules. Under the Telephone Consumer Protection Act (TCPA), the Federal Communications Commission's rule for healthcare calls lets a provider call a patient's mobile without prior consent only within strict conditions. The call must be free to the patient and limited to purposes such as exam reminders, with no selling, and the rule expects a voice call to last about a minute or less. It allows at most one call or text a day and three a week per patient. Dograh campaigns have no per-patient call cap, so your own list enforces that limit, or retries are set to zero.
AI Voice Agents for Eye-Exam Scheduling & Recall covers the booking loop, the recall campaign and these limits in full.
Glasses, contact lenses and prescription checks
Order-status calls are the easiest win, because the answer is one status field in the practice's system. After verifying the patient, the agent reads the order from your system and says whether it is still at the lab or ready for pickup. A plain "your glasses are ready" notice needs no call at all. Your practice system or messaging platform sends that text, since Dograh has no SMS tool and sends no texts itself.
Contact-lens reorders take one more step. The agent records the brand and quantity as the patient states them, and the agent writes the request for staff, who check it against the prescription on file. Staff do the checking, and the agent never switches a brand. When the patient says the prescription has run out, it books an exam instead.
Online lens sellers are a separate kind of caller. Under the Federal Trade Commission's (FTC) Contact Lens Rule, a seller may fill an order once the prescriber confirms the prescription, and the rule's verification section also treats it as verified if the prescriber does not respond within eight business hours. Some sellers place these calls with an automated message. Either way, a verification request that sits unanswered can turn into a filled order, so the agent sends it to staff at once with Transfer Call, or writes it to your system with the time it arrived. It never confirms or corrects a prescription itself.
Insurance and benefit questions go to staff
The agent can tell a caller which vision plans the practice takes, but benefits and frame allowances go to a person.
The plan list fits the Knowledge Base. Upload the practice's accepted-plans document and the agent answers from it before any check. Anything about one patient's coverage needs the payer's own answer, which staff look up.
Cost is a real reason people put exams off. In a Verasight survey of 1,000 US adults in November 2025, 46% said they don't delay eye exams. Among everyone surveyed, 18.4% named cost of care as their main reason for delaying, and 10.6% named having no insurance. So a caller asking what an exam will cost is a booking at risk. The agent never quotes a price your system did not return. It transfers the call, or, if nobody answers, writes a callback request to your system.
HIPAA applies, so count who hears the call
Unlike a vet clinic, an optometry practice that bills insurance electronically is covered by the Health Insurance Portability and Accountability Act (HIPAA), so every company that hears its calls matters.
HIPAA's definitions make a health care provider a covered entity when it sends health information electronically in standard transactions, such as claims. Most optometry practices bill vision and medical plans that way, so they are generally covered entities. A vendor that creates, receives, keeps or sends patient information for the practice is a business associate and needs a business associate agreement (BAA). A BAA delegates obligations to the vendor and adds a duty to monitor it. It never transfers the practice's liability.
On a hosted platform, a call is heard by the voice platform, a speech-to-text company, a language model company, a voice company and the phone carrier. Self-hosted, Dograh runs on your servers and never receives the call data, so the practice needs no BAA with it. As the orchestration layer, it runs the call flow, tools and telephony, while the speech and language models are a separate layer you choose. Model providers you call with your own keys still hear the audio and need their own BAA.
To keep the audio in-house too, run open-weight models on your own servers, such as Qwen3.8 27B for language, Parakeet TDT 0.6B v2 for speech-to-text and Magpie TTS for the voice. If those servers run in a cloud account such as AWS, Google Cloud or Azure, that cloud provider needs a BAA. The phone carrier may need one, depending on what it stores. Many, such as Twilio, offer one. Our landing page on self-hosted voice agents for optometry practices covers this setup for eye-care calls.
Recordings need a plan as well. Dograh has no retention setting and deletes nothing on its own. Self-hosted, recording can be switched off only for the whole server, and transcripts are still saved, so retention is your policy, carried out on your own storage and checked with counsel. HIPAA-Compliant Voice AI for Hospitals goes through each copy of a call layer by layer.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Connecting the agent to your EHR
Dograh has no built-in EHR, calendar or CRM integration, so each connection points at an API your system or its middleware already offers.
During the call, an HTTP API tool asks your system for exactly what the call needs, such as open slots or an order status, and the agent says only what comes back. Each tool waits 5 seconds by default and does not retry, so a slow lookup gets a Custom Message, a typed line or recorded clip that plays once just before the request runs.
Pre-Call Data Fetch can load the patient record by phone number once the call connects. The caller hears ringing while it runs, and nothing from it is spoken until the patient passes the check. After the call, a Webhook node sends the outcome to your system and retries a temporary failure on its own. For outbound calls, your system can start each one through the API Trigger.
Before you plan the build, ask your EHR vendor what API access your plan includes. Some optometry systems open their data only to approved partners, and the answer decides which calls the agent can finish and which it can only write down for staff.
Two details matter on a real line. Add lens types and brand names, such as "toric" and "multifocal", to the agent's Dictionary so speech-to-text spells them right. Then test on a real phone number, because most phone calls still reach the agent as 8 kHz audio, while a browser test runs at 16 kHz, and browser tests cannot run Transfer Call.
What to ask before you choose a platform
Plenty of AI receptionists now sell to eye care practices, and four questions separate them. Ask first how the emergency line is spoken. Some products screen symptoms and give the caller generated guidance while they text the doctor. Ask to see the exact words a caller hears, and whether the model writes them or plays a fixed line. In Dograh, the line is Transition Speech or a recording, and you can read every call's transcript to check it.
Next, ask what happens when nobody answers the transfer. A good answer names the timeout and the exact words that follow. A vague one means the model improvises at the worst moment.
Then ask how many companies hear each call, and which plan carries the BAA. On a hosted platform the answer is usually several, each with its own contract. Self-hosted Dograh with open-weight models brings that down to the phone carrier, plus your cloud provider if you use one.
Last, ask whether you can read the code and run it on your own servers. This platform is open source under the BSD-2-Clause license and runs with Docker Compose. Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost). Dograh Cloud has a 1¢-a-minute platform fee. The QA node scores each step of a sample of calls, so you can find the call where the agent drifted toward advice.
Which optometry call to automate first
Start with order-status calls and inbound booking, and build the emergency pathway on day one, tested on a real line before any patient calls.
Add reminders for booked exams once a week of transcripts reads cleanly. Recall campaigns come last, after your consent records and call limits are in order. The wider health-care picture, from hospitals to dental practices, is in AI voice agents for hospitals and health systems.
Each part of this guide has its own deep dive:
Glossary
- Transition Speech
- Fixed text or a recorded clip that Dograh plays word for word when the agent moves onto a pathway. It is the right place for an eye emergency line, because the model never writes those words. Typed text does not play on speech-to-speech models, so use a recording there.
- Global Node
- One shared prompt per Dograh agent, added to every step whose Add Global Prompt switch is on. It suits rules that apply to the whole call, such as never giving medical advice, but it is still a prompt, so calls are checked against it.
- Covered entity
- Under HIPAA, a health care provider that sends health information electronically in standard transactions such as claims. Health plans and clearinghouses are covered too. Optometry practices that bill insurance electronically generally qualify, so every vendor that handles their patient information needs a BAA.
- Verification request (Contact Lens Rule)
- An online seller's request to a prescriber to confirm a contact lens prescription. Under the FTC rule, silence for eight business hours counts as verified, which is why the agent sends these calls to staff at once.

