Klaviyo Post-Purchase Flows During BFCM: Shipping and Reviews
A customer who orders on Black Friday sometimes waits several days for the parcel, depending on logistics capacity. Meanwhile, a poorly timed post-purchase flow sends a thank-you, a cross-sell suggestion and a review request, sometimes before the product has arrived. This article goes through the Klaviyo settings that let you time these messages to actual shipping: the trigger, order emails, partial shipments and review requests.
TL;DR. Klaviyo's documentation presents two triggers for an after-purchase journey, Placed Order and Fulfilled Order, and the built-in cross-sell flow relies on the second, which is closer to the product's arrival. Order and shipping emails belong in separate flows, and an email can be marked transactional after a review that can take up to 24 hours. For shipments in several parcels, Shopify offers a Fulfilled Partial Order trigger. For reviews, Klaviyo Reviews sends by default 7 days after delivery on Shopify. In our view, these settings should be locked before BFCM, because some only apply to future orders.
Want an outside look before you build? We offer a Q4 readiness audit: 30 minutes, free, no strings attached.
Why BFCM shifts the problem
In our view, on a normal flow of orders the gap between order and shipment is short and regular, whereas during BFCM orders arrive in clusters and shipping stretches out. Klaviyo's page on post-purchase flows illustrates this with a company that takes 9 days on average between order and shipment: the shipping email is left out of the flow and handled by another flow, triggered by shipment, so it goes out at the right time (Klaviyo, how to create a post-purchase flow).
In our view, the right question for each message in a journey is: "when does the customer have the parcel in hand?". A thank-you goes out right away. A cross-sell or a review request waits for arrival.
Placed Order or Fulfilled Order
Klaviyo's page on cross-sell and upsell flows defines the two triggers (Klaviyo, how to create an upsell or cross-sell flow): Placed Order tracks when someone orders an item, Fulfilled Order tracks when the item is shipped. Klaviyo's built-in product review and cross-sell flow uses Fulfilled Order, because that event is closer to when the product is actually received. The page admits you can use either, depending on your preferences.
| Message | Most suitable trigger, in our view | Why |
|---|---|---|
| Thank-you, welcome for a new customer | Placed Order | The page advises against a delay for thank-you flows |
| Cross-sell | Fulfilled Order | Close to receipt, like Klaviyo's built-in flow |
| Review request | Klaviyo Reviews delivery event | See below |
For cross-sell, the page recommends a profile filter Fulfilled Order zero times since starting this flow. If another order is shipped after entry, this filter stops later emails going to someone who is no longer in the original situation. The built-in flow sends its message 14 days after the order is fulfilled, a delay to adjust to your catalog.
The post-purchase page also recommends splits: new or returning customer (Placed Order equals 1 over all time) and order value. Our article on product feeds for cross-sell explains how to feed the email, and our post-purchase flow guide describes the full sequence.
Order and shipping emails: separate flows
The post-purchase page recommends keeping order confirmation and shipping emails in separate flows, so every customer gets their information as soon as possible. A transactional email must contain no marketing message.
Klaviyo lets you mark a flow email as transactional (Klaviyo, how to use flows to send transactional emails). The page's conditions:
- reserved for paid accounts and metric-triggered flows (for example Placed Order), with requests for list- or segment-triggered flows going through support;
- review by Klaviyo, which can take up to 24 hours;
- status assigned per email, not per flow;
- editing an accepted email removes the status and requires a new request;
- not possible on a message that has an A/B test;
- an email sent manually before approval goes out as a marketing message, and until it is approved, sends are treated as marketing.
Suppressed profiles still receive transactional emails, unless the suppression comes from 7 consecutive soft bounces, a hard bounce or a spam report. The page also asks you to turn off the equivalent transactional emails of the ecommerce platform before sending Klaviyo's, otherwise you send duplicates.
In our view, the transactional request is submitted by early November at the latest, and the text does not change afterwards. A last-minute tweak on Black Friday evening puts the email back in the approval queue, at the moment it is needed most.
Partial shipments: the Fulfilled Partial Order flow (Shopify)
When an order leaves in several parcels, Klaviyo offers for Shopify a flow triggered by the Fulfilled Partial Order metric (Klaviyo, how to create a fulfilled partial order flow for Shopify). The page reminds you that fulfillment does not mean a parcel is on its way: only include shipping or tracking information when it is available.
Three setups are possible:
- A single message when the whole order is shipped: a standard Fulfilled Order flow.
- A message for each partial shipment: the Fulfilled Partial Order flow. At the last parcel, two options: send two messages (one from each flow), or send just one by adding the trigger filter FulfillmentStatus equals partial to the partial flow.
- Both, depending on the case: a message for each partial shipment, and a single message when the whole order leaves at once. The Fulfilled Order flow then gets the trigger filter HasPartialFulfillments is false.
The page specifies that with two messages at the last parcel, each message must say clearly whether the order is complete or partial. It also recommends, before adding an SMS, a split that sends it only to people subscribed to SMS, with an email for everyone else.
Review requests: time them to delivery
Klaviyo Reviews triggers the review request flow with the Ready to review event, recorded when an item is delivered or fulfilled and meets the criteria you chose (Klaviyo, how to request reviews with Klaviyo Reviews flows). This event only fires for orders placed after you started using Klaviyo Reviews.
For Shopify, the page on request timing criticizes platforms that wait a fixed number of days after shipment: that method ignores delivery delays, and the customer has not had time to try the product (Klaviyo, how to adjust review request timing). By default, the request goes out 7 days after delivery for an online order and 3 days after an in-store purchase, a setting that is fully customizable. For WooCommerce, timing can only be based on the order's fulfillment date.
A decisive point for BFCM: a change of delay only applies to new fulfillments recorded after the change. The page gives the example of a delay reduced from 14 to 7 days: recent orders keep the old one. In our view, the delay should therefore be set before the first BFCM parcel.
The klaviyo_reviews_exclude tag lets you exclude a product (for example shipping insurance) from review requests, and, on Shopify, an order or a customer (Klaviyo, how to exclude products, orders, or customers from review requests). On a product, the exclusion only affects future orders; for a customer, someone already in the flow keeps receiving messages until they exit. Gift cards and shipping insurance are the examples the page cites. Our article on Klaviyo Reviews details how to bring reviews into emails.
Frequency and pile-up during the operation
A customer who just ordered may also be on the list, enter a welcome flow, or abandon a cart the next day. The post-purchase page raises these questions and advises using Smart Sending to limit message volume. Our article on Smart Sending and frequency details the interactions with campaigns, and the one on skipped flow messages explains how to read the resulting skips.
Checklist before BFCM
These points are Deliver's advice.
- Each message in the after-purchase journey is classified: goes out at order, at shipment or at delivery.
- Order and shipping emails are in separate flows, with no promotional content.
- Transactional status requests are submitted in early November, and approved texts are no longer edited.
- The ecommerce platform's duplicate emails are turned off.
- On Shopify, the choice between whole and partial shipment is made, with the matching filters.
- The review request delay is set before the operation's first parcel.
- Products to exclude from reviews (insurance, gift card) are tagged.
- The Fulfilled Order zero times filter is in place on cross-sell flows.
FAQ
Should a cross-sell flow trigger on Placed Order or on Fulfilled Order?
The page says you can use either. Klaviyo's built-in flow uses Fulfilled Order, which is closer to receipt of the product.
How long does it take for a transactional email to be approved?
The page says up to 24 hours. Until it is approved, sends are treated as marketing messages.
What happens if I edit a transactional email that was already accepted?
It loses its transactional status and has to be submitted again.
When does Klaviyo Reviews send the review request by default?
On Shopify, 7 days after delivery for an online order, and 3 days after an in-store purchase. These delays are customizable.
Does changing the review delay affect orders that already shipped?
No. It applies to new fulfillments recorded after the change.
Want an outside look at your post-purchase flows? We run Q4 readiness audits, or you can talk directly with the Deliver team.
Provenance and verification
Faithful English translation of the French source. Each technical claim was compared on 2026-10-11 with the raw text of the Klaviyo pages listed in sources (creating a post-purchase flow triggered by Placed Order, recommended delays for reviews, cross-sell and upsell and discouraged delay for thank-you flows, new versus returning customer and order value splits, example of a 9-day average gap between order and shipment with a separate shipping flow, recommendation to keep transactional emails separate, Smart Sending; Placed Order or Fulfilled Order trigger for cross-sell, built-in cross-sell flow on Fulfilled Order with a 14-day delay, profile filter Fulfilled Order zero times since starting the flow; transactional emails: paid accounts, metric-triggered flows, approval within 24 hours, status lost on edit, status set per email, sent as marketing until approved, suppressed profiles that still receive them, turning off the platform's own transactional emails to avoid duplicates; Shopify Fulfilled Partial Order flow, sending options, filters FulfillmentStatus equals partial and HasPartialFulfillments is false, note on fulfillment versus shipping and tracking; Klaviyo Reviews: Ready to review event, default send 7 days after delivery and 3 days after an in-store purchase, setting applied to new fulfillments only, WooCommerce based on fulfillment date; klaviyo_reviews_exclude tag on products, orders and customers, effect on future orders). The BFCM configuration guidelines are Deliver's advice, flagged as such, with no measured result.
- Sources checked on
- Reviewed by
- Claude (Claude Code session, October 11, 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
-
- help.klaviyo.com/hc/en-us/articles/360028872611
- help.klaviyo.com/hc/en-us/articles/115002775212
- help.klaviyo.com/hc/en-us/articles/360003165732
- help.klaviyo.com/hc/en-us/articles/4401771131419
- help.klaviyo.com/hc/en-us/articles/16682549669403
- help.klaviyo.com/hc/en-us/articles/16319809379611
- help.klaviyo.com/hc/en-us/articles/16684841274139
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 →