What are we going to do?
We will incorporate WhatsApp into our Abandoned Cart email flow, impacting only those who have not opened the email and making sure we reach all potential customers.
What will we achieve?
Improve our conversion rate by 1.5-2x as we will go from only 45-55% of customers seeing the message, to ALL customers seeing it (open rate on WhatsApp is >95%). In addition, it also generates conversations that help us understand why customers abandon their shopping carts.
1. Edit the abandoned cart flow in Klaviyo
The first thing you are going to do is edit our Klaviyo flow, to add the connection to Hoola via webhook.
It should look like the flow on the right.
Add a ‘Time Delay’ of 30 minutes after the 1st email.
Add a ‘Conditional split’ and filter only for those who have opened the previous email.
Add a Webhook and configure it to send the information to Hoola.
Here is how to set up each step in detail.
A) Conditional Split: Filter the customers who have opened the first mail. Configure it as follows:
What someone has done (or not done).
Person has: Opened Email
Where: Subject
Equals: {{{ the title of your first email }}
At least once: Since starting this flow
B) Webhook: Allows us to launch information to our Hoola flow to trigger the WhatsApp message. There are only 2 things to add:
(1) Destination URL:
Here we are going to add a URL that identifies the Hoola Flow. Here is where to find the URL
(2) JSON Body - payload:
This is the information we are going to move from Klaviyo to Hoola. Simply copy and paste the contents of the black box below.
Hit ‘Save’ to save
{
"phoneNumber": "{{ person.phone_number|default:'' }}",
"data":
{
"firstName": "{{ person.first_name|default:'' }}",
"email": "{{ person.email }}",
"checkout_url": "{{ event.extra.checkout_url|default:'' }}"
}
}
2. Create the Abandoned Cart Flow in Hoola.
Now you are going to create the Hoola flow that will continue our abandoned cart on WhatsApp.
We create a new Flow
We set the trigger: Webhook
Add our WhatsApp message
Add an ‘Abandoned Cart’ tag so we know which customers have received it.
A) Creating a Webhook Trigger Flow
B) We add the WhatsApp message B) We add the WhatsApp message.
Category: Marketing
Language: English
Text:
Hi {{ firstName }}, I'm Ma José from Mi Oliva Gourmet. I'm just writing to you because I've seen that you haven't completed your order and I wanted to remind you that if you buy today you get free shipping and a money back guarantee if you don't like it.
Also, if you have any questions I'm here to help 😊
CTA: Complete Order
Link: **https://miolivagourmet.com/{{ checkout_url }}**
The “https://miolivagourmet.com/” part change it to your own URL.
3. We connect the Klaviyo webhook with Hoola.
The only thing we have to do is to connect both flows. To do this, we are going to configure the ‘Destination URL’ of Klaviyo that we discussed earlier.
Click on the Hoola Trigger and copy the URL that appears in ‘Webhook URL POST’.
Go back to Klaviyo's webhook and paste the information in ‘Destination URL’.
Save and publish both flows, and you're done!
4. Advanced Abandoned Cart Flow
The abandoned cart flow can be customized as you like. The important thing is to align it with your business image. For instance, if your messages tend to be more serious, use a colder and more direct approach. If you want to be more humorous, then a more mocking tone might be appropriate. Here are different versions to inspire you:
Insistent Version:
If you want to be quite insistent with your consumer and send multiple messages, here’s an example. This works best for products or services where if someone makes a purchase once, they’re likely to repeat it. So, we focus on getting that initial purchase.
Differentiate by Prices:
Another approach is to add a condition after the trigger to differentiate those who abandoned a cart with a higher price. This is useful because we can treat those with a higher ticket value differently—whether by offering a discount, sending a personalized message, etc.**IMPORTANT**: To do this, we need to configure Klaviyo to send cart price information. Add the following to your code within the “data:” section:
"cartvalue": "{{ event|lookup:'$value'|default:'' }}"
Differentiate by Buyer:
We can also differentiate buyers based on whether they are new or frequent purchasers. We’ll add a condition to the trigger to check if they’ve made a purchase before or more than once.