Email Templates

Email templates let you send recurring notifications to your leads and customers quickly and easily.

Email templates have a subject and content and can be filled with dynamic content from incoming bookings. This saves you time and effort, since you don't have to write and send the same messages over and over again.

In this article

Template types

Booking templates

Booking Accepted

The Booking Accepted template is used to confirm new bookings. You can find out how to respond to your bookings with this template here.

Booking Declined

The Booking Declined template is used to decline bookings.

Follow-Up (Attended)

The Follow-Up (Attended) template is used to send leads who attended an appointment a message with further information.

The goals of the default template are:

  • Remind the customer of the past appointment
  • Ask for feedback
  • Share information about next steps, for example about becoming a member / customer

You can find out how to send information after an attended appointment here.

Follow-Up (Not Attended)

The Follow-Up (Not Attended) template is used to send a follow-up message to participants who did not attend an appointment.

The goal of the default template is to help participants find a new appointment.

You can find out how to send new appointment suggestions for a booking that wasn't attended here.

Appointment Confirmation

If the participant books a new appointment based on the Follow-Up (Not Attended) template, the Appointment Confirmation template is used to confirm the new appointment.

Appointment Reminder The Appointment Reminder template is used to remind participants shortly before the appointment.

Event templates

Registration Confirmation

The Registration Confirmation template is used to confirm new event registrations.

Basic steps

To set up or edit a template:

  1. From the admin panel, click the Settings section and then Email Templates in the submenu
  2. Click the name of the template
  3. Update the template information
  4. Click Save once you're happy with the template information you've entered

Show a preview

Before saving an email template, you can show a preview of the current template.

To do so, switch to the Preview tab in the template editor.

The dynamic content is based partly on your own account's information and partly on sample data.

Add dynamic content

You can add dynamic content to an email template using Liquid syntax. See below to learn which data is available for bookings.

To add dynamic content, wrap the information you want in double curly braces:

Hello {{ customer.first_name }}

If the lead's name were Bruce, the example above would generate the following text:

Hello Bruce

If conditions

Liquid syntax also lets you show text only if a certain condition is met.

This lets us show text only for specific locations, offers, or appointment types.

For example:

The appointment takes place at the following address:<br><br>

{{ location.street }}<br>
{{ location.locality }}<br><br>

{% if location.city == 'Basel' %}
The entrance is behind the building and the access code is 1234.<br><br>
{% endif %}

In the example above, the part...

The entrance is behind the building and the access code is 1234.<br><br>

... is only shown in appointment notifications for appointments that take place in Basel.

Another example:

If you have any questions, I'm happy to help. Just reply to this email.<br><br>

{% if appointment.trial? %}
I'm looking forward to meeting you.<br><br>
{% endif %}

In the example above, the part...

I'm looking forward to meeting you.<br><br>

... is only shown for first appointments.

You can also show an alternative if a condition isn't met. For example:

{% if location.virtual? %}
To start the video chat, use the following link at the booked time:<br>
<a href="{{ location.url }}">{{ location.url }}</a>
{% else %}
You can find us at the following <strong>address</strong>:<br><br>

{{ location.street }}<br>
{{ location.locality }}
{% endif %}

This shows a link to the video chat for online appointments. For on-site appointments, the address is shown.

Unless conditions

Unless conditions let you show text if a condition is not met. Unless conditions work exactly the opposite way of the If conditions described above.

Example:

{% unless appointment.trial? %}
This text is only shown for follow-up appointments.
{% endunless %}

For loops

for loops let us show the list of custom form fields. For example:

<ul>
{% for field in appointment.custom_form_fields %}
<li>{{ field.label }}: {{ field.value }}</li>
{% endfor %}
</ul>

You can also read and show only specific custom fields. Good to know: As soon as the name of a field changes, you also need to update the name in your templates at where: "label", "field-name". field-name must exactly match the name of the custom field.

{{ appointment.custom_form_fields | where: "label", "field-name" | map: "value" | first %}

Liquid variables

A booking consists of various data that you can use in your email templates. Below you'll find a list of all available variables.

Different variables are available depending on the type of template.

General variables

General variables are available in all email templates.

Variable
business.name Name of your business
business.email Email address of your business
business.phone Phone number of your business
business.url URL of your business
signature Email signature

Booking templates

Variable Description
appointment.date The date on which the appointment takes place.
appointment.start_time The time of day when the appointment starts.
appointment.end_time The time of day when the appointment ends.
appointment.created_at The time when the booking was created.
appointment.type The type of appointment.
appointment.trial? Checks whether it's a first appointment or a regular appointment.
appointment.rescheduleable? Checks whether the lead / customer can reschedule the appointment.
appointment.reschedule_url The URL where the lead / customer can reschedule the appointment themselves.
appointment.custom_form_fields Custom form fields.
customer.full_name First and last name of the lead.
customer.first_name First name of the lead.
customer.last_name Last name of the lead.
product.name Name of the offer.
product.group Group of the offer.
location.street The address of the location.
location.zip The ZIP code of the location.
location.city The city of the location.
location.locality Postal code and city formatted for the country, e.g. "CH-4051 Basel" or "Austin, TX 78741".
location.virtual? Checks whether it's an online location
location.url The URL of the online location
resource.full_name First and last name of the staff member.
resource.first_name First name of the staff member.
resource.last_name Last name of the staff member.

Event templates

Variable Description
event.name The name of the event.
event.schedule Date and time of the event.
location.street The address where the event takes place.
location.zip The ZIP code where the event takes place.
location.city The city where the event takes place.
location.locality Postal code and city formatted for the country, e.g. "CH-4051 Basel" or "Austin, TX 78741".
enrollment.payment_method The payment method used to pay for the registration.
enrollment.price The cost of attending the event.
enrollment.custom_form_fields Custom form fields.
contact_address.name The name of the registered participant.
contact_address.street The address of the registered participant.
contact_address.zip The ZIP code of the registered participant.
contact_address.city The city of the registered participant.
contact_address.locality Postal code and city formatted for the country, e.g. "CH-4051 Basel" or "Austin, TX 78741".
billing_address.name The name of the billing address.
billing_address.street The street address of the billing address.
billing_address.zip The ZIP code of the billing address.
billing_address.city The city of the billing address.
billing_address.locality Postal code and city formatted for the country, e.g. "CH-4051 Basel" or "Austin, TX 78741".
Copyright © Codegestalt. All rights reserved.
Enjoy the rest of your Wednesday!