Broadcast messaging (mass SMS to patients)
Send HIPAA-compliant SMS or email to many patients at once using a CSV import, with delivery reports, private replies, and team-based permissions.
Overview
Broadcast messaging lets you send the same HIPAA-compliant message to a group of patients at once. Common uses:
- Appointment scheduling and reminders
- Collecting co-payments
- Feedback surveys
- Clinical updates and advisories
A broadcast can include text, file attachments, images, and emojis. You get per-recipient delivery reports, and patient replies land in your inbox as private one-to-one conversations — no other patient sees them.
Prerequisites
- A paid plan with SMS Messaging enabled. Broadcast is a feature of SMS; see SMS messaging and Update payment method.
- Admin rights to manage the team attached to your phone number (only team members can launch a broadcast).
- A CSV file of recipients (see schema below), or an existing group of patients already in BloomText.
Steps
1. Prepare a CSV file
At minimum, the CSV needs one column: the cell phone number. Optional columns fill in patient records and are used for personalization.
Your sheet should look like this. Row 1 is the header row — the names
in row 1 must match exactly (phone, first_name, etc.), lowercase,
with underscores where shown.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | phone | mrn | first_name | last_name | dob | |
| 2 | (555) 123-4567 | MRN-0001 | Amina | Patel | 1985-03-14 | amina@example.com |
| 3 | (555) 234-5678 | MRN-0002 | Jordan | Lee | 1990-07-22 | jordan@example.com |
| 4 | (555) 345-6789 | John | Smith | |||
| 5 | (555) 456-7890 | MRN-0004 | cora@example.com |
Only phone is required. Everything else (mrn, first_name,
last_name, dob, email) is optional — leave the cell blank if you
don't have it. BloomText accepts common phone-number formats and
normalizes them automatically.
Any spreadsheet app can export to CSV — that is the easiest way to prepare the file.
2. Match or create patient records
When you import, BloomText matches rows to existing patients by phone number or MRN. If a match is found, the existing patient record is updated with any extra fields from the CSV (first name, email, etc.). If no match is found, a new patient record is created.
3. Launch the broadcast
From the phone number's inbox, start a new broadcast, upload your CSV, write your message, and attach any files. You can preview the message and the recipient count before sending.
4. Handle replies
When a patient responds, their reply lands in your inbox as a private one-to-one conversation. No other broadcast recipient sees the reply. Follow up individually as needed — the follow-up is scoped to that patient only.
5. Analyze results
To review delivery results, go to Directory → Phone numbers, pick your number, and choose Export phone logs. The exported CSV opens in any spreadsheet app. It looks like this:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sent | From | To | First | Last | Status | ErrorMessage |
| 2 | 2026-04-22 09:14:02 PDT | +15551234567 | +15552349876 | Amina | Patel | Delivered | |
| 3 | 2026-04-22 09:14:02 PDT | +15551234567 | +15558765432 | Jordan | Lee | Delivered | |
| 4 | 2026-04-22 09:14:03 PDT | +15551234567 | +15550001111 | John | Smith | Error | Landline — cannot receive SMS |
| 5 | 2026-04-22 09:14:03 PDT | +15551234567 | +15552223333 | Cora | Chen | Delivered |
Full column reference:
| Column name | Description | Format |
|---|---|---|
Sent | Send timestamp | yyyy-mm-dd HH:mm:ss zzz |
From | Your organization's phone number | +1########## |
To | Patient's phone number | +1########## |
First | Patient's first name | text |
Last | Patient's last name | text |
Dob | Patient's date of birth | yyyy-mm-dd |
Email | Patient's email | |
Status | Delivery status | Delivered or Error |
ErrorCode | Carrier error code (if delivery failed) | text |
ErrorMessage | Descriptive error message | text |
Use this log to identify bad numbers, retry failures, and measure campaign reach.
Edge cases / gotchas
- Team membership controls who can broadcast. Only users on the team attached to the phone number can launch a broadcast. Admins manage team membership under Directory → Phone numbers.
- Matching is phone- or MRN-first. If your CSV has a new phone number but an existing MRN, the MRN wins — the existing record gets updated. If neither matches, a new record is created.
- Header names are case-sensitive. A typo like
First_Namecreates a silently unused column. Double-check spelling before uploading. - Opt-out handling. Patients can reply
STOPto opt out at the carrier level. Once opted out, future broadcasts to that number are blocked by the carrier and will showErrorin the export. - Large imports. Very large CSVs (tens of thousands of rows) can take time to ingest. Watch the progress indicator; do not re-upload mid-ingest or you'll get duplicate sends.
- Replies are always private. Even though the broadcast goes to many recipients, a reply is a one-to-one conversation. Treat replies the same way you'd treat any patient conversation from a PHI standpoint.
Common questions
Can patients reply to a broadcast?
Yes. Patient replies come back as private one-to-one conversations, not as replies to the full recipient list.
What CSV columns are required for a broadcast?
At minimum, include contact fields that identify each patient, such as phone number, name, date of birth, medical record number, or email depending on your import goal.
Can I send PHI in a broadcast?
Treat broadcast content carefully. If a message contains PHI, make sure it uses the appropriate secure patient messaging flow and that the recipient list is correct before launch.
How do patient opt-outs work?
Patients can reply STOP to opt out at the carrier level. Future broadcasts to that number are blocked and appear as errors in the export.
Who can launch a broadcast?
Only users on the team attached to the phone number can launch broadcasts from that number.
Related flows
Referenced by
Chat with other organizations
Invite people at other organizations to BloomText. External collaboration is free and unlimited; external users don't count against your seat limit.
Administrative features
Manage roles, add and remove members, approve invite requests, change organization policies, audit activity, and manage subscriptions.