How it works Clients Email marketing About Blog
Book a discovery call →
← Writing

Browse abandonment is worth building, and smaller than you think

·4 min read ·Mohamed Bsoul

Browse abandonment works, and it will email a much smaller group than the guides imply. The flow only fires for people Klaviyo has already recognised, which is a slice of everyone who looked at your products and never a large one. Build it, and set your expectations from a number you can check in about ten minutes.

Who the flow can actually email

Klaviyo triggers browse abandonment on Viewed Product, and it only records that event for browsers it can recognise. Recognition comes from a previous email click, a form submission, or a cookie set on an earlier visit. Someone who arrives from an ad, reads three product pages and leaves has done exactly the thing the flow is named after, and the flow will never hear about it.

There is a second cut on top of that one. Under Shopify's customer privacy settings, onsite tracking does not run for visitors in the EU, EEA, UK and Switzerland without consent, so those people are absent from the trigger entirely unless they clicked accept. If a decent share of your traffic is European, the audience shrinks again before you have written a line of copy.

The tracking layer nobody mentions

Viewed Product is a browser event. It is sent by JavaScript running on a customer's phone, and the same content blockers, privacy browsers and failed script loads that eat Started Checkout eat this one too. We went through that gap in abandoned cart, where the fix is to trigger on Shopify's server-side abandoned checkout record instead of trusting the browser.

Browse abandonment has no such record. Shopify does not log "viewed a product and left" anywhere you can reconcile against, so there is no second source of truth and no server-side fallback to add. What the script captured is what you get. Nothing in Klaviyo will show you the difference either, because a missing event never appears as a failure. It appears as a quiet week.

How to size it before you build it

Take the last 30 days and pull two numbers.

In Shopify, open Analytics → Reports and find product page views, or sessions that viewed a product. In Klaviyo, open Metrics → Viewed Product and set the same window.

Divide the second by the first. That ratio is the share of product browsing your flow can see, and it is the honest ceiling on the whole thing before filters, sends or copy get involved. Then apply the exclusions you plan to use, because anyone who added to cart or bought belongs to another flow, and the eligible group falls again.

None of this makes the flow a bad idea. It makes it a flow you build with the right number in your head, instead of one you launch against a benchmark and then quietly write off.

Why the published numbers look so good

Browse abandonment open rates land in the low forties in most published benchmarks, well above the average campaign. The figure is real, and the denominator is doing the work.

Everyone counted in it was already recognised, which in practice means they had clicked an email or handed over an address at some point. You are measuring a flow sent to your warmest and most recently interested people, and it performs like one. A benchmark computed on the survivors tells you what happens to those who got through, not how many got through. That same distinction runs underneath where email revenue actually comes from.

Build it anyway, in the right order

The cost is one build. After that it runs without anyone looking at it, and it speaks to the people carrying the freshest interest on your list.

It doubles as a check on everything upstream. A Viewed Product count near zero is not a flow problem, it is a tracking or identification problem, and the browse flow is the thing that makes it visible. Worth having wired up even in the months it earns little.

Where it sits is the part most stores get wrong. Welcome, abandoned cart and post-purchase come first, and the order to build flows in has not changed. Browse abandonment is a supporting flow, and supporting flows earn their place after the core ones work, not ahead of them.

Does browse abandonment cannibalise abandoned cart?

Only if you build it without exclusions. The hierarchy runs checkout, then cart, then browse: someone who reached checkout should be in the checkout flow and nowhere else.

Filter out anyone who has added to cart, started checkout or placed an order since entering. Set a re-entry limit of 14 or 30 days as well, or a regular browser hears from you constantly and the flow turns into the reason they unsubscribe.

Should a browse abandonment email include a discount?

No. The person looked at a product once and did not add it to a cart. Paying margin to someone who has not shown buying intent is the wrong trade, and it teaches your most engaged readers that browsing produces a code.

Show them the product they looked at, put a couple of near neighbours underneath it, and stop.

Why is my Viewed Product count so low?

Check in this order. Identification first: if few visitors have ever clicked an email or filled in a form, there is almost nobody for the event to attach to, and that is a forms and list problem before it is a flow problem. Then the script: confirm Klaviyo's onsite tracking is installed and firing on product pages, not only on the homepage. Then consent: if your traffic is largely European, the privacy settings above are doing exactly what someone configured them to do.

Written by Mohamed Bsoul at Nahhda. We build the machine that runs a store's Klaviyo, and hand it over. If any of this is a problem you have, the fastest way to talk about it is 15 minutes.

Book a discovery call →
// book a call

15 minutes, and no pitch.

A short call to hear about your business and work out together whether there is anything here worth building. If there isn't, we will tell you.

Mohamed Bsoul · Nahhda

Discovery call

15 minutes
Video call, link on confirmation
Times in your timezone

Come with your numbers open if you can. It makes the 15 minutes worth a lot more.