Skip to main content
How to connect Klaviyo

Use this guide to integrate Klaviyo with your Checkify checkout to enable abandoned cart recovery flow and other features.

Updated over a week ago

Recovering abandoned carts is a must-have for eCommerce, especially considering that the average cart abandonment rate could be as high as 70%. Klaviyo is one of the top solutions to recover carts when it comes to email marketing.

Klaviyo allows you to create advanced email funnels, offers detailed metrics on their performance, and provides an intuitive drag-n-drop emails editor. Find out more about Klaviyo’s features on their website.

In this article:

1. Find an API Key in Klaviyo

To interconnect your Checkify and Klaviyo accounts, you need to use the Private API Key generated in Klaviyo. Here is where to find it:

  1. Log in to your Klaviyo account.

  2. Open your profile in the top-right corner and choose Account from the dropdown menu.

  3. Go to Settings, Account tab, and select API Keys.

  4. Create the Private API Key there.

API Keys location in Klaviyo

5. Give the Private API Key a name, for example 'Checkify', pick 'full access' type and press 'Create' button.

6. A private key confirmation window will be shown. You may copy the newly-created key from there.

7. If you wish, set Single opt-in.

2. Add Klaviyo API Key to Checkify

Adding an API key to your Checkify admin panel:

  1. Go to the Integrations section > Email and SMS senders tab.

  2. Choose Klaviyo.

  3. Add your Klaviyo Private API Key to the corresponding field.

  4. Create or use existing Email and / or SMS subscription lists: List ID for Email subscription, List ID for SMS subscription.


    If you have not enabled SMS, or do not have a sending number for that country, you cannot collect SMS consent. A confirmation message will be sent out to a customer, only after consent is confirmed via SMS, will the SMS portion under the Channels section of the profile update. For this list, we recommend to enable Single opt-in in Settings:

  5. Save changes.

    Klaviyo in Checkify's Integrations section

3. Learn which events and properties are created

Checkify can create and send to Klaviyo two events:

  • Started Checkify Checkout — a buyer reached the checkout page and filled in their Email address or Phone number.

    NOTE: You can integrate Yotpo (SMSBump) into Klaviyo and use numbers to send SMS for recovery. Alternatively, you can have a direct Checkify-Yotpo integration. More details are in this article.

    Immediately after the event is triggered, Klaviyo receives all the available customer details (email, name, if filled), the cart's contents, and a recovery URL. Whenever the customer fills in or edits a new field, Checkify pulls new information, and their profile is updated.

  • Finished Checkify Checkout — an order is created. Checkify sends full customer details (email, first / last name) and the cart's contents to Klaviyo. This event is used to filter people who made a purchase from the ones who did not.

NOTE: The following events will only appear in the Klaviyo funnel builder after they were triggered at least once after you connect Klaviyo to Checkify and the store.

Checkify creates and sends Klaviyo a list of specific properties (like customer name and email). The main abandoned cart-related properties are listed below.

You can see all the events sent to the account on the tab Activity Feed in your Klaviyo account:

Checkify event-specific properties for Checkout:

  • {{ event.checkoutURL }} / The url to recover this checkout

  • {{ event.totalPrice }} / Total price (without currency)

  • {{ event.currency }} / Currency

  • {{ event.itemCount }} / Number of items added to cart

  • {{ event.discountAmount }} / Discount amount (if applied)

  • {{ event.discountAmountIn% }} / Discount amount in % (if applied)

  • {{ event.lineItems }} / Array with the contents of the cart

Example: one product (first position) in the cart:

{{ event.lineItems.0.title }} / Title
{{ event.lineItems.0.price }} / Price
{{ event.lineItems.0.image }} / Image
{{ event.lineItems.0.quantity }} / Quantity

Example: second product (second position) in the cart:

{{ event.lineItems.1.title }} / Title
{{ event.lineItems.1.price }} / Price
{{ event.lineItems.1.image }} / Image
{{ event.lineItems.1.quantity }} / Quantity

Checkify event-specific properties for Purchase:

  • {{ event.thankYouPageURL }} / The url to thank you page

  • {{ event.totalPrice }} / Total price (without currency)

  • {{ event.currency }} / Currency

  • {{ event.itemCount }} / Number of items added to cart

  • {{ event.discountAmount }} / Discount amount (if applied)

  • {{ event.discountAmountIn% }} / Discount amount in % (if applied)

  • {{ event.lineItems }} / Array with the contents of the cart

  • {{ event.orderID }} / Shopify order ID

  • {{ event.paidOptions }} / Array with the contents of paid options

  • {{ event.paidOptionsPrice }} / Total Price of paid options

  • {{ event.paymentSystemFeePrice }} / Payment system fee COD (if applied)

  • {{ event.shippingName }} / Name of shipping option

  • {{ event.shippingPrice }} / Price of shipping option

  • {{ event.taxPrice }} / Total Tax (if applied)

Example: one product (first position) in the cart:

{{ event.lineItems.0.title }} / Title
{{ event.lineItems.0.price }} / Price
{{ event.lineItems.0.image }} / Image
{{ event.lineItems.0.quantity }} / Quantity

Example: second product (second position) in the cart:

{{ event.lineItems.1.title }} / Title
{{ event.lineItems.1.price }} / Price
{{ event.lineItems.1.image }} / Image
{{ event.lineItems.1.quantity }} / Quantity

You can also add a discount to an existing checkout page by URL. For example, provide a discount to induce a purchase for recovery abandoned checkouts etc. This discount will be applied by priority, which means that if there were other discount codes on the page (including an auto-discount), they will be deleted and the code you specified will be applied.

In such cases it is necessary to add &discount=DISCOUNT_CODE to the link.

Then the complete link in Klaviyo will look like this:

{{ event.checkoutURL }}&discount=DISCOUNT_CODE

4. Set up your Klaviyo email campaigns

To create an abandoned cart flow, you need to use both Started Checkify Checkout and Finished Checkify Checkout events.

4.1 Creating triggers

  1. Log in to your Klaviyo account.

  2. Go to the Flows tab.

  3. Select Create Flow.

  4. Select Create from Scratch, add the name of your flow and click on Create Flow.

  5. Choose the Metric trigger.
    This trigger represents an event that has to happen for Klaviyo to start the email flow. Once a customer abandons the checkout, they fall under the trigger's conditions and start receiving the corresponding emails.

  6. In the dropdown menu, select Started Checkify Checkout event.

  7. Click Save.

Configuring a Metric trigger with Checkify's events in Klaviyo

4.2 Add time delay

Add a time delay of 10 to 30 minutes to the trigger. To do so, just drag and drop the Time delay section from the Actions panel.

Time delay block in flow's setup on Klaviyo

4.3 Create conditions

After you set up the trigger, you need to create a conditional split, so buyers who entered their email do not receive the abandoned cart notification.

  1. After you create your metric, drag Conditional Split to the marked area under the metric.

  2. Click the card and set up the condition.

  3. Select What someone has done (or not done) condition.

  4. In the field Person has, choose Finished Checkify Checkout.

  5. Then, choose Zero times in the next field.

  6. After that choose In the last 1 hour.

  7. Click Save and Done.

Adding a conditional split with Checkify's events in Klaviyo

Some time should pass between the trigger and the purchase check. For instance, Shopify creates an Abandoned cart event after 30 minutes. If you do not set up a time delay, 100% of customers who enter their email will get an abandoned cart notification.

Once you added a trigger and a condition, this is what the beginning of your flow would look like:

Create a trigger, then time delay, and add a condition

5. Add Email


Then click Edit:

Click Edit Email button, usually in the top right corner, as shown in the image below:

Design your email's structure in the builder.


Then create your content. For example, the image for the first product in the cart is

{{ event.lineItems.0.image }}:

The checkout URL for recovery is {{ event.checkoutURL }}:

You can simply copy any variables in the Preview mode:

6. Set up Klaviyo SMS

Before you create your first SMS campaign, it is necessary to configure this option in your account. Visit Account > Settings > SMS. Then click Set Up SMS.

NOTE: Klaviyo SMS is currently available in a limited number of countries: * United States (50 states only), Canada, UK, Australia, New Zealand, Ireland). You can read Klaviyo’s guide to learn in more detail what must be included in messages in each country.

Set up SMS in your Klaviyo dashboard

Klaviyo also requires getting explicit consent from your customers before sending them SMS messages. Checkify is GDPR compliant and transfers SMS consent to Klaviyo when your customers agree to receive offers and news on the checkout. Whenever a new customer is added to your list on Klaviyo, you will be able to send them SMS campaigns if they opt in.

Let’s set up a flow to reach out to customers who did not open your abandoned cart email and follow up via SMS.


1. We will build the flow with one email. To send the first abandoned cart email, start the flow like described in section 4.1 of this article.

2. Add a time delay after the first email.

Add a time delay after the email

3. Drag a conditional split below the time delay to exclude customers who opened the previous email. Fill in the Equals field with the name of your first abandoned cart email.

Use What someone has done or not done > Opened Email at least once over all time > where Message equals [MESSAGE NAME]

4. Add SMS to be sent to the ones who did not read the email. You will be prompted to configure the content of the message.

Edit your SMS content

5. After the first SMS message, you can rejoin the split if you plan to send more emails to the customers who received the SMS.

Rejoin the split

6. Save your flow.

SMS flow that follows up a cart recovery email

NOTE: Some customers might not receive this text message because they did not include their phone number at the checkout, there is no such field as "phone" on the checkout page (a custom address form is used), or because they are in a location where Klaviyo SMS is unavailable. Please check the up-to-date list of countries with Klaviyo's support, or on their website (documentation).

7. Test your abandoned cart flow

After creating the abandoned cart flow on Klaviyo, test it to ensure it works properly. The possible steps are described below:

1. Add a product to your cart and move to the checkout.

2. Fill the email field with an email that is not stored on Klaviyo (= a new customer). You can simply make up the email.

3. Check for the last actions in the Activity feed in the Klaviyo dashboard. You should see that there was a Started Checkify Checkout event connected to the event you used.

Email and event are registred and displayed in the Activity feed


4. Add your phone number to the shipping address (form) on the open Checkify checkout page. Check whether it appears in the Activity feed on Klaviyo after the time delay being set.

5. Fill in the shipping address completely, add payment information and make a test purchase (of a test product on your store) for an equivalent of $1. Check for the appropriate event in the Activity feed.

If you tested all the events, and they were displayed in your Activity feed, the integration works properly. If the events did not appear after the delay, check your account ID (especially, if you have multiple stores connected to Klaviyo) and check that you have a correct ID connected to Checkify.

8. Common issues

🙀 I do not see Checkify events at Klaviyo.

Checkify events (Started Checkify Checkout and Finished Checkify Checkout) will only appear after they were triggered at least one time. After adding Klaviyo Private API Key to Checkify, perform a test transaction before configuring the abandonment flow. If everything goes well, you will see the corresponding updates in your Activity feed tab in Klaviyo, and you will be able to set up the events.

🙀 What if I already have an abandonment cart recovery flow in Klaviyo?

If you have already created a similar flow for Shopify checkout, it would still work with orders that, for any reason, were processed through the default checkout. However, to cover abandonments (incomplete checkout) happening on Checkify, you must create a separate flow.

🙀 I am using a different email marketing software. Can I connect it to Checkify?

We do not currently support other direct integrations. However, you can use our Zapier integration to connect to other email marketing services, for example, Mailchimp.

🙀 Can I send SMS if I do not use Klaviyo?

You can also send SMS with our Zapier integration. However, you will be limited by the selection of services available on Zapier — they do not have integrations with major SMS marketing providers. At the same time, it's better search there for more actual information.
If you use Yotpo SMS & Email (formerly SMSBump), you will still need to connect it via Klaviyo, but the number of countries is limited. You can a direct integration with Yotpo. Refer to this article for more details.
Also, you may test Omnisend and Postscript for this purpose.

Did this answer your question?