Emily Lane
June 21, 2026

Table of contents
What actually makes a text a violation
How to text patients without sending PHI
Minimum necessary, applied to a text
When you need a BAA to text patients
The TCPA is a separate gate, and a BAA does nothing for it
Enforcing it at scale: template categorization
Wrapping up: a pre-send checklist
Frequently asked questions
You want to text patients. Appointment reminders, a "your results are ready" nudge, a balance notice. It's the channel people actually read, and it beats playing phone tag. Then someone on the team asks the question that stalls the whole project: "Wait, is that even allowed under HIPAA?"
Here's the short answer. No, texting patients is not automatically a HIPAA violation. Texting patients is allowed when the message contains no protected health information (PHI) or when it's sent through a secure, HIPAA-compliant platform under a signed business associate agreement (BAA). It becomes a violation when an unsecured text carries PHI, or when you text without the consent the TCPA requires. Get the content and the pipeline right and you can text patients all day. Get them wrong and a routine reminder turns into a reportable breach.
The whole thing comes down to one engineering decision: decouple the alert from the protected health information. Tell someone that something happened, and keep the sensitive detail behind authentication. Everything else in this post (the minimum-necessary rule, when you need a BAA, consent) follows from that one move. One honest caveat before we start: we're engineers, not your compliance lawyers. What follows is the engineering reality of staying on the right side of the line, not legal advice.
A text to a patient crosses into a violation in one of two ways.
The first is protected health information (PHI) traveling over an unsecured channel. PHI is any health data tied to an individual: a diagnosis, a treatment, a test result, or even the bare fact that someone is your patient. And it composes. A name on its own isn't PHI. But a name, plus the date of an appointment, plus the fact that it's at an oncology clinic, together can be. That combination in a plain text message is the classic violation.
The second is contacting someone you don't have permission to contact, or sending through a pipeline that doesn't meet the bar. This is less about content and more about consent and infrastructure, and it's where the TCPA enters the picture later in this post.
The reason plain consumer SMS is risky for PHI is structural. Standard text messages aren't encrypted end to end. They pass through and sit on carrier servers. They leave no audit trail you control. So a text that carries PHI through a normal SMS pipeline fails the HIPAA Security Rule's requirements for encryption, access controls, and audit logging before anyone even reads it.
The core principle for texting patients safely is to separate the notification from the data. The text says something happened. The sensitive specifics live behind a login, in your app, your patient portal, or an in-app inbox.
So instead of texting the result, you text a nudge to go read it. Here's the version that creates a problem:
Copied!
{"message": {"to": { "phone_number": "+15555550123" },"content": {"title": "Lab results","body": "Your HbA1c is 8.2%, consistent with type 2 diabetes. Call the clinic to discuss."}}}
That payload puts a diagnosis into an unencrypted channel. Anyone who picks up the phone, or intercepts the message, sees it. Here's the version that doesn't:
Copied!
{"message": {"to": { "phone_number": "+15555550123" },"template": "results-ready","data": { "portal_url": "https://portal.example-health.com/results" }}}
The results-ready template renders something generic: "Your latest results are ready. Sign in to your secure portal to view them." Same urgency, same prompt to act, none of the disclosure. The patient still gets pushed to the information immediately. The information itself never touches the text.
This pattern covers the large majority of patient texting. Appointment reminders, results-ready alerts, billing notices, and care nudges can almost all be written as "something is waiting for you, here's where to see it."
HIPAA has a rule called minimum necessary: use and disclose only the information a task actually requires. Applied to a text message, it's a useful filter for what belongs in the body and what doesn't.
An appointment reminder is a good test case. What it legitimately needs is small. What pushes it into PHI territory is the detail that hints at why.
| Safe in the body | Risky in the body |
|---|---|
| Date and time of the appointment | The provider's specialty ("oncology," "psychiatry") |
| A generic location ("Main Street clinic") | The reason for the visit or a diagnosis |
| A prompt to sign in or call | Test names, results, or medication names |
| A confirmation or reschedule link | Anything that identifies a condition |
There's one wrinkle worth knowing. Under the Privacy Rule, patients have a right to alternative communications: they can ask to be reached a specific way, including a less secure one like plain SMS, even when that carries some risk. If the request is reasonable, you generally honor it, warn the patient of the risk, and document that you did. That documented preference is what protects you later, which is the throughline of the next two sections.
A business associate agreement (BAA) is the contract a vendor signs before it's allowed to handle PHI on your behalf. The rule for texting is clean:
If a text contains PHI, you need a secure platform under a signed BAA. Full stop. "Secure" here means real controls: encryption, access controls, and audit logging, none of which plain SMS or standard email provides. And if a vendor won't sign a BAA, you can't route PHI through it, no matter what its marketing page promises.
If a text contains no PHI, you technically don't need a BAA for that message. But a BAA is still the safe default, for one practical reason: the line between "not PHI" and "PHI" is thinner than it looks, and it tends to move as your templates grow. A reminder that's generic today gets a "helpful" field added next quarter, and suddenly it's disclosing a specialty. Sending everything through a BAA-covered, HIPAA-compliant pipeline means a slip in content doesn't also become a slip in infrastructure.
Here's the trap. You strip every text of PHI, sign your BAA, and assume you're done. You're not, because content is only half the problem. The Telephone Consumer Protection Act (TCPA) governs contacting people with automated systems, and it applies even to a text with zero PHI in it.
Three things follow:
So "no PHI" doesn't mean "no rules." A compliant patient text is one that's clean on content (HIPAA), permitted to send (TCPA consent), and actually deliverable (A2P 10DLC).
Everything above is easy to honor when one careful engineer writes one text. The real problem shows up at scale, when you have dozens of templates and a handful of services that can all trigger a send. It only takes one template, or one well-meaning change to an existing one, to drop PHI into an SMS body. Code review catches some of it. It will not catch all of it forever.
The durable fix is to make the unsafe send structurally impossible rather than merely discouraged. Categorize your templates by sensitivity, and bind sensitive content to secure channels only, so a template carrying PHI cannot render into SMS or push regardless of what data the upstream service passes in.
This is where a notification platform earns its place in a healthcare stack. With Courier, channel routing and template configuration live in the notification layer instead of being re-implemented in every service, so you can enforce "this category never goes to SMS" once, centrally. A results-ready nudge is allowed to fan out to SMS, push, and the in-app inbox because it's generic by construction. A template that renders clinical detail is restricted to the in-app inbox or portal, behind authentication.
Copied!
import { CourierClient } from "@trycourier/courier";const courier = new CourierClient({ authorizationToken: process.env.COURIER_TOKEN });// A results-ready nudge: generic by design, safe to fan out to SMS.await courier.send({message: {to: { user_id: "patient_4821" },template: "results-ready",routing: { method: "single", channels: ["sms", "push", "inbox"] },data: { portal_url: "https://portal.example-health.com/results" },},});
The point isn't the exact config. It's that the rule lives in one place and holds for every send, so compliance doesn't depend on every engineer remembering it every time. Courier runs this on HIPAA-compliant infrastructure under a BAA, with encryption, audit logs, and a delivery and preference history, which is also the evidence layer the next section depends on.
Texting patients is allowed. The job is making sure each text is clean on content, permitted to send, and deliverable. Before you text a patient, run the list:
Nail those six and texting patients stops being a compliance risk and goes back to being what you wanted it to be: the fastest way to reach someone.
For the full picture, including how this fits into staffing, broker, survey, and compliance notifications, see Courier for healthcare. If you want to see how the compliance posture is built, read how Courier became HIPAA compliant.
Not inherently. Texting patients is allowed when the content and the platform both meet HIPAA's requirements. A text with no PHI, like "Your results are ready, sign in to view them," is low risk. A text containing PHI is only compliant when it's sent through a secure, BAA-covered service configured to HIPAA's security standards. Texting PHI from a personal phone or a basic consumer tool is where violations happen.
If the reminder contains PHI, yes, you need a BAA with whatever service sends it. Many teams avoid the question by keeping reminders minimal (date, time, generic location), but even then, using a vendor that will sign a BAA is the safe default, because the line between "not PHI" and "PHI" is thinner than it looks.
They can be. The fact that someone is your patient, plus an appointment date and the name of a specialty clinic, can together constitute protected health information. The safe practice is to keep reminders minimal: date, time, and a generic location, with no diagnosis, provider specialty, or reason for the visit unless the patient has explicitly asked for that detail.
You generally need both, and they're different. HIPAA consent governs sharing PHI. TCPA consent governs contacting someone with an automated system. An automated appointment reminder or balance text can require HIPAA consent for any PHI and TCPA consent for the automation, so build your intake to capture both.
A2P 10DLC is the US registration system for application-to-person texting over standard 10-digit numbers. If your medical or healthcare app sends automated SMS to US recipients, you need it. Carriers block unregistered traffic, which means unregistered messages can fail to deliver even when your software shows them as sent.
Related resources:

watchOS 27 Notifications: What Changed and How to Adapt Your Product Sends
Apple's watchOS 27, announced at WWDC 2026, presents Apple Watch notifications based on relevance instead of arrival time and expands contextual Smart Stack widgets. Because watch notifications mirror iPhone push, your push strategy is your watch strategy. This guide covers what product and B2B notification teams should change: setting APNs interruption levels honestly, writing glanceable payloads, routing by urgency across push, email, SMS, and in-app inbox, using widgets for status content, and handling the split audience after watchOS 27 drops Series 8, Ultra 1, and SE 2.
By Kyle Seyler
June 09, 2026

Your Entire Lifecycle Marketing Department, Run from Claude Fable 5
With the rollout of Claude' Fable model, one thing is becoming increasingly clear. Marketing execution (especially the long-tail work), will be done in an AI editor. In Courier, connect your agent to the MCP server or CLI, install Courier Skills, and keep a small folder of markdown context files. From there, one person with a coding agent covers the work that used to require a lifecycle marketer, an email designer, a marketing ops hire, and an engineer: building journeys, shipping templates, auditing every notification, and debugging delivery without opening a dashboard.
By Kyle Seyler
June 09, 2026

Human-in-the-loop for AI payment agents: building approval notifications that work
AI agents need human approval before taking consequential actions: financial commitments, irreversible changes, decisions that affect other people. This post covers how to design those checkpoints and build the notification infrastructure: multi-channel delivery, live context, escalation, and a back-and-forth question loop between reviewers and the agent.
By Eric Lee
May 26, 2026
© 2026 Courier. All rights reserved.