ShopifyPartners

Recover More Abandoned Carts on WhatsApp With Klaviyo and Littledata

by Edward Upton

Recover More Abandoned Carts on WhatsApp With Klaviyo and Littledata

WhatsApp gives Klaviyo brands a direct, mobile-first channel for cart reminders. But a WhatsApp message only reaches a shopper who enters the flow and has WhatsApp consent on their profile. This guide shows how Littledata's server-side triggers get more of your WhatsApp subscribers into abandonment flows, and how to measure the difference.

Most Shopify brands add WhatsApp to an abandonment flow they already run. Klaviyo's recommended setup places a WhatsApp message on a branch of the existing abandoned cart flow, sent only to profiles that can receive WhatsApp marketing. As a result, the WhatsApp step inherits every gap in the flow's trigger. If Klaviyo never records the cart event, the shopper never reaches the WhatsApp branch, even if they opted in last month.

Why missed cart events cost you WhatsApp reminders

Klaviyo's onsite tracking runs in the shopper's browser. Ad blockers and browser privacy settings stop some of those events from firing, so some shoppers never trigger your flows. Littledata sends the same Shopify events to Klaviyo server-side and ties more of them to Klaviyo profiles.

On email, that uplift comes from two groups of shoppers. Only one of them can receive WhatsApp:

  • Known subscribers with missed events: The shopper already has a Klaviyo profile with a phone number and WhatsApp marketing consent, but the browser never sent their cart event. With a Littledata trigger they enter the flow and reach the WhatsApp branch.
  • New shoppers identified at checkout: Littledata can match a shopper by the email address they type at checkout. That shopper has an email address but usually no WhatsApp consent yet. They receive the email steps, not the WhatsApp step.

The result: expect the WhatsApp share of your uplift to be smaller than the email share. Every extra WhatsApp send goes to someone who has already opted in to hear from you there.

What to have in place before you test

WhatsApp has stricter sending rules than email. Check these before you change any triggers:

  • WhatsApp connected in Klaviyo: You need a Meta Business account and a WhatsApp number. Klaviyo requires a number that is different from your SMS sending number. See Klaviyo's setup guide.
  • Explicit WhatsApp marketing consent: Abandonment reminders count as marketing messages. SMS or email consent does not cover WhatsApp. See Klaviyo's guide to collecting WhatsApp consent.
  • Approved message templates: Meta must approve every outbound marketing template before you can send it.
  • Markets you can actually reach: Meta has blocked WhatsApp marketing messages to US phone numbers since April 1, 2025, according to Klaviyo. Littledata adds the Shopify Market handle to every event it sends to Klaviyo, so you can split the WhatsApp branch by market and keep it for regions where it can deliver.
  • Littledata connected to Klaviyo: Follow the installation guide first.

Switch the trigger, not the message

Triggers are channel-agnostic. The WhatsApp message lives inside the flow, so changing the flow trigger changes who can reach it. You don't need to rebuild your WhatsApp templates.

Littledata sends these server-side events to Klaviyo. Each one replaces a Klaviyo client-side trigger. They use the same schema as Klaviyo's events, so you don't need to remap anything in your flows.

Klaviyo eventMatching Littledata event
Viewed ProductViewed Product - Littledata
Added to CartAdded to Cart - Littledata
NoneRemoved from Cart - Littledata
Checkout StartedAdded to Cart - Littledata or Checkout Started - Littledata *

* Klaviyo's flow templates use Checkout Started for abandoned cart flows. For a true abandoned cart flow, use Added to Cart - Littledata.

If you use custom triggers, contact Littledata support for the full tracking schema.

Measure the WhatsApp uplift by cloning your flows

Run two flows side by side: your original flow (Klaviyo trigger) and a cloned flow (Littledata trigger). The original flow takes priority:

  • Shoppers Klaviyo tracks client-side enter the original flow.
  • Shoppers Klaviyo missed, but Littledata caught server-side, enter the cloned flow.

The messages and revenue from the cloned flow are your uplift. Because the WhatsApp step sits on a conditional split inside the flow, the clone carries the same WhatsApp branch. Report on that WhatsApp message separately to see the WhatsApp uplift on its own.

For every filter below, choose Klaviyo's default metric, not the one with "Littledata" in its name. This makes sure the cloned flow only picks up shoppers Klaviyo missed.

Browse abandonment (Viewed Product - Littledata)

  1. Clone the flow. In Klaviyo Flows, find your browse abandonment flow that uses the Viewed Product trigger. Open its menu and click Clone.
  2. Pick the Littledata trigger. Name the clone clearly, such as "Browse Abandonment - Littledata". Set Trigger to Viewed Product - Littledata and click Clone flow.
  3. Add filters to the cloned flow.
    • Viewed Product: stops a shopper from going through both browse abandonment flows at the same time.
    • Added to Cart, Checkout Started and Placed Order: leave out shoppers who moved further down the funnel. The cart or checkout flows handle them, or they already bought.

Decide whether browse abandonment needs WhatsApp at all. A product view signals lighter intent than a cart, and Klaviyo advises keeping browse messages on WhatsApp gentle. Many brands keep browse abandonment on email and reserve WhatsApp for cart and checkout reminders.

Cart abandonment (Added to Cart - Littledata)

  1. Clone the flow. In Klaviyo Flows, find your cart abandonment flow that uses the Added to Cart trigger. Open its menu and click Clone.
  2. Pick the Littledata trigger. Name the clone clearly. Set Trigger to Added to Cart - Littledata and click Clone flow.
  3. Add filters to the cloned flow.
    • Added to Cart: stops a shopper from going through both cart abandonment flows at the same time.
    • Checkout Started and Placed Order: leave out shoppers who moved further down the funnel. The checkout flow handles them, or they already bought.

You don't need a Viewed Product filter here. Shoppers in this flow are already past the browse stage.

The Added to Cart filter matters more on WhatsApp than on email. Klaviyo recommends one WhatsApp reminder per abandoned cart event. Without this filter, a shopper could get the same reminder from both flows.

Klaviyo's WhatsApp messages show one product, not the whole cart. Feature the first item, and use Klaviyo's catalog tag to cancel the message if that item is no longer available.

Checkout abandonment (Checkout Started - Littledata)

  1. Clone the flow. In Klaviyo Flows, find your checkout abandonment flow that uses the Checkout Started trigger. Open its menu and click Clone.
  2. Pick the Littledata trigger. Name the clone clearly. Set Trigger to Checkout Started - Littledata and click Clone flow.
  3. Add filters to the cloned flow.
ConditionMetricFrequencyTimeframe
What someone has done (or not done)Checkout Startedzero timesin the last 1 hour
What someone has done (or not done)Placed Orderzero timessince starting this flow
  • Checkout Started: stops a shopper from going through both checkout abandonment flows at the same time.
  • Placed Order: leaves out shoppers who already bought.

You don't need Viewed Product or Added to Cart filters here. Shoppers in this flow are already past both stages.

A phone number typed at checkout is not WhatsApp consent. The flow's consent split still decides who gets the WhatsApp step.

What to watch when the test ends

Running two flows side by side adds complexity, so keep the test short. When you're happy with the results, pause your original flows and remove the test filters from the Littledata flows. If you leave them in, they keep skipping shoppers that Klaviyo also tracked.

On email, a cloned Littledata flow often shows a higher bounce rate, because it is the first flow to reach addresses typed at checkout. The WhatsApp branch only sends to consented numbers, so judge it on different signals:

  • WhatsApp send volume: Expect far fewer WhatsApp sends than emails in the cloned flow. Most newly identified shoppers have no WhatsApp consent.
  • Failed sends: Check for messages to US numbers or to numbers that aren't on WhatsApp. These fail rather than bounce.
  • Blocks and opt-outs: WhatsApp is a personal inbox. Watch for shoppers blocking or unsubscribing after an abandonment reminder.
  • Cost per recovered order: Meta charges for template messages. Compare the revenue from the cloned WhatsApp message with what those sends cost.

Use a Klaviyo custom report to compare the original and cloned flows.

Send shoppers back to a full cart from their phone

Littledata adds a checkout_url to the Added to Cart - Littledata event. It is a Shopify cart permalink, so it rebuilds the cart in whatever browser opens it. Klaviyo's own checkout URL won't work in a different browser.

On WhatsApp, a different browser is the normal case. The shopper taps a button on their phone, often after building the cart on a laptop, and the link opens in a mobile browser with no cart. The permalink restores the cart there. It also covers WhatsApp's one-product limit: the message shows the first item, and the button restores the whole cart.

In email and SMS templates, the variable is:

{{ event.extra.checkout_url }}

You can add URL parameters to it:

  • Shop Pay: add payment=shop_pay: {{ event.extra.checkout_url }}?payment=shop_pay
  • Discount code: add discount= and the code. For the code 15off: {{ event.extra.checkout_url }}?discount=15off
  • Both: {{ event.extra.checkout_url }}?payment=shop_pay&discount=15off

WhatsApp buttons work differently from links in an email. Meta approves URL buttons as part of the template, usually as a fixed base URL plus a variable part. Confirm how your Klaviyo WhatsApp template accepts a full dynamic URL before you rely on checkout_url in a button.

If the link applies the discount at checkout, the shopper doesn't need to copy a code. That keeps the message to a single button.

GA4 does not see UTM parameters on a link that goes straight to checkout. Server-side events in that session are credited to the shopper's previous session source.

The takeaway

A WhatsApp reminder can only reach subscribers who enter the flow. Switch your abandonment triggers to Littledata's server-side events, clone to measure, and judge the WhatsApp branch on its own numbers: sends, recovered revenue, and cost per recovered order.

Edward Upton
Edward Upton

Founder & CEO

Edward founded Littledata in 2015 as an analytics consultancy for ecommerce brands including MADE.COM and Micro Scooters, then turned it into the data layer for Shopify. He has spent over a decade on Shopify tracking, GA4 and marketing attribution, and speaks on ecommerce analytics at events including DigiMarCon and the Ecommerce Agency Summit.