How-to guides

How to set up a Klaviyo browse abandonment flow

Build a Klaviyo browse abandonment flow that fires on Viewed Product: trigger config, filters to avoid noise, sequencing by AOV, and ongoing monitoring.

Published


title: "How to set up a Klaviyo browse abandonment flow" description: "Build a Klaviyo browse abandonment flow that fires on Viewed Product: trigger config, filters to avoid noise, sequencing by AOV, and ongoing monitoring." slug: "how-to-set-up-klaviyo-browse-abandonment" publishedAt: "2026-05-19" updatedAt: "2026-05-19" howToSteps:

  • name: "Confirm Viewed Product tracking is firing" text: "Go to Analytics → Metrics → Viewed Product. The chart should show steady event volume during traffic hours. A flat line on the right edge means client-side tracking has stopped — likely a theme update stripped the Klaviyo snippet."
  • name: "Decide your browse abandonment scope" text: "Browse abandonment can fire on any product view, or only on views of higher-intent products (high AOV, product detail pages with extended scroll, etc.). For most brands, scope to higher-AOV SKUs to keep the flow signal-to-noise high."
  • name: "Create a new flow triggered by Viewed Product" text: "Flows → Create Flow → From Scratch → Trigger: Metric → Viewed Product. This fires whenever the Viewed Product event is recorded against a profile."
  • name: "Set trigger filters to reduce noise" text: "Add filters to exclude low-intent views: views of category pages, search results, or low-AOV products. Most brands filter on product price > $50 (or appropriate threshold) and exclude products marked as gift cards, samples, or accessories."
  • name: "Add the cart-exclusion filter" text: "Add 'Added to Cart for this product zero times since starting this flow' OR equivalent — you don't want browse abandonment firing if the customer already added the same product to cart (that's abandoned cart territory)."
  • name: "Add a wait period before the first email" text: "Set 30 minutes to 4 hours delay before email 1. Sending instantly feels stalker-y; waiting 24+ hours misses the consideration window. 1-2 hours is the standard sweet spot."
  • name: "Build the email sequence" text: "Standard sequence: email 1 at 1-2 hours (product reminder with image), email 2 at 24-48 hours (reviews and social proof), email 3 at 5-7 days (styling or use-case content). High-AOV verticals can extend to 5-7 emails over 14-21 days."
  • name: "Turn Smart Sending OFF on the first email" text: "Browse abandonment timing matters. Smart Sending will skip the email if the customer received any other email in the last 16 hours. Turn it off for at least email 1."
  • name: "Test with a real product view" text: "Incognito browser. View a product. Check Analytics → Metrics → Viewed Product for your profile within 2 minutes. Then check the flow's Latest entries tab. Confirm email 1 arrives at the configured delay."
  • name: "Activate and monitor" text: "Change status to Live. Monitor weekly: Viewed Product event volume, flow entry counts, and per-email delivery. Browse abandonment is one of the most-commonly-broken flows because it depends on client-side tracking." faq:
  • q: "Does browse abandonment require Klaviyo's onsite tracking?" a: "Yes. Viewed Product is a client-side event fired by the Klaviyo JS snippet. Without onsite tracking installed and active, no Viewed Product events fire and browse abandonment can't trigger."
  • q: "Should browse abandonment fire on every product view?" a: "Usually no. Filtering on minimum AOV (e.g., over $50) and excluding low-intent products keeps the flow signal-to-noise high. Browse abandonment that fires on a $5 add-on item generates noise without revenue."
  • q: "How long should a browse abandonment sequence run?" a: "Standard DTC: 2-3 emails over 5-7 days. High-AOV verticals (jewelry, furniture, home goods): 5-7 emails over 14-21 days because consideration cycles are longer. Match sequence length to consideration cycle, not blog-post defaults."
  • q: "Should I exclude profiles already in the abandoned cart flow?" a: "Yes. Add a filter for 'Added to Cart for this product zero times since starting this flow' or similar — the customer who added the product to cart should be in abandoned cart, not browse abandonment. Running both creates email fatigue and conflicting messaging."
  • q: "What's a realistic revenue contribution from browse abandonment?" a: "5-15% of total flow revenue in most DTC verticals. Higher in fashion (where browse-to-purchase consideration is deep) and jewelry/furniture (where AOV is high). Lower in CPG and supplements where customers typically know what they want."
  • q: "Why does my browse abandonment flow have very few entries?" a: "Usually one of three things: trigger filter too restrictive (excluding most product views), Viewed Product event not firing (client-side tracking broken), or the cart-exclusion filter is over-matching (sending too many people to abandoned cart instead)." related:
  • klaviyo-abandoned-cart-flow-not-firing
  • how-to-set-up-klaviyo-abandoned-cart
  • klaviyo-checkout-started-event-not-working
  • klaviyo-for-fashion-apparel-dtc

A browse abandonment flow catches a different intent signal than abandoned cart: the customer who's interested enough to view a product detail page but hasn't moved to add-to-cart. For high-consideration verticals — fashion, jewelry, furniture, home goods — browse abandonment can drive 8-15% of total flow revenue, more than welcome flow in some cases.

The catch: browse abandonment depends on client-side JavaScript tracking. The Viewed Product event is fired by the Klaviyo snippet on your storefront. Anything that strips or disables that snippet — theme updates, ad blockers, JS conflicts — silently kills the flow.

This page walks through the build. The configuration is straightforward; the maintenance is where most brands lose. We'll cover both.

Prerequisites

Before building, confirm:

  • Klaviyo's onsite tracking is active. Settings → Integrations → Shopify (or WooCommerce). Onsite Tracking toggle ON.
  • Viewed Product events are firing. Analytics → Metrics → Viewed Product should show steady event volume.
  • You have abandoned cart already configured. Browse abandonment works alongside abandoned cart, so the latter should be live first.
  • Your product catalog is synced to Klaviyo. Catalog data is what populates browse abandonment emails with product images and details.

Step 1: Confirm Viewed Product tracking is firing

Analytics → Metrics → Viewed Product. The chart should show steady event volume across your traffic hours.

If the chart is flat on the right edge — recent events have stopped — client-side tracking is broken. Do not proceed with building browse abandonment until tracking is fixed. The flow will not work.

Common causes for missing Viewed Product events:

  • Klaviyo snippet absent from your theme (often after theme updates)
  • Storefront blocked by ad blockers (uBlock, DuckDuckGo Privacy Essentials) for a meaningful share of traffic
  • JS conflict with another popup/chat/page-builder app stripping the snippet
  • Klaviyo's klaviyo.identify() not firing for anonymous visitors (in which case events fire but don't associate to profiles)

Step 2: Decide your browse abandonment scope

Decide whether the flow should fire on:

  • Every product view (broad scope). High volume but lower per-recipient revenue. Generates more emails for customers, which can drive fatigue.
  • High-intent product views only (narrow scope). Filter to products above a price threshold (e.g., $50+), exclude accessories and add-ons. Lower volume but higher per-recipient revenue and less fatigue.

For most brands, narrow scope wins. Browse abandonment is most valuable for products that customers actually consider — not for $5 add-ons or sample-sized items.

Step 3: Create a new flow triggered by Viewed Product

Flows → Create Flow → From Scratch.

  • Trigger: Metric
  • Metric: Viewed Product

Name the flow specifically: "Browse Abandonment — Q2 2026" or similar.

Step 4: Set trigger filters to reduce noise

Add filters to scope the trigger:

  • Product price > $50 (adjust threshold to your AOV). Excludes low-intent or accessory views.
  • Product type is not Gift Card (and not Sample, not Accessory, etc.). Excludes products that shouldn't trigger browse content.
  • Profile is subscribed to marketing (excludes unsubscribed contacts).

Some brands also filter on session depth — only firing if the customer viewed the product detail page (not the category listing). This is harder to configure but produces higher signal-to-noise.

Step 5: Add the cart-exclusion filter

A profile who's added the same product to cart should be in abandoned cart, not browse abandonment. Add a flow filter:

"Added to Cart for this product zero times since the trigger event."

Without this filter, the same customer can receive both browse abandonment and abandoned cart emails for the same product within hours — creating fatigue and conflicting messaging.

Step 6: Add a wait period before the first email

Open the trigger node and set the delay before email 1. 30 minutes to 4 hours is the standard range. 1-2 hours is the most common.

Sending immediately feels intrusive — the customer just left the page seconds ago. Waiting 24+ hours misses the consideration window when the product is still top-of-mind. Match the delay to your vertical's consideration cycle.

Step 7: Build the email sequence

Standard sequence:

  • Email 1 (1-2 hours): Product reminder. Image of the specific product the customer viewed, name, price, simple "still thinking about this?" framing. Include a "view product" CTA back to the product detail page.
  • Email 2 (24-48 hours): Reviews and social proof. Surface 1-3 reviews of the specific product. Add return policy reassurance.
  • Email 3 (5-7 days): Styling or use-case content. Show the product in context — styled with other items, used in a real-world setting, in a customer's home.

High-AOV vertical adjustments:

  • Jewelry, furniture, home goods: Extend to 5-7 emails over 14-21 days. Add "designed for" or "made with" content emails. Consider a personal-outreach email at the end of the sequence for high-AOV products.
  • Fashion: 3-5 emails over 7-14 days. Lean heavy on styled-look visual content.
  • Beauty: 3-4 emails over 7 days. Ingredient and ritual education in middle emails.

Step 8: Turn Smart Sending OFF on the first email

Open email 1 settings. Toggle Smart Sending OFF.

Browse abandonment timing matters. Smart Sending will skip the email if the customer received any other recent send — which is exactly when the flow's value is highest. Off for email 1 minimum. You can leave Smart Sending ON for later emails if you want fatigue protection at the end of the sequence.

Step 9: Test with a real product view

Open an incognito browser. Visit your storefront. Click into a product detail page that should match your filter (above the price threshold, not excluded by type).

Wait 5 minutes. Check Analytics → Metrics → Viewed Product. Your test profile should appear in the recent events list with the right product.

Then check the flow's Latest entries tab. Your profile should appear within 5-10 minutes.

If Viewed Product fired but the flow didn't trigger, a filter is blocking entry — usually the price filter or the cart-exclusion filter. If Viewed Product didn't fire at all, tracking is broken — go back to step 1.

Step 10: Activate and monitor

Change status to Live. Reload to confirm.

Set up ongoing monitoring:

  • Weekly: Viewed Product event volume should be steady. Sudden drops indicate tracking failures.
  • Weekly: Flow entry count steady. A flat-line trend often precedes a flow that's gone fully silent.
  • Monthly: Per-email delivery and engagement. Watch for content staleness.

Common mistakes

  • Trigger fires on every product view. Generates too many emails for the same customer in a short window. Filter to higher-intent views.
  • No cart-exclusion filter. Customers who add to cart get both browse abandonment and abandoned cart emails simultaneously.
  • Smart Sending ON for email 1. Recent campaign sends silently suppress the browse abandonment email — exactly when timing matters.
  • No delay before email 1. Customers feel surveilled when they get an email seconds after leaving a page.
  • Templates reference SKU-specific data that doesn't render. Always test rendering with multiple products to confirm catalog data populates correctly.
  • Browse abandonment runs on tracking that's been broken for weeks. The most common silent failure — flow looks Live, Viewed Product events stopped firing months ago.

How to verify your setup is working

Run the product-view test (step 9) monthly. End-to-end check that exercises tracking, trigger, filter, and email rendering.

Weekly:

  • Viewed Product event volume steady
  • Flow entry count steady
  • Email 1 open rate above 25% (lower than welcome or abandoned cart because intent is lower)
  • No surge in unsubscribes from the browse sequence

If any drift appears, debug before assuming the flow is fine.

What can quietly break this later

Theme updates strip the tracking snippet. The most frequent failure mode for browse abandonment. Viewed Product goes silent overnight. Flow entries drop to zero. Flow looks Live in the editor.

Catalog feed staleness. Browse abandonment emails render product data from the catalog. If the catalog feed sync breaks or lags, emails can show discontinued products, wrong prices, or missing images.

Filter drift after catalog renames. If your filter references product types like "Apparel" and a catalog refresh renames the type to "Clothing," the filter stops matching and entries drop.

Ad blocker share growing. A trend across all client-side tracking: ad-blocker adoption is rising. Some share of your traffic always has Viewed Product blocked. If the absolute event volume drops 10-30%, it might not be your tracking — it might be ad blockers. Cross-reference with your overall traffic.

Each of these is invisible from Klaviyo's UI. The flow editor shows Live. The dashboard doesn't surface the event-volume drop. Detecting drift requires watching the underlying metric, not the flow status — exactly the gap Playbook's hourly monitoring closes.

Frequently asked questions

Does browse abandonment require Klaviyo's onsite tracking?
Yes. Viewed Product is a client-side event fired by the Klaviyo JS snippet. Without onsite tracking installed and active, no Viewed Product events fire and browse abandonment can't trigger.
Should browse abandonment fire on every product view?
Usually no. Filtering on minimum AOV (e.g., over $50) and excluding low-intent products keeps the flow signal-to-noise high. Browse abandonment that fires on a $5 add-on item generates noise without revenue.
How long should a browse abandonment sequence run?
Standard DTC: 2-3 emails over 5-7 days. High-AOV verticals (jewelry, furniture, home goods): 5-7 emails over 14-21 days because consideration cycles are longer. Match sequence length to consideration cycle, not blog-post defaults.
Should I exclude profiles already in the abandoned cart flow?
Yes. Add a filter for 'Added to Cart for this product zero times since starting this flow' or similar — the customer who added the product to cart should be in abandoned cart, not browse abandonment. Running both creates email fatigue and conflicting messaging.
What's a realistic revenue contribution from browse abandonment?
5-15% of total flow revenue in most DTC verticals. Higher in fashion (where browse-to-purchase consideration is deep) and jewelry/furniture (where AOV is high). Lower in CPG and supplements where customers typically know what they want.
Why does my browse abandonment flow have very few entries?
Usually one of three things: trigger filter too restrictive (excluding most product views), Viewed Product event not firing (client-side tracking broken), or the cart-exclusion filter is over-matching (sending too many people to abandoned cart instead).