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 because integration-specific product variables and blocks are already configured.
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 | Checkout Started |
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
For Shopify, Klaviyo's current setup uses the app embed for Viewed Product tracking. Other ecommerce platforms and custom storefronts may require integration-specific or JavaScript implementation.
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. - Inspect the profile timeline and event properties.
- Repeat on mobile and the priority storefront markets.
For stores serving the EU, EEA, UK, or Switzerland, Shopify privacy settings and consent can affect whether Klaviyo records onsite events. 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 repeat-entry window is a starting point, not a universal rule. Use browsing frequency, catalog size, and campaign cadence to choose it.
The purchase filter must remain active for every message so someone who buys after email one does not receive email two.
Step 4: set timing and frequency
Klaviyo recommends a delay of at least one hour. 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:
| Message | Timing | Job |
|---|---|---|
| 1 | 1 to 4 hours after view | Return to product and answer a key question |
| 2 | 1 to 2 days later, optional | Compare options, add proof, or explain fit |
Keep Smart Sending on for non-essential browse messages unless a deliberate test says otherwise. A frequent browser can trigger many product events in a short period.
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 distinguishes the browse product block from the repeating dynamic cart block. Cloning a cart template and changing the trigger can break product rendering. Save working integration-specific blocks before editing.
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
Use Placed Order at least once over all time to distinguish returning customers. A prospect may need brand and policy confidence. 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 branching guidance supports using recent Viewed Product count for this distinction.
High-consideration product
For high-value items, add service, consultation, specification, or financing information rather than an immediate discount. 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 based on supported identification and consent behavior. A profile email address in the database 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.
Platform-attributed orders do not prove the flow caused the purchase. For a high-volume flow, maintain a randomized holdout and compare net order behavior over the defined purchase window.
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.
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 recommends at least one hour. Test a longer delay for higher-consideration products and coordinate it with 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?
Not by default. A product view is lower intent than checkout. Start with relevance, comparison, proof, service, or fit. Test any incentive against margin and incrementality.
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 helps ecommerce teams implement and audit the complete flow. Book a Klaviyo and CRM diagnostic.
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 →