A HIPAA-compliant AI receptionist needs a business associate agreement (BAA) with every company that handles patient information on its calls. That usually means the model providers, possibly the phone carrier and any cloud host the servers run on. Dograh, the open-source AI voice agent platform we build, can be self-hosted, so no BAA with Dograh is needed.
Key Takeaways
- Self-hosting Dograh takes Dograh off your list of business associates.
- Model providers, carriers and cloud hosts may each need their own BAA.
- A BAA never moves your practice's own responsibility under HIPAA.
This post is part of our guide to AI receptionists, which closes by asking whose servers hold your call recordings. For a medical office, that question decides who needs a BAA. Below, we follow one booking call past each company, then set the receptionist up on your own servers.
What HIPAA asks of a receptionist vendor
HIPAA calls a company a business associate when it creates, receives, maintains or transmits protected health information for your practice. The definition also covers a subcontractor working for that company. Under 45 CFR 164.502, the practice may let a business associate handle patient data only after getting written assurance that it will protect it, and in practice that assurance is a BAA.
A BAA is a contract with required terms, and it does not hand over the practice's own duties. Under 45 CFR 164.504, a practice that knew a business associate kept breaking the agreement and did nothing is itself out of compliance. HIPAA has no official certification for software, so treat a 'HIPAA certified' badge as the vendor's own claim. Ask your counsel to confirm how these rules apply to your practice before patient calls go live.
Business associates are a common weak point. In the first half of 2026, business associates were involved in 43% of large healthcare data breaches reported to the federal regulator, according to HIPAA Journal's analysis of OCR breach reports. Every company behind your receptionist adds one more place where patient data can leak.
One booking call, company by company
Follow one patient calling to book a visit. Each company the call passes through has its own place in the HIPAA picture, and the list below takes them in order.
- Your practice is the covered entity and keeps the duty to protect the data, whoever else handles it.
- Dograh, self-hosted. Self-hosting means no BAA with Dograh, because the software runs on servers you control. An on-prem enterprise deployment works the same way.
- Model providers. Speech-to-text, language model and voice providers may need their own BAA when they handle PHI. Deepgram, for example, signs a BAA only for Enterprise customers. Open-weight models on your own servers take this line off the list.
- The phone carrier may need a BAA depending on what it stores. Many carriers offer one. Twilio signs a BAA only on its Security Edition or Enterprise Edition, and patient data may flow only through its HIPAA-eligible products.
- The cloud provider needs a BAA if the servers run there. On AWS, you accept the BAA in AWS Artifact and keep patient data in the HIPAA-eligible services it names. A server in your own data centre needs no cloud BAA.
- Your scheduling system already holds patient records, so check that your agreement with its vendor covers bookings written through its API.
The carrier line turns on storage. The HIPAA Omnibus Rule treats a carrier that only transmits data, and touches it at random or rarely, as a conduit. A company that stores the data is a business associate even if it never looks at it, so call recordings kept at the carrier change the answer. Our BAA guide for each layer of a voice AI stack sets this out in a full table.
Booking with patient data under your control
A booking call should run in a fixed order: greet, verify, then disclose. The agent greets the caller, confirms who they are against your records, and only then reads out or changes an appointment. Our guide to patient identity verification for voice agents covers which details to ask for.
The agent books through an HTTP API tool that calls your scheduling system directly, so the appointment is written where your staff already work. The tool waits 5 seconds by default and does not retry. Give the agent a fallback, such as taking a message for staff, for when the scheduling system is slow or down.
When a caller needs a person, the Transfer Call tool rings your staff first and connects the caller once someone answers. On Twilio you can add a short spoken introduction that both sides hear. That line is generated by your voice provider, so it sits under the same model BAA as the rest of the call.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Messages that stay in your own systems
The other half of the job is taking messages. A Webhook node at the end of the call sends the caller's details and request as JSON to a system you run, such as your practice-management inbox. It retries temporary failures up to 5 times, so a brief outage on your side does not lose the message.

Recordings and transcripts stay on your server when you self-host. Recording can be switched off only for the whole server, and transcripts are still saved when it is off. There is no setting that deletes them after a set time, so your own retention policy has to cover that folder. Call traces go to a Langfuse project only if you connect one. Our post on HIPAA-compliant voice AI self-hosting traces what stays on your servers and what goes out.
Setting up the self-hosted route
Start with a server that has at least 8 GB of memory and 4 vCPUs, in your own data centre or with a cloud provider under a BAA. The Docker deployment guide covers the install.
New accounts start on Dograh's managed models, which would put Dograh back on the BAA list. Open Providers in the sidebar and connect your own accounts with providers that sign a BAA, or your local models. Then open Models, create a configuration that uses them and click Make org default. Agents inherit the default unless they have their own override, so check each agent for one. The model configuration docs explain both pages.
Put your recording notice in the Greeting Text on the Start Call node, and switch off Allow Greeting Interruption, which is on by default, so every caller hears the full notice. In the agent's instructions, say that a caller describing an emergency is told to get to safety and call 911. Test the whole flow with made-up patient details before any real patient calls.
Questions to ask a hosted receptionist
If you rent an AI receptionist instead of hosting one, some are sold without a BAA, and others offer it only on a top plan. Ask each vendor:
- Will you sign a BAA, and on which plan?
- Which model providers, carriers and cloud hosts handle our calls, and does each have a BAA with you?
- Where are recordings and transcripts stored, for how long, and can we delete them?
- What does the agent say before it has verified the caller?
A vendor that cannot answer the second question cannot tell you who holds your patients' data.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Glossary
- Protected health information (PHI)
- Health information that can identify a patient, such as a name with an appointment, a diagnosis or a date of birth, held or sent by a covered entity or its business associates.
- Business associate
- A company that creates, receives, maintains or transmits PHI for a covered entity, including the subcontractors that do the same for it. Model providers, carriers and cloud hosts can all be business associates.
- Business associate agreement (BAA)
- The written contract HIPAA requires before a business associate handles PHI. It sets out how the data is protected and reported, and it does not move the practice's own responsibility.
- Conduit
- The HIPAA term for a company that only transmits PHI, and touches it at random or rarely, so it is not a business associate. A company that stores PHI does not qualify, even if it never looks at it.

