Patient Communications | Appointment Notifications
Last updated: November 9, 2026
Patient Communications sends patients texts and emails about their appointments: a confirmation when the appointment is booked, reminders before it, a join link for telehealth visits, and messages after a no-show or cancellation. Each is a card on the Campaigns tab of Notifications Admin, and each visit type can opt out or use its own wording. This guide is part of Patient Communications.
Overview
Five appointment campaigns: Appointment Confirmation, Appointment Reminders, Join Telehealth, No-Show Alert, and Cancellation Alert.
Each campaign has its own on/off toggle and a text and an email template. Every campaign is off until you turn it on.
Visit Type Overrides lets each visit type opt out of a campaign or use its own templates, channels, and timing.
Every message sent, skipped, or failed shows on the patient's Notifications tab in the chart.
Before you begin
Set up text and email delivery. See Plugin secrets in Patient Communications. Check Integration Status at the top of the Campaigns tab.
Turn off Canvas's built-in appointment reminders before turning on Appointment Reminders. The plugin cannot see that Canvas setting, so with both on, patients get two reminders. Canvas also sends its own telehealth instructions about 45 minutes before a telehealth visit while its reminders are set up; if you use Join Telehealth, ask your Canvas team to remove the built-in reminder setting entirely rather than shortening it.
Check patient contact details. Texts go to the patient's highest-ranked phone number that is marked as consenting to messages and not opted out. Emails go to the highest-ranked email address that is not opted out. A 10-digit number is treated as a US number.
The campaigns
Campaign | Sent when | Email subject |
|---|---|---|
Appointment Confirmation | Right after an appointment is booked | Appointment Confirmation |
Appointment Reminders | Before the appointment, at each reminder interval | Appointment Reminder |
Join Telehealth | Before a telehealth appointment, at each telehealth interval | Notification |
No-Show Alert | Right after an appointment is marked as a no-show | We Missed You |
Cancellation Alert | Right after an appointment is canceled | Appointment Cancelled |
Email subjects are fixed. Patients see your email from the sendgrid-from-email address, and texts from your Twilio number.
Appointment Reminders
Reminders go out for appointments that are unconfirmed, attempted, or confirmed.
Default Intervals sets how long before the appointment each reminder goes out. The default is 1 week, 1 day, and 2 hours. Type intervals with
wfor weeks,dfor days,hfor hours, andmfor minutes. A number on its own is read as minutes.Send Time for Day-Out Reminders sets the time of day for reminders 1 day or more ahead, in the time zone you pick (Eastern by default). A 1-day reminder goes out at that time on the day before the appointment. Days are counted whole, so 1d 12h behaves like 1d.
Reminders under 1 day go out that long before the appointment start.
Each reminder goes out once per appointment. If its time has already passed, for example when a visit is booked tomorrow and you have a 1-week reminder, it is skipped rather than sent late.
Form Reminder Text adds a line to reminders when the patient still has paperwork to do. Put {{form_reminder}} in a reminder template where you want it. The line is included when a questionnaire or intake assigned for this appointment is not finished, or when the patient has any consent waiting, and it is left out otherwise. {{forms_link}} inside it becomes a link to the patient's portal Forms page.
Join Telehealth
Join Telehealth sends a join link before telehealth appointments. The default Intervals is 15 minutes before; telehealth intervals are in minutes only.
An appointment counts as telehealth when its visit type is a telehealth visit type.
The link is the appointment's meeting link, or the provider's personal meeting room when the appointment has none.
If there is no link, nothing is sent, and the patient's Notifications tab shows "No meeting link on appointment or provider".
Cancellation Alert
To cancel an appointment without telling the patient, add the label Silent Cancel to the appointment before canceling it.
Edit a template
In Notifications Admin, on the Campaigns tab, click a campaign's arrow to open it.
Turn on the toggle on the right of the card.
Under SMS and Email, check the channels you want and edit each Template.
To add a field, click + Insert Field, or type
/in the template, and pick from the list.Click Save in the tab bar.
Field | Shows | When it's missing |
|---|---|---|
| The patient's name | |
| The patient's preferred name, or first name | |
| For example, March 05, 2026 | |
| For example, 09:30 AM ET, in the patient's time zone | |
| The appointment's description | Blank |
| The provider's first and last name | "your provider" |
| The provider's role abbreviations | Blank |
| The location's full name | "our clinic" |
| The location's details | Blank |
| Your organization's details | Blank |
| The telehealth join link | Blank |
| A link to the patient's portal Forms page | Blank |
| The Form Reminder Text line (reminders only) | Blank |
Times show in the patient's last known time zone, or the reminder time zone when the patient has none.
{{form_reminder}} works in Appointment Reminders only, and {{forms_link}} works in every appointment campaign except Join Telehealth. In other campaigns they are sent as typed, braces included.
Visit Type Overrides
Every campaign that is on applies to every visit type. The Visit Type Overrides tab lists your schedulable visit types, each with a section per campaign.
Turn a campaign off for one visit type with that section's toggle. A campaign that is off on the Campaigns tab is off for every visit type, whatever this tab says.
Use different wording or channels by clicking Customize. A template left blank uses the campaign's template. Unchecking both channels uses the campaign's channels; to stop sending for the visit type, use the toggle.
Use different timing: under Customize, Reminder Intervals and Send Time for Day-Out Reminders for reminders, and Telehealth Intervals for telehealth. Leave a field blank to use the campaign's setting.
Saved intervals and send times for a visit type stay in effect even when Customize is closed. To go back to the campaign's timing, clear them and save.
See what was sent
Open the patient's chart, then Patient Communications > Notifications. Notification History lists the patient's last 100 messages with the campaign and channel. Click a row to see who it went to, the exact text, and the result for each channel. A gray badge means the message was skipped, for example because the patient has no phone number with consent; a red badge means it failed and shows the reason.
From the same tab, Send Message sends a one-off text or email about one of the patient's last 20 appointments. Pick the Appointment and Campaign Type, click Preview, edit the text if needed, choose Channels, and click Send Message. One-off messages go out whether or not the campaign is on.
Troubleshooting
What you see | What to check |
|---|---|
Nothing was sent and nothing is in Notification History | The campaign is off on the Campaigns tab, off for this visit type on Visit Type Overrides, or has no channels checked. |
A gray SMS badge | The patient has no phone number marked as consenting to messages, or it is opted out, or Twilio is not configured. |
A gray Email badge | The patient has no email address, it is opted out, or SendGrid is not configured. |
A reminder never went out for a recent booking | Its interval had already passed when the visit was booked. Reminders are not sent late. |
A day-out reminder came at an unexpected time | It goes out at Send Time for Day-Out Reminders in the time zone chosen for the campaign or the visit type. |
The time in a message is in the wrong time zone | Times use the patient's last known time zone first. |
No telehealth link was sent | The appointment and the provider have no meeting link, or the visit type is not a telehealth visit type. |
A cancellation was not sent | The appointment has the Silent Cancel label. |
A message shows | That field doesn't work in this campaign. See the note under Edit a template. |
"your appointment" with two spaces |
|
Patients get two reminders | Canvas's built-in reminders are still on. |
A red badge with a carrier message, such as "Recipient has opted out of SMS (replied STOP)" | Twilio refused the message. The text explains why. |