Skip to main content

Email variable troubleshooting guide

Use this guide to troubleshoot why a variable isn't working

Monique Clark avatar
Written by Monique Clark
Updated over 2 weeks ago

If you’re seeing blank spots or unresolved variables (e.g. [practitionerfirstname] actually shows up like that in the email), it usually comes down to one of two things.

  1. You formatted the variable in the email template in a way that breaks it.

  2. You’re using a variable that’s not compatible with the trigger type.

  3. You're using a variable that's not compatible with the email type.

Let's work it out together.

✅ Use the right variable set for your email type


Some Peptalkr features use different variable sets depending on whether the email is a Transactional Email or a Marketing Campaign/Automation.

Email Type

Use This Variable Set

Transactional emails (like appointment confirmations, follow-ups, etc.)

Marketing Campaigns or Marketing Automations

So if you copy a variable from a Transactional email (e.g. [appointmentstart]) into a Marketing Campaign — it won’t work.

🧠 Tip: Use the links above to check you're working with the right variables for your email type. No sure which email type you're using? Check whether you created the email in the Campaigns, Automations or Transactional tab of the email manager.

✅ Use a variable that is compatible with your transactional email trigger type


If the variable outputs nothing at all (just a blank space), it’s likely because the variable isn’t compatible with the type of event that triggered the email.

Why?

Each variable is tied to a specific kind of data in Cliniko. If the event that triggered the email doesn’t include that data, the variable will output nothing.

⚠️ Example:

  • A Medical Alert email doesn’t relate to a specific appointment.

  • So if you include [appointmentstart], it won’t work — because the system has no appointment info to pull from.

Compatibility guide:

Variable Type

Description

✅ Compatible Triggers

⚠️ Not Compatible With

📍 Business variables

Info from your Cliniko business (e.g. address, name).

Appointment triggers

Medical Alerts, Invoices

📆 Appointment variables

Data from the specific appointment (e.g. date, time).

Appointment triggers

Medical Alerts, Invoices

🩺 Practitioner variables

Info about the practitioner assigned to the appointment.

Appointment triggers

Medical Alerts, Invoices

💬 Patient variables

Info about the patient (name, contact info).

✅ All trigger types

Form variables

Links to forms

✅ All trigger types

🧾 Invoice variables

Info pulled from the invoice.

Invoice triggers

Appointment or Medical Alerts

🛎️ Medical Alert variables

Info from the medical alert message.

Medical Alert triggers

Appointment or Invoice triggers

🧠 Tip: Check your trigger for which event is causing it to fire. Is it 'When a medical alert is added to a patient file'? Then check above for what's incompatible.

✅ Check the formatting of your email template


If you can see the square brackets and variable name in the email (like [patientfirstname] instead of the actual name), the formatting in the email builder has broken the variable behind the scenes.

The most common mistake is partial formatting (bold, italics):

Applying bold, italics, or other styling to only part of the variable breaks it—even though it looks fine visually.

⚠️ Examples of what breaks variables:

  • Bolding practitionerfirstname but not the [ and ] brackets

  • Bolding [practitionerfirstname then separately bolding the ]

  • Applying any formatting in multiple steps instead of all at once

Even though it looks fine visually, the code ends up looking like this:

<strong>[practitionerfirstname</strong><strong>]</strong>

That breaks it, the closing bracket has been separated from the variable due to partial formatting.

✅ How to fix it:

  1. Delete the broken variable from your email text

  2. Copy a fresh variable from the variables cheatsheet

  3. Paste it into your email

  4. If you want to apply formatting: Select the entire variable (including both [ and ] brackets) and apply your formatting in one action

This generates correct code behind the scenes:

<strong>[practitionerfirstname]</strong>

Important: You can't reliably fix a broken variable by removing and reapplying formatting—you need to delete it and copy a fresh one from the cheatsheet.

Did this answer your question?