Search “HIPAA compliant chatbot” and every vendor page reads the same: a shield icon, a green checkmark, the words “HIPAA compliant” printed like a certification. Software can’t be. HIPAA doesn’t certify products — compliance is organizational and contractual, and it gets judged by what actually happens to patient data, not by a badge on a pricing page.

That’s a real problem the moment a chat widget touches a patient portal or intake flow. The bot logs a conversation. The conversation has a name, a symptom, maybe a med list. Once that happens, you’re inside the HIPAA Security Rule, and the question stops being “which vendor says compliant” and becomes: what does 45 CFR 164.312 actually require of this specific stack, and does yours meet it. That’s this article: what a HIPAA compliant chatbot actually requires, regulation mapped to architecture, with an honest gap list and a build checklist. If you’re evaluating a self-hosted widget like AI Chat Agent for a healthcare deployment, or auditing whatever you already run, start here.

For the business case — appointment booking, FAQ deflection, patient engagement — see our healthcare chatbot guide. This one assumes you already want a HIPAA compliant AI chatbot and need to know how not to get sued over it.

Engineering guidance for technical teams, not legal advice — have counsel who does healthcare compliance review your BAAs and risk assessments.
What Makes a Chat Transcript PHIIdentity elementNamePhone or emailInsurance IDHealth context elementSymptomAppointment / specialtyMedication+= PHI record (45 CFR 160.103)
Identity plus health context, in the same record, is PHI the moment they share a row — the table name doesn’t matter.

What Counts as PHI in a Chat Transcript

Protected Health Information is defined at 45 CFR 160.103, and it’s broader than most engineers assume — not just diagnosis codes and lab results, but any individually identifiable health information a covered entity or business associate holds or transmits.

A typical healthcare chatbot conversation contains some combination of: the patient’s name, a phone number or email for follow-up, an appointment tied to a specific provider or specialty (which implies a condition), a stated symptom (“chest pain since Tuesday”), a medication name, or an insurance ID typed in to check coverage. Any one of these, linked to a person, is PHI. It doesn’t matter that the row sits in a messages table next to a thousand unrelated support tickets — it’s PHI the moment identity and health context share a record.

That has an architectural consequence for any HIPAA compliant chatbot design: whatever handles ticket routing, analytics, backups, and third-party API calls for that table is now in scope for the Security Rule. If you also serve EU patients, the same transcript triggers a second, differently shaped obligation. HIPAA is a US, contract-driven regime built around the BAA; GDPR is EU and rights-driven, built around consent and erasure — we cover that separately in GDPR-compliant AI chat. For a US deployment, the BAA is the mechanism that matters, which raises the next question: who around your chatbot actually needs one.

The Conduit Exception Myth

The most common excuse for skipping a BAA is the conduit exception — the idea that a vendor “just passing messages through” isn’t a business associate. It’s real, but narrow, and most chatbot vendors don’t qualify.

The exception is modeled on the postal service and ISPs: entities that transmit PHI but never meaningfully access or retain it. The carrier doesn’t open the envelope; the ISP doesn’t store the packet. A chatbot vendor that logs conversations — for support, analytics, model fine-tuning, or “just in case” — is not transmission-only. It’s storing, which means it can access, which makes it a business associate under HHS’s own reading. Persistent storage is the line, and almost every chat product crosses it, because a chat history with no persistence isn’t a useful product.

This is where teams get burned. They read “conduit exception,” see the vendor call itself infrastructure, and skip the BAA conversation. Then an audit — or a breach — asks who has a signed BAA for every system that touched PHI, and the chatbot isn’t on the list. A HIPAA compliant chatbot deployment usually fails on paperwork long before it fails on code. If a vendor stores transcripts, treat it as a business associate and satisfy 45 CFR 164.502(e) — obtain the assurance — before it goes near patient data. What the contract itself must contain is a separate section, 164.504(e), and the two get conflated constantly: 502(e) requires you to have a BAA; 504(e) specifies what’s in it (permitted uses, safeguard obligations, breach reporting, return-or-destroy on termination). Same logic applies to hosted help-desk widgets like Intercom or Zendesk — the first question isn’t price, it’s whether they’ll sign, on your plan, for the specific feature touching PHI.

HIPAA-Compliant AI Models: Which Providers Sign a BAA

Once your chatbot vendor has a BAA, the next layer is the model behind it. If the bot calls an LLM API, that provider touches PHI in the prompt and needs one too. There are no HIPAA compliant AI models in the abstract — a model isn’t a legal entity. What exists is a provider willing to sign a BAA covering the endpoint you call, and the same caveat applies to every “HIPAA compliant generative AI” badge on a vendor page.

All five major providers — OpenAI, Anthropic, Google Vertex AI, Microsoft Azure OpenAI, and AWS Bedrock — will sign a BAA for their LLM APIs. None publish a flat dollar minimum; it’s handled through enterprise or sales-assisted contracting, not a self-serve checkbox. Budget time for a sales conversation, not a form submission.

Read the retention terms before signing anything. OpenAI’s standard API retains request data roughly 30 days for abuse monitoring, even under a BAA, unless you’re on an eligible endpoint with zero-data-retention enabled by separate agreement. That’s exactly the detail that gets missed in a rushed procurement cycle and resurfaces in a security questionnaire six months later. Anthropic, Google, and Microsoft each have their own version of the same trade-off — default retention for safety monitoring, tighter options under enterprise terms.

AI Chat Agent supports five AI providers — OpenAI, Anthropic Claude, Google Gemini, OpenRouter, and Custom, which points at any OpenAI-compatible endpoint, including self-hosted inference like Ollama, vLLM, or LM Studio. Custom is the one option that removes the BAA-with-an-LLM-vendor question entirely: if the model runs on hardware you control, PHI never crosses a third-party API boundary. No contract, no retention window to audit, no sales call. We cover when that trade-off is worth making, and when a hosted API is still the better call, further down.

✓ Will sign a BAAPricing notpublishedsales-assistedWhich AI Providers Will Sign a BAAOpenAIAnthropicGoogleVertex AIAzure OpenAIAWS BedrockSelf-hostedmodelNo thirdpartyNo BAAneeded
All five major hosted providers require a sales conversation, not a self-serve checkout; a self-hosted model skips the BAA question entirely.

The Technical Safeguards a HIPAA-Compliant Chatbot Needs

45 CFR 164.312 specifies the Security Rule’s actual technical controls. Here’s what each provision means when the “system” is a chat widget, backend, and database rather than an EHR:

The Self-Hosted Stack: Where PHI StaysBrowser widgetpatient siteTLSYOUR PERIMETERNginxTLS terminationNode backendAPI + WebSocketPostgreSQL+ pgvectorchat data, embeddingsRedissessions, queuesOllama (optional)local model, no API callPHI stays inside this boundary unless a hosted LLM API is called
Nginx, the Node backend, Postgres, and Redis sit inside your perimeter; an optional local Ollama model keeps inference inside it too.
§164.312 ProvisionWhat It Means for a Chat WidgetStatus
(a)(2)(i) Unique user identificationEvery admin who can view conversations logs in with their own account, not a shared passwordRequired
(a)(2)(ii) Emergency access procedureA documented way to reach the admin panel and database if normal login is unavailableRequired
(a)(2)(iii) Automatic logoffAdmin sessions expire after inactivity instead of staying open indefinitelyAddressable
(a)(2)(iv) Encryption and decryptionPHI at rest — message content, lead PII — is encrypted, not just the credentials protecting itAddressable
(b) Audit controlsA record of who viewed, exported, or deleted which conversation, and whenRequired
(c)(2) Integrity mechanismA way to detect whether a stored transcript was alteredAddressable
(d) Person or entity authenticationVerifying the admin logging in is who they claim to beRequired
(e)(2)(i) Transmission integrity controlsDetecting tampering with messages between browser and serverAddressable
(e)(2)(ii) Transmission encryptionTLS between the visitor’s browser, your server, and any AI provider APIAddressable

That table is the whole technical bar a HIPAA compliant chatbot has to clear — nine provisions, none of them exotic. Two things stand out. “Required” doesn’t mean “hard” — unique logins and person authentication are baseline engineering, not a compliance stretch. And “Addressable” is doing a lot of work on this table — it’s the most misread term in the whole rule, and it’s worth being precise about what it actually means.

Audit Controls: The Gap Most Self-Hosted Stacks Have

Audit controls — §164.312(b) — are Required, not Addressable, and they’re the gap most self-built or lightly customized chat stacks actually have. Most backends log for debugging (errors, timing) and for product analytics (message counts, session length), but neither is an audit trail. An audit trail answers one narrow question: which authenticated user accessed, exported, or deleted which conversation, when, and from where.

To be direct about where AI Chat Agent stands today: there’s no built-in audit log or access trail, no RBAC — every admin shares the same permission level, no role column separating an intake coordinator from a full administrator — and no 2FA/MFA on the admin login. None of that is unusual for a self-hosted product in this category, but it means these three items are yours to build before a HIPAA compliant chatbot deployment touches real PHI, not optional hardening for later.

The audit log isn’t a hard build — a table plus write hooks around every read/export/delete path in the admin panel:

CREATE TABLE phi_access_log (
  id            BIGSERIAL PRIMARY KEY,
  actor_user_id UUID NOT NULL REFERENCES users(id),
  action        TEXT NOT NULL CHECK (action IN ('view', 'export', 'delete', 'login_failed')),
  resource_type TEXT NOT NULL,       -- 'conversation', 'lead', 'session'
  resource_id   UUID NOT NULL,
  ip_address    TEXT NOT NULL,       -- store hashed, same pattern as visitor IPs
  occurred_at   TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_phi_access_log_resource ON phi_access_log (resource_type, resource_id);
CREATE INDEX idx_phi_access_log_actor ON phi_access_log (actor_user_id, occurred_at);

The hard part isn’t the schema, it’s discipline: every controller path touching a conversation or lead needs to write here before it returns, and the table needs to be append-only — revoke UPDATE/DELETE from the application role — so the log can’t be edited after the fact. Pair it with unique logins and person authentication, both already Required, and you’ve closed the largest of the three gaps.

Encryption: What “Addressable” Really Means

”Addressable” is not a synonym for optional. That’s worth stating plainly, since it’s the excuse behind most under-engineered healthcare software. An addressable specification means implement it, or document in writing, as part of your risk assessment, why it isn’t reasonable and appropriate for your environment, and implement an equivalent alternative instead. Skipping it with no documentation and no alternative isn’t addressing it. It’s just not doing it.

Addressable Does Not Mean OptionalAddressable specificatione.g. encryption at rest, auto-logoffReasonable andappropriate for yourenvironment?YesNoImplement itStandard build pathDocument why + implementan equivalent alternativein your written risk assessmentSkipping it with no documentation and no alternative isn’t addressing it — it’s just not doing it.
An addressable safeguard still requires a decision and a paper trail — “we skipped it” is never one of the two valid outcomes.

HIPAA is also technology-neutral — it names no algorithms. It doesn’t say AES-256, it doesn’t say TLS 1.2, it doesn’t say bcrypt cost factor 12. HHS points to NIST guidance instead (SP 800-66 Rev. 2 for the Security Rule generally, SP 800-52 for TLS) rather than hard-coding a cipher suite into the regulation. A vendor claiming “HIPAA requires AES-256” is paraphrasing NIST’s current recommendation, not quoting the statute.

The honest state of encryption in AI Chat Agent as of v1.8.1: AES-256-GCM is applied to AI provider API keys and notification channel secrets — the credentials, not the conversations. Message content and lead PII (name, email, phone) are stored in plaintext in Postgres. Visitor IPs are the exception, SHA-256 hashed with a salt, never raw. TLS in transit is the operator’s job to provision — the standard path is Nginx plus Let’s Encrypt in front of the stack, which the Docker Compose setup supports but doesn’t force.

Practically: plaintext-at-rest PHI is the addressable gap a HIPAA compliant chatbot has to close before it handles real patient conversations — either Postgres-level encryption (pgcrypto for column-level, full-disk/volume encryption on the host as the documented alternative) or application-level field encryption for message content and lead PII before it reaches the database. Given where the pending NPRM is headed, treat encryption-at-rest as required today, not addressable-if-convenient.

Retention, Deletion, and Patient Records

Retention is genuinely tricky, and it’s where HIPAA compliant chatbot advice usually goes wrong, because HIPAA doesn’t set one retention clock — state medical records laws do, ranging from a few years to well past a minor’s age of majority. That’s a legal question for your compliance lead, not an engineering default. What engineering owns is making sure the software can implement whatever number legal decides, per bot, and prove it did.

This is one area the built-in tooling handles well. AI Chat Agent ships per-bot retention settings — sessionDays (default 90) and leadDays (default 365) — plus a preserveConvertedLeads flag so a lead that became an actual patient doesn’t get auto-deleted on the generic schedule. A daily 3 AM cleanup cron enforces whatever window is set, and setting either value to 0 disables automatic deletion for cases where legal wants indefinite retention on a specific bot. Manual single-record and bulk deletion cover one-off requests, like a patient asking you to remove their conversation.

Two things to configure deliberately rather than leave on defaults. The 90/365-day defaults are starting points, not compliance numbers — match them to whatever your legal team determines for your state, which may be longer. And “deleted” should mean gone: verify the cleanup job hard-deletes from Postgres rather than flagging a soft-delete, and check it doesn’t leave orphaned rows in the embeddings table if you’re running the RAG knowledge base. A retention policy that leaves shadow copies in a vector index isn’t a retention policy.

Trackers, IP Addresses, and the Becerra Ruling

In December 2022, OCR published a bulletin on online tracking technologies arguing that IP addresses collected by pixels on unauthenticated public health pages could themselves be PHI — because the IP plus a visit to a condition-specific page allegedly identified a person’s health interest. It was revised in March 2024 but kept that core theory.

That theory got directly challenged. In American Hospital Association v. Becerra (N.D. Texas, decided June 20, 2024), the court vacated OCR’s “proscribed combination” theory as applied to IP-address metadata from an unauthenticated public webpage. OCR withdrew its appeal on August 29, 2024, so the ruling stands, and no replacement guidance has been issued since. The practical read: a third-party tracker’s mere presence on a public marketing page isn’t automatically a violation anymore, at least on the fact pattern the court addressed. Actually transmitting real PHI to a third party — a chat transcript, an appointment confirmation, anything tied to an identified patient — is still a violation regardless of what page it happened on.

That distinction matters for a HIPAA compliant chatbot because the widget usually loads on both the public marketing site and the authenticated patient portal — two different risk profiles. A chatbot on a public “our services” page, no login, no health-specific content, sits closer to what Becerra addressed. The same widget post-login, capturing a name and a symptom and shipping analytics events to a third-party tracker alongside it, doesn’t get that ruling’s benefit. Hashing visitor IPs with SHA-256 and a salt, which AI Chat Agent does by default, limits exposure if that table is ever breached — but it doesn’t govern what your analytics stack sends to someone else’s pixel on the same page.

Keeping PHI Off Third-Party APIs Entirely

Everything above assumes you’re sending PHI to an external LLM API and managing that relationship with a BAA. There’s a simpler option: don’t send it anywhere.

Self-hosted inference removes an entire category of compliance work — no BAA negotiation with a model provider, no retention window to audit, no dependency on a vendor’s policy changes affecting your ability to serve patients. The trade-off is you own the inference infrastructure: compute, model updates, quality tuning that a frontier hosted API otherwise handles for you. For many healthcare use cases — appointment scheduling, FAQ deflection, intake triage against a fixed knowledge base — a well-tuned open-weight model running locally is adequate. It pairs well with the RAG knowledge base, which grounds answers in your own documents with a similarity threshold and refuses to answer rather than hallucinate when the knowledge base doesn’t cover the question — useful where a confident wrong answer about a medication is real harm.

Wiring this up means configuring the Custom provider in the admin panel to point at a local endpoint. In the Admin → AI Provider settings, set:

# Admin UI → AI Provider settings
Provider: Custom (OpenAI-compatible)
API Base URL: http://ollama:11434/v1
API Key: (leave blank for local Ollama, or any string if your local instance requires auth)
Model: llama3.1:8b-instruct

# docker-compose.yml — Ollama joins the internal bridge network,
# never exposed outside it
services:
  ollama:
    image: ollama/ollama:latest
    volumes:
      - ollama_data:/root/.ollama
    networks:
      - internal
    # no ports: published — reachable only from the server container

With this in place, the prompt, the retrieved knowledge-base chunks, and the model’s response never leave the Docker network you control — no external API call happens at all. That collapses “which AI providers will sign a BAA” down to “not applicable,” because there’s no third party in the inference path to sign one with. It doesn’t remove the rest of the Security Rule — the safeguards above still apply — but it removes the largest source of third-party risk in the stack, and for most teams it’s the shortest path to a HIPAA compliant chatbot deployment you can defend. For deployment mechanics, see our Docker deployment guide.

What This Actually Costs

The budget question lands early: what does a HIPAA compliant chatbot actually cost to run? Enterprise healthcare messaging platforms mostly don’t publish pricing — itself a signal that you’re expected to be a five- or six-figure deal before anyone gives you a number. Salesforce Health Cloud is one of the few with public list pricing: around $350/user/month on Enterprise, $525/user/month on Unlimited. For a 5-person practice on Enterprise, that’s roughly $21,000/year before implementation, for a platform where you don’t control the infrastructure or see the source.

Self-hosting flips the structure. AI Chat Agent is a one-time EUR 79 license — no per-seat, no monthly fee, full source code, lifetime updates — running on a VPS you provision. A 2-4 vCPU / 8 GB instance suitable for the Docker Compose stack (Postgres+pgvector, Redis, Node backend, React admin, Nginx) runs roughly $20-60/month depending on provider, plus backups and TLS, which Let’s Encrypt makes essentially free. That’s low hundreds of dollars a year in infrastructure versus five figures in SaaS licensing for a comparable seat count.

The honest caveat: that comparison isn’t apples-to-apples until you account for engineering time. The SaaS number buys a signed BAA and someone else’s audit trail, RBAC, and MFA already built. The self-hosted number buys the software and perimeter control — the audit log, role separation, 2FA, and at-rest encryption gaps above are yours to close, and that’s real hours, not zero. For a team with in-house engineering capacity, the trade is usually still a large net saving; for a team with none, budget the build time honestly before committing on license price alone. We cover that broader trade-off, outside healthcare specifically, in self-hosted vs. SaaS chatbots, and the same build-vs-buy math shows up under different rules in financial services chatbots.

Your HIPAA-Compliant Chatbot Build Checklist

The whole article as a HIPAA chatbot checklist, in build order:

  • Confirm PHI is actually in play. If names, contact info, or health context ever appear in a transcript, everything below applies.
  • Get BAAs signed with every vendor that stores the transcript and every LLM API you call — or eliminate the LLM BAA question by routing through a self-hosted model via a Custom/OpenAI-compatible endpoint.
  • Unique logins and person authentication for every admin — Required, and usually already there in any decent auth system.
  • Build the audit log — who viewed, exported, or deleted which conversation, when. This is the gap most self-hosted stacks actually have; the DDL sketch above is a starting point, not a finished design.
  • Add RBAC — separate roles for who can view PHI versus who just manages bot configuration.
  • Add 2FA/MFA on admin accounts, especially anyone with export or delete access.
  • Encrypt PHI at rest — column-level or full-disk — and document the decision either way, since encryption is addressable, not skippable.
  • Set retention deliberately per bot, matched to your state’s medical records requirements, and verify deletion actually clears the embeddings index too.
  • Separate public and authenticated tracking. Keep third-party pixels off any flow where PHI could appear in a conversation, regardless of what Becerra did or didn’t settle.
  • Provision TLS end to end — visitor to server, server to any external API — and don’t treat it as done just because the widget loads over https.
AI Chat Agent v1.8.1: Ships Today vs. You Must BuildShips todayYou must buildPer-bot data retentionsessionDays / leadDays defaultsHashed visitor IPsSHA-256 with a saltJWT + bcrypt admin authunique logins, not sharedAES-256-GCM on secretsAPI keys only, not messagesTLS-readyNginx + Let’s EncryptAudit logno built-in access trailRBACone shared permission levelMFA / 2FAno second factor at loginAt-rest PHI encryptionmessages, lead PII in plaintextAddressable today under 164.312(a)(2)(iv) —expect it mandatory under the 2027 NPRM
Retention, IP hashing, auth, and secret encryption ship out of the box. Audit logging, RBAC, MFA, and at-rest PHI encryption are yours to build before go-live.

None of this is exotic engineering — a schema, a role column, an MFA library, a documented encryption decision, and the discipline to keep the audit log honest once it exists. That work is the real distance between a chat widget and a HIPAA compliant chatbot deployment that survives an audit. Watch the Security Rule NPRM too: published January 6, 2025, still pending with an OMB target of July 2027, it proposes removing the addressable/required distinction and making encryption, MFA, and asset inventory flatly mandatory. Build to that bar now and the final rule won’t be a scramble. More deployment and compliance breakdowns live on the blog.

Frequently Asked Questions

Is an AI chatbot HIPAA compliant?

Not by itself. HIPAA regulates organizations, not products, so a vendor advertising a HIPAA compliant chatbot is making a marketing claim, not stating a legal status — no agency certifies software. What a tool can do is support your compliance: unique admin logins, an audit trail, encryption, retention controls, and a signed BAA behind it.

Do you need a BAA for a chatbot?

Yes, if the vendor stores or processes PHI — which any chatbot that logs conversations does. 45 CFR 164.502(e) requires you to obtain satisfactory assurance from the business associate, and 164.504(e) specifies what the contract must contain: permitted uses, safeguard obligations, breach reporting, and return-or-destroy on termination. The conduit exception is narrow and rarely covers a product that keeps transcripts.

Which AI models are HIPAA compliant?

None, strictly speaking — a model isn’t a legal entity, the company serving it is. All five major providers (OpenAI, Anthropic, Google Vertex AI, Azure OpenAI, and AWS Bedrock) will sign a BAA for their APIs, and none of them publish a dollar minimum for it. Running a self-hosted OpenAI-compatible model removes the third-party BAA question entirely, because no outside party ever sees the prompt.

Does HIPAA require encryption?

HIPAA is technology-neutral and names no algorithms. Encryption at rest and in transit are currently “addressable” under 45 CFR 164.312, which means you implement them, or document in your risk assessment why they aren’t reasonable and appropriate for your environment and implement an equivalent alternative instead. The Security Rule NPRM — published January 6, 2025, still pending with an OMB target of July 2027 — would make encryption and MFA flatly mandatory.

How long should you keep chatbot transcripts?

HIPAA sets no single retention period — state medical records laws do, and they range from a few years to well past a minor’s age of majority. Get the number from your compliance lead, then make the software enforce it: AI Chat Agent supports per-bot retention, with sessionDays defaulting to 90 and leadDays to 365, applied by a daily cleanup job. Verify the deletion is a hard delete and that it clears the embeddings index too.

Can you use Google Analytics on a healthcare website?

On public, unauthenticated pages, largely yes: American Hospital Association v. Becerra (N.D. Tex., June 20, 2024) vacated OCR’s theory that IP metadata from such a page is individually identifiable health information, and OCR withdrew its appeal on August 29, 2024. Tracker presence alone is not automatically a violation. Transmitting actual PHI to a third party still is, so keep analytics off any flow where a transcript, an appointment, or a patient identifier could be captured.

If you’re weighing what a self-hosted HIPAA compliant chatbot would cost you to build against another year of per-seat SaaS pricing, try the interface first: demo.getagent.chat has a live look at the admin panel, the RAG knowledge base, and the Custom provider settings described above. When you’re ready, get the EUR 79 license and start closing the gaps this article laid out — starting with the audit log.