Automation

Klaviyo Cross-Sell and Upsell Flows: How to Increase Average Order Value on Shopify

Meilech Biller

TL;DR: Klaviyo cross-sell and upsell flows are post-purchase automations that recommend additional or upgraded products after someone buys. Set up correctly, they lift average order value by 15 to 30 percent on orders they influence and run on autopilot. This guide walks through triggers, timing, filters, product feeds, and Klaviyo's "best cross-sell date" property so your flows convert instead of clutter inboxes.

Your repeat customers are the easiest revenue you have. They already trust your brand, they already know how shipping works, and they're already on your email list. Most Shopify stores still treat them like cold leads.

A well-built Klaviyo cross-sell and upsell flow fixes that. These post-purchase Klaviyo email automations send relevant follow-ups to buyers, then quietly add 15 to 30 percent to your average order value while you sleep. Done right, they're some of the highest revenue-per-recipient automations in Klaviyo, often beating standard campaigns by 90 percent or more.

This guide shows you how to build them: triggers, delays, filters, product feeds, and the Klaviyo-specific settings that separate a flow that converts from one that just sends.

What's the difference between a Klaviyo cross-sell and upsell flow?

A cross-sell flow recommends complementary products after a purchase, like socks for someone who bought shoes. An upsell flow promotes a higher-tier or upgraded version of what the customer already owns. Both run as post-purchase automations in Klaviyo using the Placed Order or Fulfilled Order trigger, with different product feeds and copy.

The line gets blurry once you're inside Klaviyo. Most stores end up running a hybrid flow that includes both motions: complementary picks at the top, an upgrade prompt at the bottom. According to Shopify's own guidance on upselling and cross-selling, upselling lifts the value of one purchase while cross-selling increases the number of items per order. Both can live in the same Klaviyo flow using conditional splits, so you don't need two separate automations to capture each play.

Examples make this concrete. A coffee brand cross-sells a milk frother to anyone who bought beans. The same brand upsells a 1 lb bag to someone who just bought 8 oz. The trigger is identical. The product recommendation logic is what changes.

How much can Klaviyo cross-sell and upsell flows lift your AOV?

Klaviyo cross-sell and upsell flows typically lift average order value by 15 to 30 percent on the orders they touch, and they generate roughly 90 percent more revenue per recipient than standard campaigns. Published agency case studies show an 18 percent AOV lift on purchases attributed to a well-built post-purchase flow.

The numbers come from two sources. Klaviyo itself reports that post-purchase messaging sees 217 percent higher open rates and 90 percent higher revenue per recipient than the average campaign. Agency case studies back that up: one published account from Elite Brands added 15 percent to monthly recurring revenue on a single client after building out post-purchase flows.

Across the Shopify stores we manage at CartStrings, cross-sell and upsell flows usually contribute 4 to 8 percent of total email-attributed revenue. They won't be your biggest flow by volume (welcome and abandoned cart hold that title), but they punch far above their weight on revenue per send.

The math compounds. If you ship 1,000 orders a month and your AOV is $80, a 20 percent lift on even 10 percent of those buyers adds $1,600 in monthly revenue. Annualized, that's a $19,200 line item your store didn't have before.

How to set up a Klaviyo cross-sell flow step-by-step

Open Klaviyo, click Flows, and create a flow from scratch. Pick the Placed Order metric as your trigger if you want emails to fire when the order is placed, or the Fulfilled Order metric if you want them to wait until items ship. Klaviyo's official cross-sell flow documentation recommends Fulfilled Order for most setups, so you don't pitch new products to someone whose first order is still in limbo.

Trigger filters

Add a trigger filter so the flow runs only for the right buyers. A common setup: include only orders that contain SKUs from a specific collection. A skincare brand might trigger this flow only for orders containing the "Cleanser" collection, then cross-sell moisturizers in the email.

The first delay

Add a time delay after the trigger. Most stores land on 7 to 10 days for non-consumables and 21 to 45 days for consumables like supplements or refills. The product life cycle dictates the wait. Pitching a second jar of moisturizer two days after the first ships looks tone-deaf, but pitching it three weeks later, around the time they'd run out, feels helpful.

The email itself

Build the email with a dynamic product block that pulls from a custom product feed. Klaviyo's guide on product feeds and recommendations explains how to constrain a feed by collection, price range, or inventory level. For cross-sell, point the feed at the complementary collection. For upsell, point it at the premium version of what the customer just bought.

The conditional split

Add a conditional split after the first email to branch on engagement. People who clicked but didn't buy get a second email with social proof or a small incentive. People who didn't open get a different subject line on a follow-up. This is where most stores leave money on the table, because they send the same second email to everyone.

When should you send cross-sell and upsell emails?

Send the first cross-sell email 7 to 14 days after order fulfillment for most product categories. For consumables like skincare, supplements, or food, push to 21 to 45 days to align with replenishment timing. For accessories tied to a primary product, 3 to 7 days works because buyers are still in the excitement phase.

Klaviyo's own documentation suggests testing 3, 7, and 14 days as common variants. Klaviyo Academy's best practices guide recommends at least one day between any two emails in the same flow to avoid fatigue.

The best signal isn't a generic benchmark, it's your own data. Pull your Placed Order metric in Klaviyo, filter to repeat buyers, and look at the median days between first and second purchase. That number is your starting point. Send your first cross-sell email at roughly 70 percent of that interval, so it arrives before the buyer goes looking on their own.

For stores with 1,000+ orders of history, Klaviyo's Best Cross-Sell Date property removes the guesswork entirely. More on that below.

How to use product feeds for dynamic recommendations

A static cross-sell email pitches the same product to every recipient. A dynamic one pitches what each person is most likely to buy next. Klaviyo's dynamic product block makes the second version almost as easy to build as the first.

Drag a Product block into your email template, leave the content type set to Dynamic, and pick a product feed from the dropdown. From there, you can build a custom product feed that filters by collection, tag, price range, inventory level, or relationship to the triggering order.

Three feed setups handle most use cases:

  1. Catalog-collection feed. Show items from a specific complementary collection. Great for fashion (jeans, then tops) and beauty (cleanser, then moisturizer).
  2. AI-recommended feed. Use Klaviyo's "Products a customer may also like" feed, which applies collaborative filtering to predict the next best product based on similar customers' purchase histories.
  3. Recently viewed feed. For customers tracked through your site, pull products they viewed but didn't buy. This works particularly well after a browse abandonment flow has already wrapped up.

Set the minimum number of products to display to 3 and the maximum to 4. Two products feels thin. Five looks like a catalog dump.

What is Klaviyo's Best Cross-Sell Date property?

Best Cross-Sell Date is a Klaviyo profile property that predicts the optimal day to send a cross-sell email to each customer, based on the purchasing patterns of people who bought the same product. It's part of Klaviyo's Advanced KDP and Marketing Analytics features, and it triggers a flow dynamically per profile instead of running on a fixed delay.

Use it by creating a flow with a "When someone becomes a member of segment" trigger, then build a segment of profiles whose Best Cross-Sell Date is in the next 24 to 48 hours. Klaviyo's predictive analytics documentation walks through the exact setup.

The advantage: instead of guessing whether your customers replenish at 30 or 45 days, the property dials it in per profile. The downside: it requires customers to have made at least one purchase, and the property fills in only once Klaviyo has enough data on that SKU's typical repurchase cycle.

For stores under 1,000 orders, stick with manual delays. For stores with deeper order history, Best Cross-Sell Date is worth testing alongside your time-based flow.

Filters and segmentation that keep flows from embarrassing you

A cross-sell flow with no filters will eventually pitch a product to someone who already bought it. That email is more than awkward, it actively damages trust. Three filters prevent the most common embarrassments.

Skip-if-purchased

Add a flow filter: "What someone has done > Placed Order > zero times in the lifetime, where Items contains [cross-sell SKU]." This blocks the flow from pitching a product the recipient already owns. Klaviyo's cross-sell segment guide covers the exact syntax.

Exclude very recent buyers

Add a flow filter: "Placed Order at least once in the last 3 days, where this order doesn't include [cross-sell SKU]." This prevents the flow from firing twice in a week when someone places back-to-back orders.

Suppress unengaged profiles

Add a profile filter that requires the recipient to have opened or clicked at least one email in the last 90 days. Sending cross-sell emails to dead profiles depresses engagement and signals to inbox providers that your sends are unwanted. If your engagement metrics aren't where you'd want, smart email segmentation usually fixes the issue before the flow itself needs work.

Cross-sell flows are one of seven core Klaviyo flows every Shopify store needs to reliably hit a 25 to 35 percent email-attributed revenue benchmark. If yours is flat or missing entirely, a Klaviyo audit usually surfaces where the leak is.

A Klaviyo cross-sell or upsell flow is the closest thing to free revenue in e-commerce. The customer already bought, your trust is established, and the cost to add the next sale is one email. Get the trigger right, pair it with product feeds that match what each customer is likely to want next, and use filters to stay out of the way when someone has already bought.

The exact numbers depend on your store: AOV, repeat rate, and product mix all shape what's possible. But the floor is high. A working flow contributes single-digit percentages of your total email revenue with almost no ongoing maintenance.

If you want a second set of eyes on your post-purchase setup, book a call and we'll show you the gaps we'd close first.

Frequently Asked Questions

Should I use Placed Order or Fulfilled Order to trigger my cross-sell flow?

Fulfilled Order works better for most stores because it waits until the original purchase has shipped. That way you don't pitch new products to someone who's still wondering when their first order will arrive. Use Placed Order only when fulfillment is near-instant, like a digital download or subscription billing.

How many emails should a cross-sell flow include?

Two or three is the sweet spot. The first email pitches the recommended product, the second adds social proof or a small incentive, and an optional third is a final nudge with a different angle. More than four emails usually depresses click rates and adds unsubscribes without revenue.

Can I run cross-sell and upsell from the same Klaviyo flow?

Yes. Use a conditional split based on what the customer bought. Customers who bought the highest-tier version branch into a cross-sell email featuring complementary products. Customers who bought a lower tier branch into an upsell email featuring the premium version. The trigger stays the same.

Do I need a paid Klaviyo plan to use product feeds?

No, product feeds are available on all Klaviyo plans. However, Klaviyo's predictive properties like Best Cross-Sell Date and Next Best Product require Advanced KDP or Marketing Analytics, which are paid add-ons. Basic dynamic product blocks pulling from a static feed work on any plan.

How do I measure if my cross-sell flow is working?

Track three metrics in Klaviyo's flow reporting: revenue per recipient (target $0.30+), click rate (target 3 to 6 percent), and lift in AOV on orders the flow influenced (target 10 percent or higher). If revenue per recipient is under $0.15, your product feed isn't matching customer intent, and that's usually the first thing to fix.

Let’s build email marketing that feels like it was done in-house.

Ready to turn email into a revenue channel?

[ Get in Touch ]

Let’s Start the Conversation.