FLOWS

Klaviyo product blocks vs hand-picked products: what to use in flows

Klaviyo can fill an email with product recommendations on its own, using dynamic product blocks fed by best sellers, newest items, recently viewed products or AI "may also like" picks. That's useful in some places. But in cross-sell and post-purchase flows, my default is hand-picked products: a specific version of the flow for each hero product, with the next item chosen on purpose. This is for founders building flows in Klaviyo who are deciding whether to let the algorithm pick or pick for themselves.

Jack White
Jack White Founder, Bardown Digital
Updated · 7 min read
KEY TAKEAWAYS
  • Klaviyo has two kinds of product blocks: static (you choose up to 9 items) and dynamic (Klaviyo fills them from a product feed).
  • For cross-sell flows, I build a specific version per product rather than relying on a dynamic block.
  • In abandoned cart emails, show what they left. Klaviyo itself says adding other products can lower conversion.
  • Browse abandonment emails show the one product that triggered the flow. To show more, add a "recently viewed" feed, which excludes that triggering product.
  • Every dynamic feed needs a fallback for people with little history, or they get generic best sellers.

What's the difference between a static and a dynamic product block?

Klaviyo's product block comes in two versions:

  • Static blocks show a set list of products you choose. You can pick up to 9 items, and you can write a custom description for each.
  • Dynamic blocks show products based on business trends, like best sellers in the last 90 days, or personalized for each recipient through a product feed. How many show depends on your layout. For example, 2 rows of 3 products shows up to 6.

A dynamic block can only show what its feed allows. If the feed doesn't have enough eligible products for someone, the block shows fewer.

What product recommendation feeds does Klaviyo offer?

You build product feeds in Klaviyo under Content, then Products, then Product feeds. Klaviyo's Help Center lists these options:

Feed What it shows
Best-selling products Ranked by orders over the last 90 days, or weighted toward the last 3 days
Newest products Items most recently added to your Klaviyo catalog
Products a customer has recently viewed From the last 90 days, for identified visitors
Products a customer has added to cart From the last 90 days
Products a customer may also like AI picks using collaborative filtering, which predicts what a person is likely to buy next

You can filter feeds by category, price and stock level. Klaviyo also automatically leaves out items without images, items the person already bought, out-of-stock items and the items from the event that triggered the flow.

That last exclusion matters a lot in flows. More on that below.

Should I use dynamic product blocks in a cross-sell flow?

This is where I part ways with the algorithm. My default is to build specific, per-product versions of the cross-sell flow: duplicate the layout for each hero product and choose what comes next by hand.

Why? Because I want to control the story. When I pick pairs, I start with items that complement the hero product. Accessories come later, so you're not hounding someone who just bought. And for restock products, I don't ask for another purchase too soon.

A dynamic block can't make those calls. It knows what's popular or what similar shoppers bought. It doesn't know that your customer needs two weeks with the product before a second flavor makes sense.

The alternative, if you don't want a version per product, is one general cross-sell flow. It gets more sends, and it shows you which products people actually buy at a given point in their lifecycle. That's useful data for building the specific versions later. The full build is in my cross-sell email flow post.

What should an abandoned cart email show?

What they left. Klaviyo's abandoned cart block pulls in every item someone left in their cart by default, and Klaviyo's Help Center says it's best practice to only include the products the customer abandoned, because other products can distract and lower the overall conversion rate.

So skip the "you might also like" row in cart emails. If you want to recommend something else, do it after the order, in your post-purchase flow.

Does browse abandonment only show one product?

By default, yes. Klaviyo's pre-built browse abandonment emails pull the product from the Viewed Product event that triggered the flow: its name, image, price and link. That's one product.

Which product it is depends on your flow filters. With a "hasn't been in this flow in the last X days" filter, it shows the first item the person viewed. With a "has viewed product zero times since starting this flow" filter, it shows the most recent one.

If you want to show more than one item, add a dynamic product block with a "recently viewed" feed below the main product. One catch: Klaviyo excludes the product that triggered the browse abandonment flow from the feed. So that block will show the shopper's other recently viewed items, not repeat the main one. That's actually what you want, but it surprises people when they test it.

Two things have to be working for any of this:

  • Viewed Product tracking. Klaviyo says browse abandonment requires it, and recommendations based on viewed products aren't available without it.
  • Identified visitors. Klaviyo has to know who the visitor is to connect their views to a profile.

More on the flow itself in browse abandonment email.

Where can dynamic product blocks work?

Places where you can't know in advance what each person wants, and where being roughly right is fine:

  • Campaigns to a broad list, with a best-sellers or newest-products row below the main message
  • Winback emails, where a "may also like" row gives lapsed customers something new to look at
  • Welcome emails to non-customers, with best sellers as social proof

And places where they don't:

  • Abandoned cart, for the reason above
  • Cross-sell and post-purchase, where timing and pairing matter more than popularity
  • Back in stock, where the email is about one product. See Klaviyo back in stock emails.

What settings trip people up with product blocks?

A few from Klaviyo's Help Center worth knowing before you build:

  • Fallbacks. For people with limited history, you choose what they see instead, like best sellers. Those defaults are the same for everyone and aren't personalized. Set one, or some people get a thin block.
  • Out of stock. On Shopify, a product leaves feeds when all its variants are out of stock. A variant that allows selling at zero inventory can keep it in.
  • Variants. You can't pick individual variants in product blocks. If your cross-sell is "the 2-pack of the same flavor," you may need to link to it directly.
  • Static blocks in flows. Klaviyo notes that static block details in flow emails won't update at send time, so check them when prices change.
  • Catalog sync. Klaviyo syncs Shopify items in real time, but collections and category membership update every 6 hours. A brand-new collection won't show up in a filtered feed right away.

FAQ

How do I add product recommendations in Klaviyo?

Create a product feed under Content, Products, Product feeds, choose a feed type like best sellers or "may also like," then add a product block to your email, set it to Dynamic and select that feed.

Does Klaviyo use AI for product recommendations?

Yes. The "products a customer may also like" feed uses collaborative filtering to predict what a recipient is likely to buy next.

Why is my browse abandonment email only showing one product?

Because it pulls from the single Viewed Product event that triggered the flow. Add a dynamic block with a recently viewed feed to show other items they looked at.

How many products can a Klaviyo product block show?

A static block holds up to 9 items you pick. A dynamic block shows as many as your layout allows, if the feed has enough eligible products.

Why are some products missing from my dynamic block?

Klaviyo leaves out items without images, items the person already bought, out-of-stock items and items from the flow's trigger event.

Jack White, founder of Bardown Digital
WRITTEN BY Jack White

Founder of Bardown Digital, a Chicago-based Klaviyo email and retention agency for Shopify brands. He's worked with brands doing $500K to $100M a year, with $100M+ in email-attributed revenue across them.

SOURCES

Keep reading

All posts →
FLOWS · 9 MIN READ

Klaviyo Viewed Product not tracking? How to fix your browse abandonment trigger

Klaviyo Viewed Product not working on Shopify? Check the app embed, the tracking setting, which metric your browse flow uses, and who Klaviyo can identify.

Read the post →
FLOWS · 11 MIN READ

Site abandonment email: what to send when they didn't look at anything

What a site abandonment email is, how it differs from browse abandonment in Klaviyo, what to send, and the filters that keep the two flows apart.

Read the post →
FLOWS · 9 MIN READ

SMS welcome series: what to text new subscribers

What to put in an SMS welcome series in Klaviyo: how many texts, what each one says, when to send them, and the consent and quiet-hours rules to get right.

Read the post →

Get your flows reviewed

Product recommendations are one small piece of a flow that either sells the next order or doesn't. The first strategy session is free: one hour, live with me in your Klaviyo account, and you leave with a fix list whether we work together or not. Not ready to book? Grab one of my free resources instead.

Book a strategy session
Or email me at jackwhite@bardowndigital.com