Overview
Easy Appointment Booking can connect with your Klaviyo account so you can send emails from your brand and domain for follow-ups or the core booking confirmation and reminders. This allows you to create Klaviyo flows whenever customers:
Place a booking
Booking gets rescheduled
Booking gets cancelled
24-hours before a booking
When a booking occurs
24-hours after a booking
Purchase a prepaid package
Watch the setup video
Additionally, Easy Appointment Booking will also automatically create or update customer profiles on Klaviyo. This keeps your email lists accurate and lets you segment customers. For example, you could segment customers who have placed a booking in the past week, and send them a discount code or upsell them on other products.
It is possible to send multiple reminders using Klaviyo. You can create different email flows to trigger at various times before the appointment, such as 24 hours and one hour beforehand.
Does the Klaviyo integration work with the Free Klaviyo plan?
The Klaviyo integration will send to your free Klaviyo account, however you would need to use Klaviyos plans to send an email as you require. For example 500 emails are free: https://www.klaviyo.com/pricing
We'll walk through how to connect Klaviyo with Easy Appointment Booking below.
ℹ️ Our Klaviyo integration is in private beta. You can request access through the in-app chat on the bottom right of your screen.
Connecting with Klaviyo
Login to your Klaviyo Account at www.klaviyo.com.
Go to your Account Settings.
3. Click on API Keys. Then click on Create Private API Key.
4. When creating an API Key, set the following permissions. You can enter any name for the key.
5. Click Save. On the next page, copy the API Key that is generated. You will need to paste this into Easy Appointment Booking.
6. Open the Easy Appointment Booking app from your Shopify Admin Dashboard.
7. Go to Settings and scroll down to Klaviyo.
8. Enable the Klaviyo Addon.
9. Once enabled, enter your API Key from Step (5) into the text box.
10. Press Save.
At this point, Easy Appointment Booking will attempt to connect with Klaviyo. If everything connects successfully, you will see a confirmation message show up along with a "Connected" badge.
Setting up emails and text messages through Klaviyo
Once Klaviyo is connected, you can redirect all emails and text messages to be sent through Klaviyo instead of through Easy Appointment Booking.
To do this, first we will setup emails via Klaviyo. We'll use an example of sending booking confirmation emails.
Login to your Klaviyo Account
Go to Flows.
Click on Create flow.
Click on Build your own. Give your flow a name. Write "Booking Confirmation Emails". Click Create Flow.
You will now be in the flow builder and will have to choose a Trigger.
Click on Your Metrics.
7. Click on API.
8. Here, you will see all the triggers that are setup by Easy Appointment Booking. Since we are creating a Booking confirmation flow, click on Booking placed (Easy Appointment Booking).
9. Press Save. Then press Confirm & Save.
10. You have now saved the trigger and can continuing building your flow. Next, we can add a sample email to it.
11. On the right side, click Select Template.
12. You can select any one of Klaviyo's many email templates or create your own. For more information on how to work with Klaviyo email templates, read this guide.
Variables in Klaviyo Email Templates
Klaviyo lets you personalize emails by using dynamic variables.
Email Variables when a booking is created, updated, or modified.
Easy Appointment Booking will automatically make the following variables available in your email templates whenever customers do the following:
Place a booking
Booking gets rescheduled
Booking gets cancelled
24-hours before a booking
When a booking occurs
24-hours after a booking
Data | Variable |
Customer first name | {{ event.first_name }} |
Customer last name | {{ event.last_name }} |
Booking ID | {{ event.booking_id }} |
Booking Start Date | {{ event.start_date }} |
Booking End Date | {{ event.end_date }} |
Booking Start Time | {{ event.start_time }} |
Booking End Time | {{ event.end_time }} |
Booking Timezone | {{ event.timezone }} |
Event Name | {{ event.event_name }} |
Event Location | {{ event.event_location }} |
Event Description | {{ event.event_description }} |
Event Notes | {{ event.event_notes }} |
Number of Attendees | {{ event.number_of_attendees }} |
Product Name | {{ event.variant_title }} |
Availability Name | {{ event.availability_name }} |
Availability Email | {{ event.availability_email }} |
Intake Questions Responses | {{ event.booking_line_items }}
Read the Intake Questions section below for more information. |
Booking Subscription Link | {{ event.bundle_booking_link }} |
Booking Reschedule Link | {{ event.reschedule_booking_link }} |
Shop Name | {{ event.shop_name }} |
Shop Email | {{ event.shop_email }} |
Shop Website | {{ event.shop_website }} |
Email variables when a prepaid package is purchased
Easy Appointment Booking lets you setup and sell Packages. With Packages, you can create and sell a prepaid series of services or classes that can be redeemed by your customers.
When a customer purchases a package, the Klaviyo trigger Package purchased (Easy Appointment Booking
will be called. Since a package is not a booking, it has different email variables.
Data | Variable |
Customer name | {{ event.customer_name }} |
Customer email | {{ event.customer_email }} |
Package Name | {{ event.package_name }} |
Package Code | {{ event.package_code }} |
Package Booking Redemption Link | {{ event.package_booking_link }} |
Package Expiry Date (if exists) | {{ event.package_expiry }} |
Package Booking Limit | {{ event.booking_limit }} |
Your Store Name | {{ event.shop_name }} |
Your Store Website | {{ event.shop_website }} |
Shopify Order Name | {{ event.order_name }} |
Your customer can go to the Package Booking Redemption Link to redeem their bookings. The package code is unique to each order.
You can use these variables to customize an email template. Here's an example of a confirmation email template using some of these variables:
In addition to the variables above, you also have access to a special variable called {{ event.trigger }}
. The {{ event.trigger }}
can be used to start your Klaviyo flows .
For Email | Klaviyo Trigger |
Booking Confirmation |
|
Booking Rescheduled |
|
Booking Cancelled |
|
Booking Reminder |
|
Booking Follow-up |
|
Purchased a package |
|
You can use the trigger
variable in your Klaviyo flows to add conditional logic.
Adding Intake Questions Responses to your Klaviyo Email Templates
Any Intake questions that your customers have answered can be added to your Klaviyo email template. To do this, add the following block of code in your email template:
{% for item in event.booking_line_items %}
<p style="text-align: left;">
{{ item.name }}: {{ item.value }}
</p>
{% endfor %}
This tells Klaviyo to loop over all of the intake question responses in the {{ event.booking_line_items }}
variable and add them to your email template.
13. Once you select an Email Template and save it, make sure to uncheck the Skip recently emailed profiles checkbox. This will ensure that all triggered emails are sent to the customer.
Once your email template is created, save your flow. You are now ready to send emails through Klaviyo!
Testing your Klaviyo Integration
Once you have set up your flows through Klaviyo, you can test your Klaviyo integration by creating a new test appointment booking. You can do it a few different ways:
Create a manual booking through the "Add a booking" button on Easy Appointment Booking.
Create a booking from your Shopify store.
Enter a valid email address that is different from the email address you are sending Klaviyo emails from. Once a booking is made, your klaviyo email should arrive in your inbox within 2-3 minutes!
Easy Appointment Booking Triggers
Easy Appointment Booking makes following triggers are available to you on Klaviyo. These are all available in Your Metrics > API.
Trigger | When it fires |
Booking placed (Easy Appointment Booking) | When a customer places a booking. |
Booking reminder (Easy Appointment Booking) | 24-hours before the booking is set to occur. |
Booking occurred (Easy Appointment Booking) | When a booking occurs (can have up to 30 minutes delay). |
Booking follow-up (Easy Appointment Booking) | 24-hours after a booking occurs. |
Booking rescheduled (Easy Appointment Booking) | When a booking gets rescheduled. |
Booking cancelled (Easy Appointment Booking) | When a booking gets cancelled. |
Package purchased (Easy Appointment Booking) | When a customer purchases a prepaid package. |
Each of these triggers contain variables that you can use to personalize the Klaviyo flow.
Preventing double-email sends
Once you have Klaviyo connected, we recommend you disable email notifications via Easy Appointment Booking. Otherwise, your customers will get 2 different emails -- one sent through EAB and another sent through Klaviyo.
To do this:
Go to Easy Appointment Booking from the Shopify Admin Dashboard
Click Edit beside an Event.
Scroll down to the Notifications section.
Uncheck all boxes.
Click Update Notifications
Disconnecting Klaviyo
To disconnect your Klaviyo integration:
Go to Easy Appointment Booking from the Shopify Admin Dashboard
Go to the Settings tab and scroll down to Klaviyo.
Click on Disconnect.
Once disconnected, events will no longer be sent to Klaviyo. Additionally, if you wish to reconnect again, you will need to create a new API Key.
Klaviyo will automatically be disconnected if you remove the Klaviyo add-on.
Get access to Klaviyo
Klaviyo is currently available within a private beta for a paid add on. Under the app Account tab > Add Ons > Klaviyo you will need to add the Klaviyo add on.
Please reach out to us if you need help to set up!
Original Email Templates
To make your setup faster, you can copy/pate our content for templates below:
A. Booking Confirmation:
Hi {{ event.first_name }},
This is a booking confirmation for {{ event.event_name }}.
Date: {{ event.start_date }}
Time: {{ event.start_time }} to {{ event.end_time }} ({{ event.timezone }})
{{#if event.event_location}} Location: {{ event.event_location }} {{/if}}
{{#if event.event_notes}} {{ event.event_notes }} {{/if}}
{{ event.event_link }}
{{#if event.bundle_booking_link}}
Manage your subscription
To book the remaining appointments in your subscription, click here: {{ event.bundle_booking_link }}
{{/if}}
{{#if event.reschedule_booking_link}}
Need to reschedule?
You can reschedule or cancel your booking here: {{ event.reschedule_booking_link }} {{/if}}
If you have any questions about this booking, please contact us at {{ event.shop_email }}.
Thank you,
{{ event.shop_name }}
B. Booking Modified/Rescheduled:
Hi {{ event.first_name }},
There has been a change to your upcoming booking for {{ event.event_name }}. The new event details are:
Date: {{ event.start_date }}
Time: {{ event.start_time }} to {{ event.end_time }} ({{ event.timezone }})
{{#if event.event_location}} Location: {{ event.event_location }} {{/if}}
{{#if event.event_notes}} {{ event.event_notes }} {{/if}}
{{ event.event_link }}
{{#if event.reschedule_booking_link}}
Need to reschedule?
You can reschedule or cancel your booking here: {{ event.reschedule_booking_link }} {{/if}}
If you have any questions about this booking, please contact us at {{ event.shop_email }}.
Thank you,
{{ event.shop_name }}
C. Booking Reminder:
Hi {{ event.first_name }},
This is a reminder about your upcoming booking for {{ event.event_name }}. You have a booking confirmed at:
Date: {{ event.start_date }}
Time: {{ event.start_time }} to {{ event.end_time }} ({{ event.timezone }})
{{#if event.event_location}} Location: {{ event.event_location }} {{/if}}
{{#if event.event_notes}} {{ event.event_notes }} {{/if}}
{{ event.event_link }}
{{#if event.reschedule_booking_link}}
Need to reschedule?
You can reschedule or cancel your booking here: {{ event.reschedule_booking_link }} {{/if}}
If you have any questions about this booking, please contact us at {{ event.shop_email }}.
Thank you,
{{ event.shop_name }}
D. Booking Follow Up
Hi {{ event.first_name }},
Thank you for attending {{ event.event_name }}! We look forward to having you again. If you have any questions or comments about this event, please contact us at {{ event.shop_email }}.
Thank you,
{{ event.shop_name }}
E. Booking Cancelled
Hi {{ event.first_name }},
The following appointment has been canceled:
Name: {{ event.event_name }}
Date: {{ event.start_date }}
Time: {{ event.start_time }} to {{ event.end_time }}
{{#if event.cancellation_notes}}
Cancellation Reason
{{ event.cancellation_notes }}
{{/if}} Thank you,
{{ event.shop_name }}