Skip to content
Store slow, dated, or hard to edit? Request a Store Diagnostic
Running B2B on spreadsheets or email? Plan Your B2B Project
Klaviyo & Email

Klaviyo Post-Purchase Flow for Shopify: What to Send After the Sale

Most Shopify merchants set up a welcome series in Klaviyo and stop there, treating the sale as the finish line. It isn’t. The period between “order placed” and “customer decides whether to buy again” is one of the highest-leverage windows in the entire customer journey, and it’s almost entirely automatable using the order and fulfilment data Shopify already sends into Klaviyo.

A proper post-purchase flow in Klaviyo isn’t one email, it’s a connected sequence triggered off real Shopify events (Placed Order, Fulfilled Order, and a few supporting ones) that handles reassurance, delivery updates, review requests and cross-sell in a logical order, rather than as disconnected one-off campaigns.

This post walks through what that sequence should actually contain, which Shopify-to-Klaviyo triggers drive each step, and how to sequence the timing so you’re not asking for a review before the parcel has arrived or pitching an upsell in the same email as a shipping notice.

Why This Needs to Be a Flow, Not a Series of Campaigns

Klaviyo flows are triggered automatically by an individual customer’s behaviour, a Shopify event like Placed Order or Fulfilled Order fires, and the flow runs for that one person on their own timeline. Campaigns, by contrast, go out to a segment all at once. Post-purchase communication needs to be a flow because every customer’s timeline is different: one order ships same-day, another takes a week; one customer’s parcel is fulfilled from a single warehouse, another’s ships in two shipments. A campaign can’t account for that. A flow, built on the right triggers and delays, can.

The other reason this matters is sequencing logic. You don’t want a customer who’s still waiting on delivery to receive a “how was your order?” review request, and you don’t want a cross-sell email landing before the shipping confirmation. Getting this right depends on chaining the right Shopify events together inside one flow (or a small number of connected flows) rather than scheduling emails on fixed calendar dates.

The Shopify Events That Drive a Klaviyo Post-Purchase Flow

Klaviyo’s Shopify integration syncs a set of order and fulfilment events in near real time, and these are the triggers the whole post-purchase sequence hangs off:

  • Placed Order, fires when a checkout completes. This is the trigger for the confirmation and early nurture stage of the flow.
  • Ordered Product, fires per line item, useful when you want flow logic or cross-sell content based on the specific products someone bought rather than the order as a whole.
  • Fulfilled Order, fires when Shopify marks an order (or part of it) as fulfilled, which is the natural trigger for shipping-stage communication.
  • Cancelled Order and Refunded Order, worth building as flow exit conditions so a customer who cancels or gets refunded doesn’t keep receiving “enjoying your purchase?” emails.

A well-built flow uses flow filters at each step to check the customer’s current state before sending, for example, checking that an order hasn’t been refunded before a review request goes out, even if that request is scheduled several days after the original trigger fired.

Mapping the Flow: What to Send and When

1. Order confirmation and early reassurance (Placed Order trigger, immediate)

Shopify sends its own native transactional order confirmation regardless of what you build in Klaviyo, that’s a system notification, not a marketing email, and it’s not something you’d typically replace. What Klaviyo adds on top is a slightly warmer, on-brand follow-up: confirming what was ordered, setting expectations on dispatch timeframes, and reinforcing why they made a good decision. This is also a natural place for a short FAQ block (shipping timeframes, return policy) that heads off “where’s my order” support tickets before they happen.

Timing: Immediately, or a short delay (30-60 minutes) after Placed Order, so it doesn’t arrive before Shopify’s own receipt.

2. Shipping and delivery updates (Fulfilled Order trigger)

Once Shopify marks the order fulfilled, this is the trigger point for dispatch confirmation, and, if you’re syncing tracking data through your shipping app, a follow-up “out for delivery” or delivery-window email. For multi-item orders shipping in separate parcels, use a conditional split in the flow to check whether the full order is fulfilled or only part of it, so customers aren’t told their order has shipped when only one of two items has.

Timing: Immediately on Fulfilled Order, with an optional second touch 2-4 days later depending on your typical delivery window for domestic Australian orders.

3. Review request (delayed, off the estimated delivery date)

This is the step merchants most commonly get wrong by timing it off the order date instead of the delivery date. Requesting a review the same day an order ships, before the customer has even received it, produces low response rates and occasionally hostile replies. Time this step using a delay set from the Fulfilled Order date plus your average delivery window, not from Placed Order. For most Australian domestic shipping, a delay of 7-12 days after fulfilment is a reasonable starting point; for international or slower freight items, that needs to stretch further. If you use a reviews platform integrated with Shopify, this step usually sends the review request with the review form embedded or linked directly.

4. Cross-sell or upsell (based on what they bought)

Once delivery has had time to happen and initial satisfaction is established, a cross-sell email based on the specific products in the order (using the Ordered Product event and its product/category data) tends to outperform a generic “you might also like” blast. This is where segmenting by product category pays off, a customer who bought a coffee machine gets recommended filters and beans, not an unrelated product from a different category.

Timing: Typically 10-21 days after Fulfilled Order, adjusted based on your average repurchase cycle. A consumable, fast-replenishment product warrants an earlier cross-sell than a durable one-off purchase.

5. Ongoing nurture or exit into general flows

After the review and cross-sell steps, most merchants let the customer exit the post-purchase flow and fall back into standard newsletter campaigns, or into a win-back flow if no second purchase happens within a defined window (commonly 60-90 days, depending on typical repurchase cycles for your product category).

A Practical Build Checklist

Use this as a working checklist when building or auditing a Shopify post-purchase flow in Klaviyo:

  1. Confirm Shopify is passing Placed Order, Ordered Product, Fulfilled Order, Cancelled Order and Refunded Order events into Klaviyo (check under Klaviyo’s integration settings for the Shopify connection).
  2. Build the confirmation/reassurance step off Placed Order, with a short delay so it doesn’t clash with Shopify’s native receipt.
  3. Add a conditional split on Fulfilled Order for partial vs full shipment, so multi-parcel orders get accurate messaging.
  4. Set the review-request delay from the fulfilment date plus your realistic delivery window, not from the order date.
  5. Add flow filters before the review-request and cross-sell steps that check for Cancelled Order or Refunded Order, so refunded customers exit cleanly.
  6. Base cross-sell content on actual purchased product data (Ordered Product properties or product categories/tags) rather than one generic email for every customer.
  7. Set an exit condition or handoff into a win-back flow if no repeat purchase occurs within your typical repurchase window.
  8. Test the full sequence with a real order end-to-end before switching it live, checking that timing and content make sense in the order a genuine customer would receive them.

When to Bring in a Specialist

Building this flow correctly the first time, particularly the conditional splits for partial fulfilment, the delivery-based delay logic, and making sure cancelled or refunded orders don’t keep triggering messages, takes more Klaviyo and Shopify-specific configuration than the flow templates suggest. It’s a common gap we find when auditing existing Klaviyo accounts: the flow exists, but it’s timed off the wrong event or missing exit conditions, quietly sending review requests to refunded customers or cross-sell emails before delivery. If you want this built properly against your store’s actual fulfilment patterns rather than a generic template, that’s the kind of setup our Klaviyo email marketing team handles for Shopify merchants regularly.

It’s also worth checking that your Shopify to Klaviyo integration is syncing all the order and fulfilment events cleanly before building on top of it, since a flow is only as reliable as the data triggering it. If you’re using a reviews app, connecting it properly, see our note on Shopify reviews and loyalty integrations, makes the review-request step far more effective than linking out to a generic review form.

FAQ

Does Klaviyo replace Shopify’s order confirmation email?
No. Shopify sends its own transactional order confirmation as a system notification, and that typically stays in place regardless of what you build in Klaviyo. What you build in Klaviyo is a complementary, on-brand follow-up sequence, not a replacement for Shopify’s receipt.

What’s the difference between the Placed Order and Fulfilled Order triggers?
Placed Order fires the moment a checkout completes, before anything has shipped. Fulfilled Order fires when Shopify (or your fulfilment app) marks the order, or part of it, as shipped. Using the right trigger for each step matters, confirmation and reassurance content belongs on Placed Order, while shipping and review-request content should be timed off Fulfilled Order.

How soon after purchase should I ask for a review?
Timing it from the delivery date rather than the order date is the key adjustment most stores need to make. A common approach for Australian domestic orders is 7-12 days after the Fulfilled Order event, giving the parcel time to actually arrive before you ask how it was.

Can I use the same post-purchase flow for every product category?
You can build one flow structure, but the cross-sell content within it should vary by what was actually purchased, using Ordered Product data or product tags to branch the recommendation content. A single generic cross-sell email sent to everyone regardless of purchase tends to underperform compared to category-based recommendations.

What happens if an order gets refunded partway through the flow?
Without a flow filter checking for Refunded Order or Cancelled Order status before each send, a refunded customer can still receive review requests or cross-sell emails referencing a purchase they no longer have. Adding these checks as filters before the review and cross-sell steps prevents that awkward, avoidable mistake.

Ready to Fix or Build This Properly?

If your Shopify store doesn’t have a post-purchase flow yet, or you suspect the one you have is timed off the wrong events, a Shopify audit is a practical way to see exactly what’s missing. Alternatively, book a call with our team and we’ll look at your current Klaviyo setup together.

Niraj Raut
Written by Niraj Raut SEO Manager

Niraj Raut is the SEO Manager and co-founder at Nexly. He helps Australian Shopify and Shopify Plus brands earn durable organic growth through technical SEO, search-led store architecture and content that ranks. He writes about what actually moves rankings for ecommerce.

Connect on LinkedIn
Have a Shopify project? Chat with us, takes 30 seconds.