System Email Content Customisation
Wellifiy sends your patients a set of standard emails when they book, reschedule or cancel an appointment. If you'd like those emails to carry your own wording, tone or language, you can replace the subject line and the body with your own version.
You don't need to write anything from scratch. This article includes a ready-made, copy-paste template for each email — start from the one you want, change the words to suit you, and you're done.
Custom emails are set per Patient Group, so a group running in a different language, or an employer who wants their own wording, can have emails that differ from the rest of your Organisation.
📍 Where to Find Email Customisation
Go to:
Patient Groups → open the Patient Group → Email Customisation
Email Customisation is switched on per Organisation. If you can't see the tab, contact support@wellifiy.com and we'll enable it for you.
✉️ Which Emails You Can Customise
| When it's sent | |
|---|---|
| Booking Confirmed | A patient's appointment is booked |
| Appointment Reminder | Ahead of an upcoming appointment |
| Booking Rescheduled | An appointment is moved to a new time |
| Booking Cancelled | An appointment is cancelled |
All four are listed on the Email Customisation tab, whether or not you've customised them. There's a copy-paste template for each in the next section, and any email you leave alone keeps sending exactly as it does now.
More emails are being added over time. The list in your Staff Portal is always the current one.
📝 Adding a Custom Email
- Open the Patient Group, then go to Email Customisation
- Click + Add Template
- Choose the email you want to replace from the Email Template dropdown, then click Continue
- Tick Enabled
- Enter your Subject
- Paste a template from below into Content, then change the wording to suit you
- Click Save
Enabled starts unticked, and a template that isn't enabled does nothing, so tick it when you're ready for your version to start sending.
📄 Templates You Can Copy
One template per email, matching the standard wording your patients already receive. Copy the subject and content into the form, then change whatever you like.
The {{...}} parts are variables — placeholders Wellifiy fills in with the patient's details when each email is sent. They're explained fully in the sections after the templates, so you can add, move or remove them with confidence.
✅ Booking Confirmed
Subject:
Your {{clinic.name}} Appointment is Confirmed
Content:
<p>Hi {{patient.first_name}},</p>
<p>Your appointment at {{clinic.name}} is confirmed.</p>
<p><strong>Appointment Details</strong></p>
<ul>
<li><strong>Clinician:</strong> {{clinician.full_name}}</li>
<li><strong>Service:</strong> {{appointment.service_name}}</li>
<li><strong>Date & Time:</strong> {{appointment.date_time}}</li>
<li><strong>Location:</strong> {{appointment.location}}</li>
{{#appointment.video_call_url}}
<li><strong>Join by video:</strong> <a href="{{appointment.video_call_url}}">Join your video call</a></li>
{{/appointment.video_call_url}}
</ul>
<p><strong>Add to Calendar</strong></p>
<p>You can add this appointment to your calendar:</p>
<ul>
<li><a href="{{appointment.add_to_google_url}}">Add to Google Calendar</a></li>
<li><a href="{{appointment.add_to_outlook_url}}">Add to Outlook Calendar</a></li>
</ul>
<p>If you need to change or cancel your appointment, please contact us:</p>
<p>{{clinic.support_email}}</p>
<p>{{clinic.phone}}</p>
<p>Warm regards,<br>The {{clinic.name}} Team</p>
<p><span style="font-size: 12px;"><strong>Please do not reply to this automated email.</strong></span></p>
<p><span style="font-size: 12px;">If you have any questions or need assistance, please contact us directly: {{clinic.support_email}}</span></p>{{attachments.calendar_ics}}
⏰ Appointment Reminder
Subject:
Your {{clinic.name}} Appointment Reminder
Content:
<p>Hi {{patient.first_name}},</p>
<p>This is a friendly reminder about your upcoming appointment at {{clinic.name}}.</p>
<p><strong>Appointment Details</strong></p>
<ul>
<li><strong>Clinician:</strong> {{clinician.full_name}}</li>
<li><strong>Service:</strong> {{appointment.service_name}}</li>
<li><strong>Date & Time:</strong> {{appointment.date_time}}</li>
<li><strong>Location:</strong> {{appointment.location}}</li>
{{#appointment.video_call_url}}
<li><strong>Join by video:</strong> <a href="{{appointment.video_call_url}}">Join your video call</a></li>
{{/appointment.video_call_url}}
</ul>
<p>If you need to change or cancel your appointment, please contact us:</p>
<p>{{clinic.support_email}}</p>
<p>{{clinic.phone}}</p>
<p>Warm regards,<br>The {{clinic.name}} Team</p>
<p><span style="font-size: 12px;"><strong>Please do not reply to this automated email.</strong></span></p>
<p><span style="font-size: 12px;">If you have any questions or need assistance, please contact us directly: {{clinic.support_email}}</span></p>
This email carries no calendar links or invite attachment. The patient was sent those when the appointment was booked.
🔁 Booking Rescheduled
Subject:
Your {{clinic.name}} Appointment Has Been Rescheduled
Content:
<p>Hi {{patient.first_name}},</p>
<p>Your appointment has been rescheduled. Please see the updated details below:</p>
<p><strong>Updated Appointment Details</strong></p>
<ul>
<li><strong>Clinician:</strong> {{clinician.full_name}}</li>
<li><strong>Service:</strong> {{appointment.service_name}}</li>
<li><strong>Date & Time:</strong> {{appointment.date_time}}</li>
<li><strong>Location:</strong> {{appointment.location}}</li>
</ul>
<p><strong>Add to Calendar</strong></p>
<p>You can add this appointment to your calendar:</p>
<ul>
<li><a href="{{appointment.add_to_google_url}}">Add to Google Calendar</a></li>
<li><a href="{{appointment.add_to_outlook_url}}">Add to Outlook Calendar</a></li>
</ul>
<p>If you need to change or cancel your appointment, please contact us:</p>
<p>{{clinic.support_email}}</p>
<p>{{clinic.phone}}</p>
<p>Warm regards,<br>The {{clinic.name}} Team</p>
<p><span style="font-size: 12px;"><strong>Please do not reply to this automated email.</strong></span></p>
<p><span style="font-size: 12px;">If you have any questions or need assistance, please contact us directly: {{clinic.support_email}}</span></p>{{attachments.calendar_ics}}
🚫 Booking Cancelled
Subject:
Your Appointment at {{clinic.name}} Has Been Cancelled
Content:
<p>Hi {{patient.first_name}},</p>
<p>This is to confirm that your appointment at {{clinic.name}}, originally scheduled for:</p>
<ul>
<li><strong>Clinician:</strong> {{clinician.full_name}}</li>
<li><strong>Service:</strong> {{appointment.service_name}}</li>
<li><strong>Date & Time:</strong> {{appointment.date_time}}</li>
<li><strong>Location:</strong> {{appointment.location}}</li>
</ul>
<p>has been <strong>cancelled</strong>.</p>
<p>If this was a mistake or you'd like to rebook please contact us:</p>
<p>{{clinic.support_email}}</p>
<p>{{clinic.phone}}</p>
<p>Warm regards,<br>The {{clinic.name}} Team</p>
<p><span style="font-size: 12px;"><strong>Please do not reply to this automated email.</strong></span></p>
<p><span style="font-size: 12px;">If you have any questions or need assistance, please contact us directly: {{clinic.support_email}}</span></p>
This email carries no calendar links or invite attachment. A cancellation has nothing to add to a calendar.
🔗 The Variables You Can Use
Your wording is fixed, but the details in each email are not. Wellifiy fills those in when the email is sent, using variables: a name wrapped in double curly brackets, like {{patient.first_name}}.
Write the variable where you want the detail to appear. So this:
<p>Hi {{patient.first_name}}, your appointment is on {{appointment.date_time}}.</p>
reaches the patient as "Hi Jamie, your appointment is on 16 Jul 2026 14:00 (AEST)."
Each email offers its own set. A name that works in one email won't work in another, so check the last column before you move a variable between templates.
| Variable | What it fills in | Available in |
|---|---|---|
{{clinic.name}} |
Your Organisation's name | All four |
{{clinic.support_email}} |
Your support email address | All four |
{{clinic.phone}} |
Your phone number | All four |
{{patient.first_name}} |
The patient's first name | All four |
{{patient.last_name}} |
The patient's surname | All four |
{{clinician.full_name}} |
The clinician the appointment is with | All four |
{{appointment.service_name}} |
The Service booked | All four |
{{appointment.location}} |
The appointment location. Free text, so it may be an address, a room or a video link | All four |
{{appointment.date_time}} |
The appointment date and time | All four |
{{appointment.video_call_url}} |
The link for joining the appointment's video call | Booking Confirmed, Appointment Reminder |
{{appointment.add_to_google_url}} |
An add-to-calendar link for Google Calendar | Booking Confirmed, Booking Rescheduled |
{{appointment.add_to_outlook_url}} |
An add-to-calendar link for Outlook | Booking Confirmed, Booking Rescheduled |
{{attachments.calendar_ics}} |
Attaches a calendar invite to the email | Booking Confirmed, Booking Rescheduled |
A few things worth knowing:
clinicin these names refers to your Organisation. It's the internal name for the same thing- There's no variable for the patient's full name. Write
{{patient.first_name}} {{patient.last_name}}if you want both - Times are always shown in the patient's timezone, so there's no need to add a timezone note of your own
- On Booking Rescheduled, only the new appointment time is available. There's no variable for the time the appointment used to be at
- A plain
{{name}}tag is all you need for everything in the table above. There's one place where a slightly different tag earns its keep, showing the video call link only when there is one, and it's covered below - Variable names are exact. If you type one this email doesn't offer, it fills in nothing at all and the email still sends, so check your spelling before you save
📅 Calendar Links and the Invite Attachment
{{appointment.add_to_google_url}} and {{appointment.add_to_outlook_url}} are links, so put them inside a normal HTML link:
<a href="{{appointment.add_to_google_url}}">Add to Google Calendar</a>
{{attachments.calendar_ics}} works differently. It's a switch rather than a detail. It shows nothing in the email itself, and its only job is to attach the calendar invite file. Include it anywhere in your wording and the invite is attached. Leave it out and the email sends without one.
🎥 The Video Call Link
Booking Confirmed and Appointment Reminder can carry a link straight to the appointment's video call. It's already in both templates above, as the last row of the appointment details list:
{{#appointment.video_call_url}}<li><strong>Join by video:</strong> <a href="{{appointment.video_call_url}}">Join your video call</a></li>{{/appointment.video_call_url}}
That row is wrapped in a matching pair of tags, opening with {{# and closing with {{/, both carrying the same variable name. The pair means only show this if there's a video call link, so a patient with a video appointment gets the row and a patient coming in person never sees it. You can leave it in place whether or not your Organisation runs video appointments.
Two things to get right if you write a pair like this yourself. Both tags need the same variable name, and the closing tag needs its /. An opening tag with no closing tag will stop the email sending altogether.
Booking Rescheduled and Booking Cancelled don't offer this variable, so their templates have no video row.
🫥 Values That Are Sometimes Empty
Some details aren't always there. An appointment might have no clinician assigned, and not every Organisation has a phone number saved. When one of those is empty, the variable fills in nothing at all, and the words sitting around it are left stranded.
The templates above avoid this by giving every sometimes-empty value its own line or its own list row:
<li><strong>Clinician:</strong> {{clinician.full_name}}</li>
An appointment with no clinician then reaches the patient as a row reading "Clinician:" with nothing after it, which is untidy but harmless. Written mid-sentence instead, the same missing value produces "Your appointment with is confirmed."
The support email and the phone number are on separate lines in the templates for the same reason. Joined together as "email | phone", an Organisation with no phone number saved would send a stray vertical bar to every patient.
If an empty row would bother you, you have two options: take it out of the template, or wrap it so it only appears when there's something to show, the way the video call row does below.
⚙️ Managing Your Templates
Every customisable email has a row on the Email Customisation tab, and the Setting column shows what that row is currently doing:
- Enabled — your version is being sent
- Disabled — your version is paused. Your subject and content are kept, and patients fall through to the Default Patient Group
- Use System Email — this group deliberately sends the standard Wellifiy email and ignores anything set on the Default Patient Group
- No template — you haven't created one for this email
Click the ••• menu on a row to Edit it, Disable Override, switch it to Use System Email, or Remove Template, which deletes your wording permanently.
🎯 Which Version Each Patient Receives
Only two Patient Groups are ever considered for a patient: their own group, and your Default Patient Group. A template sitting on any other group is never used for them.
Wellifiy looks at the patient's own group first:
| The patient's own Patient Group | What happens |
|---|---|
| Enabled | That group's version is sent. The Default Patient Group isn't consulted |
| Disabled, or No template | Falls through to the Default Patient Group |
| Use System Email | The standard Wellifiy email is sent, even if the Default Patient Group has one enabled |
When it falls through, the Default Patient Group is checked the same way: an Enabled template there is sent, and anything else means the standard Wellifiy email.
That's the difference between the two ways of switching a template off. Disabled means "not from this group" and lets the patient inherit. Use System Email means "the standard email, whatever anyone else has set."
Two situations to keep in mind. Patients in the Default Patient Group itself, and patients with no Patient Group, have nowhere to fall through to, so only an Enabled template reaches them. And cloning a Patient Group doesn't copy its custom emails — add them to the new group yourself, or let your Default Patient Group templates cover it.
🤖 Using AI to Reword a Template
If you want to change more than a few words, an AI assistant is good at this kind of rewrite, as long as you tell it to leave the variables alone. Claude, ChatGPT, Copilot, Gemini — whichever your Organisation already uses is fine.
- Copy the template you want to change from this article, or from Content if you've already saved one
- Copy the prompt below into your AI assistant
- Replace the two bracketed parts: describe how you want the email to sound, and paste in the template
- Paste the result back into Content, then save and send yourself a test
I'm editing an email template for my healthcare practice's patient booking system. The template uses Mustache syntax and it has to keep working, so please follow these rules exactly.
Rules:
- Rewrite the visible wording only. Anything inside double curly brackets is a variable, for example {{patient.first_name}}. Carry every variable across exactly as spelled, and do not rename, translate, reformat or remove any of them.
- Do not invent new variables. Use only the ones already present in the template I give you.
- Keep the tag style exactly as you find it. A variable written as a plain {{name}} tag stays a plain tag. If part of the template is wrapped in a matching pair such as {{#name}} ... {{/name}}, keep that pair intact, with the same name in both tags and the closing tag always present. Do not add conditionals, loops or logic of your own.
- Some values are sometimes empty, such as the clinician or the phone number. Keep each of those on its own line or its own list row, never mid-sentence and never joined to another value by a separator character.
- If the template contains {{attachments.calendar_ics}}, keep it exactly where it is.
- Keep the HTML simple. Paragraphs, line breaks, bold, unordered lists and links only.
- Return the finished HTML on its own, with no explanation, commentary or code fences.
Here is how I want it to sound: [describe the change, for example: language to be translated to, warmer and less formal / shorter and more direct / plain language at a lower reading level / addressed to employees rather than patients]
Here is the template:
[paste the template here]
The same prompt works for subject lines. Just paste the subject in instead of the body.
Two things to check before you save. AI assistants will occasionally invent a variable that sounds plausible, like {{patient.full_name}}, so compare every variable in the result against the table above. And if your template uses a {{#...}} pair, check it's come back complete with its matching {{/...}} closing tag, since an unclosed pair stops the email sending.
Templates contain no patient information, only placeholders that Wellifiy fills in at the moment of sending, so there's nothing confidential in what you paste into an AI assistant.
💡 Best Practices
- Set your wording up on the Default Patient Group first, then add a group-specific template only where the wording genuinely needs to differ
- Start from a template above rather than an empty box, so you're editing the email your patients already know
- Book a test appointment for a test patient after saving, so you see the finished email exactly as your patients will
- Keep the HTML simple. Paragraphs, lists, line breaks and links cover almost everything
- Type your wording straight into Content, or paste from a plain text editor. Pasting from Word brings hidden formatting with it
- Check every variable against the table above before you save. A name that email doesn't offer fills in nothing, and nobody is warned
- Make sure every variable is complete, with both opening and closing brackets. A half-finished variable such as
{{patient.first_namewill stop the email sending altogether - Use Disable Override rather than Remove Template if you only want to pause your version. Removing deletes your wording for good
Next step:
➡️ Check your Organisation's contact details under Administration → Portal Settings, so {{clinic.support_email}} and {{clinic.phone}} fill in correctly.