Klaviyo Email (options)

Klaviyo supports Abandoned Cart and Abandoned Checkout flows for sending purchase reminders.

For personalized products, abandoned cart recovery has an critical limitation: the email only restores product IDs and quantities. Line item properties, where product options are stored, are not recovered. Abandoned Checkout recovery is not affected and restores the full checkout, including personalization data and uploaded files.

This guide explains how to use the app’s Product Saved trigger with Shopify Flow and Klaviyo to send recovery emails before the customer reaches checkout.

The setup to allow customers to save personalized products is described here: Customer Saved Products

Requirements

The setup requires the following apps;

Setup

Open Shopify Flow and create a new workflow. Select the LPO Live Product Options > Product Saved trigger:

Add a next step Action > select Klavyio: Email Marketing > Track an Event:


Klaviyo Track Event

Fill in all the fields like in the screenshot below,  you can find the Klaviyo Public API key in your Klaviyo account.  The rest can be copied from the text boxes below:

Event Name:

LPO Saved Product

Customer (copy each)

{{ customer.email }}
{{ customer.firstName }}
{{ customer.lastName }}

Customer Properties

{
  "LPO_cart_url": {{ cartUrl | json }},
  "LPO_product_url": {{ productUrl | json }}
}

Event Properties

{
  "Source": {{ source | json }},
  "ItemCount": {{ itemCount }},
  "ProductID": {{ product.legacyResourceId }},
  "ProductName": {{ product.title | json }},
  "ProductURL": {{ productUrl | json }},
  "CartURL": {{ cartUrl | json }},
  "Items": [
    {%- for item in savedProducts.items -%}
    {%- assign sep = false -%}
    {%- capture opts -%}{%- for o in item.options -%}{%- unless o.value contains '://' -%}{%- if sep %} · {% endif -%}{{ o.name }}: {{ o.value }}{%- assign sep = true -%}{%- endunless -%}{%- endfor -%}{%- endcapture -%}
    {
      "Title": {{ item.title | json }},
      "ImageURL": {{ item.imageUrl | json }},
      "URL": {{ item.productUrl | json }},
      "Options": {{ opts | json }}
    }{% unless forloop.last %},{% endunless %}
    {%- endfor -%}
  ]
}

Save the action and the workflow.


Storefront test

On the cart or product page, click a save to cart button once to trigger the event to Klaviyo. This is required to select the event in the Klaviyo flow as the trigger.



Shopify Flow runs

On your newly created Shopify Flow, check the Recent runs after having clicked the save to cart button. It should show a successful Completed run:


Klaviyo Flow

Create a new Klaviyo flow to send the recovery email. Select the trigger in Your metrics > LPO Saved Product:

For re-entry we recommend allowing customers to re-enter the flow as early as possible; some customers might save their cart multiple times:

Next add a Email action to send the recovery email (the template is described below):

Saved Product Email Template

To design the email template, open a second tab and navigate into the Live Product Options App > Settings > Customer account settings section > click on “Saved Product Email”:

You can edit the email template by selecting your preferred color scheme and language and simply describing any layout or formatting changes you want to make. The AI will adjust the template to match your preferences:

In the Klaviyo email template editor, add an HTML content block:

Paste the copied HTML Template code from the Live Product Options

The layout will look a bit messy, that's to be expected.


You can then test the email template on the top right "Preview" button:

Select the Preview data source > Event > LPO Saved Product (note that it will only show up after you've clicked the save to cart button in the storefront at least once)

Save the template and set the flow as Live.


If you need further assistance, please don’t hesitate to reach out to our support team directly in the app.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.