Docs › Luv Upsell

Klaviyo: upsell events & next pick

What Luv Upsell sends

When Klaviyo's onsite tracking is on in your store, popups and blocks also report Added Upsell to Cart, and popups report Declined Upsell Offer, through it, for shoppers Klaviyo already knows. Those need no key.

Set it up

  1. In Klaviyo, create a private API key with Accounts: Read, Events: Write and Profiles: Write (Full access works too).
  2. In Luv Upsell, open Settings › Integrations, paste the key and click Save and check. The key is checked straight away, stored encrypted, and never shown again.
  3. Turn on Send accepted offers to Klaviyo and, if you like, Write the next best product to Klaviyo profiles.

The event properties

Accepted Upsell Offer carries product_title, product_id, quantity, placement, funnel, version (A or B) and offer_id, with the value in the order's currency; offers taken before checkout also carry order_name and order_id. Declined Upsell Offer carries offer_id, placement and funnel.

placement is one of product, atc (after add to cart), checkout (before checkout), cart, post, post_yes and post_no (post-purchase, and its follow-ups), thanks or in_checkout.

Two flows to start with

Next pick on each customer's profile

Turn on Write the next best product to Klaviyo profiles and, after each order, Luv Upsell writes these properties:

A sample email block

{% if person|lookup:'luv_upsell_next_pick_title' %}
  <a href="{{ person|lookup:'luv_upsell_next_pick_url' }}">
    <img src="{{ person|lookup:'luv_upsell_next_pick_image' }}" alt="{{ person|lookup:'luv_upsell_next_pick_title' }}" width="280">
  </a>
  <p>Picked for you: {{ person|lookup:'luv_upsell_next_pick_title' }}.</p>
  <a href="{{ person|lookup:'luv_upsell_next_pick_url' }}">Take a look</a>
{% endif %}

Keep a delay of a few days between the order and this email: the property is written when the order reaches Luv Upsell, and the delay makes sure it's there.

Running Luv Cart too? Luv Cart writes its own next pick as luv_next_pick_title and so on. Luv Upsell's properties start with luv_upsell_, so the two never overwrite each other.

Questions? hi@customerluv.app — a founder answers every message.

Your first two weeks free ×