Klaviyo browse abandonment: setup and flow logic
Short answer. Trigger the flow with
Viewed Product, wait at least one hour, and exclude profiles who place an order, start checkout, or add to cart when higher-intent flows cover those events. Limit repeat entry or keep Smart Sending on. Use a lighter message than cart abandonment because viewing a product signals interest, not a saved cart or checkout.
Klaviyo can only send browse abandonment when it can associate browsing activity with a known profile and the profile is eligible for the channel. Anonymous traffic does not become a marketable audience merely because the tracking script loaded.
Klaviyo's current browse abandonment documentation recommends using the prebuilt flow where available, to make sure all dynamic variables work properly. For Shopify, Klaviyo also offers an abandoned collection flow and an abandoned search flow. The guide describes browse abandonment messages as a lighter touchpoint than abandoned cart messages.
Browse, cart, and checkout abandonment are different
| Flow | Typical trigger | Intent | Message style |
|---|---|---|---|
| Browse abandonment | Viewed Product |
Exploring | Light reminder and decision help |
| Cart abandonment | Added to Cart |
Saved product | Return to selected items |
| Checkout abandonment | Started Checkout |
High purchase intent | Resolve completion friction |
Do not let all three send for the same session. The browse flow should stop when the customer moves into a higher-intent state.
Step 1: validate Viewed Product tracking
Klaviyo's onsite tracking guide separates two metrics. Active on Site is recorded when an identifiable browser starts a browsing session. Viewed Product is recorded when an identifiable browser views a product page, and it is the one the browse abandonment flow needs. For Shopify, Viewed Product tracking is enabled by Klaviyo's app embed. For BigCommerce, the integration can add Klaviyo's onsite JavaScript but you add the Viewed Product snippet to the product page template. Custom storefronts need JavaScript event tracking for a Viewed Product metric.
Test with a known profile:
- Use a fresh browser or documented test state.
- Identify the profile through a form, message click, or supported method.
- View a product page.
- Open Analytics > Metrics and find
Viewed Product. Klaviyo's onsite tracking guide also describes a test that adds?utm_email=your@email.comto the store URL (or&utm_email=...if the URL already has parameters), then views a product page in the same browser. - Inspect the profile timeline and event properties.
- Repeat on mobile and the priority storefront markets.
For Shopify stores serving the EU, EEA, UK, or Switzerland, Klaviyo says that, based on your Customer Privacy settings in Shopify, it may not track onsite events for visitors unless they have provided consent. Non-consented individuals are therefore not part of the flow. Confirm actual behavior in each applicable market.
Step 2: use the metric trigger
Create or select a flow triggered by:
Metric > Viewed Product
Add trigger filters only when the whole flow should be restricted by product, category, market, or other event property. Use conditional splits when the profile should enter but receive a different path.
Inspect the exact event payload before selecting product filters. Property names and values can differ by integration.
Step 3: add conversion and overlap filters
Klaviyo's recommended base logic includes:
Placed Order zero times since starting this flow
AND
Started Checkout zero times since starting this flow
AND, when a cart flow exists,
Added to Cart zero times since starting this flow
AND
Has not been in this flow in the last 30 days
The 30-day repeat-entry window comes from Klaviyo's own build-your-own steps. In our reading, it is a starting point: browsing frequency, catalog size, and campaign cadence can justify another value. Klaviyo adds that if a customer views several products, the item shown depends on your filter: with "hasn't been in this flow in the last X days" it is the first item viewed, and with "has viewed product zero times since starting this flow" it is the most recent.
In our reading, the purchase filter should stay active for every message, so that someone who buys after email one does not receive email two.
Step 4: set timing and frequency
Klaviyo's steps call for a time delay of at least one hour. In our reading, this gives the visitor time to continue the session or move to checkout before the browse reminder sends.
Start with one message. Add a second only when it has a distinct job and enough incremental value to justify more pressure.
Example (our suggestion, not a Klaviyo figure):
| Message | Timing | Job |
|---|---|---|
| 1 | 1 to 4 hours after view | Return to product and answer a key question |
| 2 | Within 24 hours of the view, optional | Compare options, add proof, or explain fit |
Klaviyo advises limiting how often frequent browsers receive the flow with a filter such as "has received email from flow zero times in the last X days", and leaving Smart Sending on for all browse abandonment emails.
Step 5: render the viewed product
Use the integration's prebuilt browse-abandonment block where possible. Klaviyo's standard examples use event variables such as:
event.ImageURLfor a dynamic image.{{ event.Name }}for product name.{{ event.Price }}for price.{{ event.URL }}for the product link.
These names depend on the event structure. Preview with a recent real event rather than relying on placeholder text.
Klaviyo warns against copying the default abandoned cart message into a browse abandonment flow: the abandoned cart block is set to Dynamic, while the browse abandonment block should be Static. Switching the type erases the tags and text, so copy the tags first if you already cloned the cart message.
Message structure
Subject and preview
Use recognition without pretending the customer saved a cart. Examples:
A closer look at [Product]Still comparing [Category]?Questions about [Product]?
Avoid false inventory pressure. Only say stock is low when current data supports it.
Body
- Show the viewed product.
- Answer the category's main decision question.
- Add one useful proof point, review, material detail, or fit guide.
- Link to the exact product.
- Provide preference and unsubscribe access.
Browse abandonment should feel like assistance, not surveillance. Avoid copy that says We watched you or overstates how much the person considered the item.
Useful branches
First-time prospect versus customer
Klaviyo's guide lists the audiences "views a product and has placed order equals zero over all time" and "views a product and has placed order at least once over all time". For people who have never purchased, it suggests that a discount code or promotional offer may encourage a first purchase. For existing customers, it suggests you may not want to include a discount. In our reading, a prospect may need brand and policy confidence, while a customer may need comparison, replenishment, or a complementary option.
One product versus many products
Someone who viewed one product may benefit from exact product detail. Someone who browsed many products may need category navigation or a selection guide. Klaviyo's browse abandonment guide describes a filter on having viewed a product at least Z times since starting the flow, so that only people browsing several items receive the email.
High-consideration product
For high-value items, in our reading, add service, consultation, specification, or financing information rather than an immediate discount. Klaviyo mentions a trigger filter on a specific product, for example to share an offer on a more expensive item. Use product filters only after validating the event property.
Region or language
Branch only when storefront, shipping, currency, and content are actually localized. A profile property is not enough if the landing page still sends the customer to the wrong market.
Consent and known-browser limits
Klaviyo can track browse activity for identifiable browsers. According to the onsite tracking guide, a browser is identified when the person has clicked through a Klaviyo email or SMS, subscribed through a Klaviyo form, submitted identifying information through a Klaviyo form, or logged in on a site with custom tracking for logged-in users. A visit alone does not make a browser known. In our reading, a profile email address in the database therefore does not guarantee that a current browser session is linked.
Treat the expected eligible audience as a subset of product-page visitors. Do not use the difference as a reason to weaken privacy controls or import non-consented contacts.
How to QA the flow
Test these paths with unique profiles:
- View product, take no further action.
- View product, then add to cart.
- View product, then start checkout.
- View product, then place an order.
- View several products.
- Existing customer views a product.
- Suppressed or non-consented profile views a product.
- Frequent browser hits the re-entry rule.
For each path, verify entry, skipped messages, product variables, links, currency, image fallback, UTM parameters, and final suppression.
What to measure
Track delivered rate, click rate, placed order rate, revenue per recipient, unsubscribe, complaint, and overlap with other flows. Use product-level and customer-status splits only when volume is sufficient.
In our reading, platform-attributed orders do not prove the flow caused the purchase. For a high-volume flow, a randomized holdout compared over a defined purchase window gives a cleaner read.
Common browse-abandonment mistakes
- Triggering without validated Viewed Product data.
- Sending browse, cart, and checkout reminders for one session.
- Using cart copy for a product view.
- Omitting the
Placed Orderfilter. - Showing the wrong product because variables were copied from another integration.
- Sending too frequently to active browsers.
- Adding a discount before addressing the buying question.
- Assuming every anonymous visitor can be emailed.
Getting browse abandonment right takes more than a template, so put your Klaviyo account in front of an expert for a free 30-minute audit before you scale the flow further.
FAQ
What triggers a Klaviyo browse abandonment flow?
The standard trigger is the Viewed Product metric for a browser Klaviyo can associate with a profile. The profile must also be eligible to receive the selected marketing channel.
How long should I wait before sending?
Klaviyo's build-your-own steps say to add a time delay of at least one hour. In our reading, a longer delay is worth testing for higher-consideration products, coordinated with the cart and checkout flows.
How many browse-abandonment emails should I send?
Start with one. Add a second only when it delivers a different decision aid and does not create excessive frequency or flow overlap.
Should I offer a discount?
In our reading, not by default: a product view is lower intent than checkout, so relevance, comparison, proof, service, or fit come first. Klaviyo's guide suggests that people who have never purchased are the audience for which an incentive such as a discount code can make sense, and that you may not want a discount for customers who already bought. Test any incentive against margin.
Why is my viewed product blank in the email?
The template may use variables from the wrong event or integration, or the preview event may lack the property. Inspect a recent Viewed Product event and use the integration's prebuilt block where available.
Respond to interest without overreaching
Browse abandonment works when tracking, identity, consent, intent, filters, and product rendering agree. Deliver, our dedicated Klaviyo agency, helps ecommerce teams implement and audit the complete flow. Book a Klaviyo and CRM diagnostic.
Provenance and verification
Check of 2026-11-03, raw HTML converted to text and read in full. Klaviyo help article on creating a browse abandonment flow (updated 2026-10-07): Viewed Product trigger, Shopify app embed, EU/EEA/UK/Switzerland consent note, pre-built flow, profile filters, delay of at least one hour, Smart Sending, Static versus Dynamic block, event.ImageURL, event.Name, event.Price and event.URL tags, audience filters. Klaviyo help article on onsite tracking (updated 2026-03-30): difference between Active on Site and Viewed Product, who Klaviyo tracks and how a browser is identified, Shopify consent note, 60-minute session expiry. The branching best-practices article linked from the first page was not opened.
- Sources checked on
- Reviewed by
- Claude (AI review, Klaviyo help articles reopened and read on 2026-11-03)
- AI assistance
- Yes
- Sources
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →