[deliver]
Deliver article · 2026-10-13 · Charlotte Rodrigues

Cross-Sell and Upsell Emails in Klaviyo: The Product Feeds Guide

Cross-selling offers a customer a product that complements the one they are looking at or have bought. Upselling offers them a higher version of that same product. These two definitions are ours: Klaviyo's documentation talks about recommendations and product feeds, without using the two terms to tell them apart. The tools are the same. What changes is the rule that selects the products shown in the email.

TL;DR. In Klaviyo, a product feed applies rules to your catalog to populate a product block. The block can be dynamic, personalized or not, or static with at most nine products. Products already purchased, without an image or out of stock do not appear in recommendations. The personalized model trains every 2 to 7 days, so BFCM purchases are not reflected straight away. A cross-sell flow based on the ideal repurchase date exists, but it assumes a paid plan.

Want an outside look before you build? We offer a Q4 readiness audit: 30 minutes, free, no strings attached.

Catalog, feed, block: the three objects

The page on feeds and recommendations defines the terms (Klaviyo, how to use product feeds and recommendations).

Feeds are available by default for several integrations, including Shopify, WooCommerce, BigCommerce, Magento and PrestaShop. For any other platform, you sync the catalog through a custom catalog feed or the API.

Choosing the rule: what separates cross-sell from upsell

When you create a feed, Klaviyo asks what customers should see first, with classic or personalized options. Recently viewed products and products added to cart look at the last 90 days. Other options, such as best-selling products, offer a 3-day or 90-day period (Klaviyo, how to use product feeds and recommendations).

For a cross-sell, the natural option is "products a customer may also like". Klaviyo describes collaborative filtering: the model predicts what a recipient is likely to buy next from their past orders and their similarity to other customers. If customers have often viewed products A, B and C together and a customer has only seen A and B, the model shows them C. The model also looks at viewed products, without being limited to them.

For an upsell, the pages cited here offer no rule that compares the price of the purchased product with that of the proposed one. The feed's price and stock filters set minimum and maximum bounds that belong to the feed. In our view, an upsell approach is therefore to build one feed per category with a minimum price bound, or to pick the higher version by hand in a static block. That is an editorial choice on our part and not a documented Klaviyo function.

The category filter accepts several categories with two logics: "any of" (an OR condition) or "all of" (an AND condition), for inclusion and for exclusion. Price and stock filters are supported for Shopify, BigCommerce and Magento 2, as well as for variants in custom catalogs.

Intent Feed rule in our view Point to check
Cross-sell Products a customer may also like The customer has enough history for a personalized recommendation
Cross-sell without history Best-selling, 90 days The fallback is the same for every customer
Upsell Product category with a minimum price bound, or a static block The bound is the same for every customer in the flow
Discovery Newest products Sorting relies on Klaviyo's own creation date

What the block will never show

The page lists four categories excluded from recommendations: items without an associated image, items the recipient has already purchased, out-of-stock items, and items in the flow trigger event for the email concerned (Klaviyo, how to use product feeds and recommendations). For Magento and Shopify stores, an out-of-stock product is hidden from the catalog and appears in no feed (Klaviyo, how to add a product block to an email).

For a BFCM, these rules have a practical effect. A campaign or flow that shows best-sellers without manual selection does not display, under these rules, out-of-stock items, which can avoid a click to a page with no stock. The documentation does not say how a static block, whose products are chosen one by one, behaves when an item runs out: check stock yourself before sending.

Dynamic or static block

A dynamic block shows products based on store trends, such as best-sellers of the last 90 days, or personalized for each recipient according to the interest Klaviyo predicts for them. A static block shows a list of items you choose, up to nine (Klaviyo, how to add a product block to an email).

Two limits are worth knowing. The block selects products at product level, not variant level, and it does not accept custom HTML. And when you pick products by hand for a message that does not send right away, such as a flow email or a scheduled campaign, their details do not update dynamically at send time, even if you edit the listing on your site. To have products update, the page advises creating a feed that contains those items first, then using the dynamic option.

To show the original price struck through next to the sale price, the block's Styles tab offers the Original price for sale products option, available for Shopify, BigCommerce, WooCommerce and PrestaShop. The page states that the original price is detected automatically for dynamic and static blocks. It can be used to show a discount during BFCM without typing it by hand.

The training delay and BFCM purchases

This is the point that matters most for a cross-sell after a promotional operation. When a feed is personalized for each customer and Klaviyo cannot provide a dynamic recommendation, it falls back to the secondary recommender you selected, such as best-selling or most viewed products. The page cites three causes: a recipient without enough data, a feed created recently and not yet trained, and very recent view or order events (Klaviyo, how to use product feeds and recommendations).

Recommendation models are generally trained every 2 to 7 days depending on use, and a new feed takes from 2 days to a week to be trained. Orders placed on Friday and over the weekend are therefore not all reflected immediately in the following week's recommendations. If you plan a cross-sell flow for the Monday after Cyber Monday, create the feed before the operation, not the day before.

The "Next best product cross-sell" flow

Klaviyo offers a flow built on the repurchase rhythm of each product: it uses the Best cross-sell date date property, which comes from the product analysis dashboard (Klaviyo, how to create a dynamic cross-sell flow). It is created from the flow library by searching for Next best product cross-sell, or from scratch with that trigger. You set the send before the date or on the date, and the time of day, and the page suggests avoiding added delays since the trigger already identifies the best moment. The Next best product block can dynamically recommend the next product to each profile.

This flow assumes access to the product analysis dashboard. The page specifies that Advanced KDP and Marketing Analytics are not included in the standard marketing application and require a subscription.

BFCM use cases

The cases below are editorial choices by Deliver, based on the functions described above.

  1. Thank-you email after an order: a small "products a customer may also like" feed at the bottom of the message, which already excludes what was just bought.
  2. Browse follow-up during the operation: a feed of recently viewed products, over 90 days, to remind visitors of what they were looking at, a use case the page cites for a browse abandonment flow. The BFCM send calendar and the last-week Klaviyo flows set out where it fits.
  3. End-of-weekend reminder: a static block of at most nine products, checked for stock before each send.
  4. The following week: the repurchase-date cross-sell flow, if your account has access to it, or a best-sellers feed.

Our article on dynamic content in Klaviyo complements these uses for conditional blocks.

Checklist before BFCM

  1. The catalog is synced, and product images are present.
  2. The feed is created at least a week before the operation, to leave the model time to train.
  3. The fallback for limited history is chosen for each personalized feed.
  4. Static blocks have been checked product by product, for stock and the right price.
  5. The struck-through original price option is on if the store supports it.
  6. The email preview shows real catalog products before scheduling.

FAQ

What is the difference between cross-sell and upsell?

In this article, cross-selling offers a complementary product and upselling offers a higher version. Klaviyo does not define these terms: it describes product feeds and recommendations.

How many products can a static block show?

Up to nine products, chosen by hand from the catalog.

Why does my block show the same products to everyone?

If the customer does not have enough data, or the feed is recent and not yet trained, Klaviyo falls back to the fallback recommender, such as best-sellers. Training generally takes from 2 days to a week for a new feed.

Can an out-of-stock product appear in a block?

The page excludes out-of-stock items from a feed's recommendations. For a static block, the documentation does not say, so check the stock yourself.

Do I need a paid plan for the repurchase-date cross-sell flow?

Yes. It relies on the product analysis dashboard, which requires Advanced KDP or Marketing Analytics.

Want an outside look at your product feeds? We run Q4 readiness audits, or you can talk to the Deliver team directly.

Provenance and verification

Each technical claim was compared on 2026-10-01 with the raw text of the Klaviyo pages listed in sources (recommendation types and the 3-day or 90-day windows, products excluded from recommendations, fallback when history is limited, model training every 2 to 7 days, dynamic and static blocks, a maximum of nine products in a static block, selection at product level rather than variant level, price and inventory filters limited to certain integrations, struck-through original price, the Next best product cross-sell flow and the Advanced KDP or Marketing Analytics plans). The definitions of cross-sell and upsell and the BFCM use cases are editorial choices by Deliver, flagged as such, with no measured result.

Sources checked on
Reviewed by
Claude (Claude Code session, October 1, 2026) English localization of the French source, with every vendor-documentation claim checked against the Klaviyo help pages listed in sources, reopened the same day.
AI assistance
Yes
Sources
  1. help.klaviyo.com/hc/en-us/articles/115005082787
  2. help.klaviyo.com/hc/en-us/articles/115000219092
  3. help.klaviyo.com/hc/en-us/articles/33789205940507
Going further · Deliver sets up and runs Klaviyo for e-commerce brands: flows, campaigns and deliverability. See our Klaviyo agency page, or request a Klaviyo audit.
CR
Charlotte Rodrigues · CRM Lead at Deliver. Questions about this article? charlotte@agence-deliver.com

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 →