System Email Content Customisation
Wellifiy automatically emails your patients when an appointment is booked, changed or cancelled, to remind them ahead of time, and as they set up and sign in to their account. You can now replace the default wording of these emails with your own.
You don't need to write anything from scratch. This article includes a ready-made, copy-paste template for each email, so you can start from the one you want and change the words to suit you.
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
✅ Appointment emails
| 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 |
🔑 Account and sign-in emails
| When it's sent | |
|---|---|
| Activated | A patient's account is activated |
| Temp Password | A temporary password is issued to a patient |
| Verify Code | A patient starts registration and needs to verify their email address |
| Reset Password | A patient's password has been reset |
All eight 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.
🔑 Account and sign-in emails
Activated
Subject:
Your account has been activated
Content:
<p>Hello {{patient.first_name}},</p>
<p>Welcome to {{clinic.name}}, your account is now active and you can log into the application.</p>
<p>{{clinic.activation_text}}</p>
<p>Please download the app from the link below:</p>
<p>iOS: {{clinic.ios_app_link}}</p>
<p>Android: {{clinic.android_app_link}}</p>
{{#clinic.client_portal}}
<p>You may also access the web portal on your computer or tablet at the link below:</p>
<p>Web: {{clinic.web_portal_url}}</p>
{{/clinic.client_portal}}
<div>
<p>This is an automated email sent by {{clinic.name}}.</p>
<p>Manage your notification preferences via the mobile app or web portal, or contact <a href="mailto:{{clinic.support_email}}">{{clinic.support_email}}</a> for support.</p>
</div>
The web portal lines are wrapped so they only appear for Organisations that have a Patient Web Portal. Leave that wrapping in place.
Temp Password
Subject:
Your Temporary Password for {{clinic.name}}
Content:
<p>Hello {{patient.first_name}},</p>
<p>Your temporary password is:</p>
<p>{{temp_password}}</p>
<p>When signing in, please select <strong>Log In</strong> (not Create Account) and use this password.</p>
<p>After logging in, you can change your password at any time by going to <strong>Settings</strong> and selecting <strong>Reset Password</strong>.</p>
<div>
<p>This is an automated email sent by {{clinic.name}}.</p>
<p>Manage your notification preferences via the mobile app or web portal, or contact <a href="mailto:{{clinic.support_email}}">{{clinic.support_email}}</a> for support.</p>
</div>
This email carries a working password.
Verify Code
Subject:
{{clinic.name}} Verification Code
Content:
<p>Hello,</p>
<p>Thank you for starting your {{clinic.name}} registration.</p>
<p>Your verification code is:</p>
<p><strong>{{verify_code}}</strong></p>
<p>If you didn't request this verification, please ignore this email.</p>
<div>
<p>This is an automated email sent by {{clinic.name}}.</p>
<p>Manage your notification preferences via the mobile app or web portal, or contact <a href="mailto:{{clinic.support_email}}">{{clinic.support_email}}</a> for support.</p>
</div>
Reset Password
Subject:
Your {{clinic.name}} Password Has Been Successfully Reset
Content:
<p>Hello,</p>
<p>Your {{clinic.name}} password has been successfully reset.</p>
<p>If you did not initiate this change, please contact our support team immediately by emailing {{clinic.support_email}}</p>
<div>
<p>This is an automated email sent by {{clinic.name}}.</p>
<p>Manage your notification preferences via the mobile app or web portal, or contact <a href="mailto:{{clinic.support_email}}">{{clinic.support_email}}</a> for support.</p>
</div>
Verify Code and Reset Password greet the reader without a name. Verify Code is sent before the account exists, and Reset Password offers no patient details at all.
🔗 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.
✅ Appointment emails
| 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 |
🔑 Account and sign-in emails
| Variable | What it fills in | Available in |
|---|---|---|
{{clinic.name}} |
Your Organisation's name | All four |
{{clinic.support_email}} |
Your support email address | All four |
{{patient.first_name}} |
The patient's first name | Activated, Temp Password |
{{patient.last_name}} |
The patient's surname | Activated, Temp Password |
{{clinic.activation_text}} |
Your own welcome message, if you've set one | Activated |
{{clinic.ios_app_link}} |
The download link for your iOS app | Activated |
{{clinic.android_app_link}} |
The download link for your Android app | Activated |
{{clinic.web_portal_url}} |
The address of your Patient Web Portal | Activated |
{{clinic.client_portal}} |
Whether your Organisation has a Patient Web Portal. Used to show or hide a block, never printed on its own | Activated |
{{temp_password}} |
The temporary password being issued | Temp Password |
{{verify_code}} |
The verification code being sent | Verify Code |
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 - Verify Code and Reset Password offer no patient details, so there's no way to greet the reader by name in either. Verify Code is sent before the account exists
{{temp_password}}and{{verify_code}}have no full stop in them. They're single names rather than part of a group likeclinic.orpatient.- 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
- Variable names are exact. If you type a name that 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 line 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.
🔀 The Yes or No Variable
{{clinic.client_portal}} in the Activated email isn't a piece of text. It's a yes or no answer to whether your Organisation has a Patient Web Portal, so printing it on its own would put the word true in the email.
It's only ever used as a wrapper, the same way as the video call row, around the lines you want portal Organisations to see:
{{#clinic.client_portal}} … your web portal lines … {{/clinic.client_portal}}
The Activated template already has it in place. Keep the wrapper complete if you keep the lines, and don't write {{clinic.client_portal}} on its own anywhere.
⚙️ 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 organisation's booking system. The template uses Mustache syntax and it has to keep working, so please follow these rules exactly.
Rules:
1. 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.
2. Do not invent new variables. Use only the ones already present in the template I give you.
3. 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.
4. 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.
5. If the template contains {{attachments.calendar_ics}}, keep it exactly where it is.
6. Keep the HTML simple. Paragraphs, line breaks, bold, unordered lists and links only.
7. 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: 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
- Send yourself a test 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 tables 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 if you want a group to inherit the Default Patient Group's wording, and Use System Email if you want the standard Wellifiy email regardless of what's set elsewhere. Neither deletes anything, but Remove Template does
Next step:
➡️ Check your Organisation's contact details under Administration → Portal Settings, so {{clinic.support_email}} and {{clinic.phone}} fill in correctly.