How-to guides
How to set up a Klaviyo post-purchase flow
Step-by-step build of a Klaviyo post-purchase flow: trigger config, delivery-aware timing, content sequencing for education and replenishment, and ongoing monitoring.
title: "How to set up a Klaviyo post-purchase flow" description: "Step-by-step build of a Klaviyo post-purchase flow: trigger config, delivery-aware timing, content sequencing for education and replenishment, and ongoing monitoring." slug: "how-to-set-up-klaviyo-post-purchase-flow" publishedAt: "2026-05-19" updatedAt: "2026-05-19" howToSteps:
- name: "Identify the right trigger event" text: "For most brands, Placed Order is the standard trigger. For brands with long fulfillment cycles (furniture, custom jewelry), use Delivered (from your shipping integration) so emails arrive after the customer has the product, not while they're still waiting."
- name: "Create a new flow with the correct trigger" text: "Flows → Create Flow → From Scratch → Trigger: Metric → Placed Order (or Delivered). Add trigger filters as needed — for example, exclude first-purchase orders if you have a separate first-time-buyer post-purchase track."
- name: "Map the content sequence to customer journey" text: "Standard sequence: order confirmation (immediate, transactional), shipping update (when shipped), delivery confirmation (when delivered), care/use email (3-5 days post-delivery), review request (7-14 days post-delivery), replenishment reminder (timed to product duration)."
- name: "Configure trigger filters to exclude gift purchases" text: "Many brands tag gift purchases at checkout. Add 'Order Properties → Gift is not true' (or your equivalent property name) to exclude gifters from receiving post-purchase content meant for the recipient — or vice versa, depending on your setup."
- name: "Build branching for first-purchase vs repeat customers" text: "Use a conditional split: if 'Placed Order zero times before this' is true (first purchase), branch to the first-time-buyer content; else branch to the repeat-customer track. First-timers need brand reinforcement; repeats need cross-sell."
- name: "Add product-specific branching for replenishment" text: "Different products have different replenishment cadences. Use a conditional split on the order's product type or category, then time the replenishment reminder to that product's typical use duration."
- name: "Configure Smart Sending appropriately" text: "Order confirmation should always send (it's transactional, Smart Sending excluded). For marketing content (care emails, replenishment), Smart Sending ON is usually correct — these can wait briefly if the customer received another email recently."
- name: "Test with a real order" text: "Place a real test order (or use a test-mode order if your platform supports it). Confirm order confirmation arrives, shipping update fires correctly, and downstream emails arrive at their configured delays."
- name: "Activate and monitor" text: "Set status to Live. Monitor weekly: Placed Order event volume, flow entry counts, and shipping event freshness. Post-purchase is the flow where shipping integration drift breaks things most often." faq:
- q: "Should I trigger my post-purchase flow on Placed Order or Delivered?" a: "For fast-shipping DTC (orders arrive in 2-5 days), Placed Order works. For long fulfillment (made-to-order, furniture, custom items), Delivered is essential — otherwise review requests fire while customers are still waiting on the product."
- q: "How long should a post-purchase sequence run?" a: "Most brands run 4-8 emails over 30-90 days. Beauty and supplements often extend to 12 weeks (matching first replenishment cycle). Fashion typically wraps within 30 days. Furniture and home goods can extend to 60-90 days post-delivery."
- q: "Should the post-purchase flow include a discount?" a: "It depends on the email's purpose. The first email (order confirmation) shouldn't include a discount — it's transactional. The care/use emails should focus on education, not promotion. A second-purchase nudge near the end of the sequence can include an incentive if your AOV economics support it."
- q: "How do I exclude gift purchases from post-purchase emails to recipients?" a: "Add a trigger filter that excludes orders flagged as gifts. Most platforms capture a 'this is a gift' toggle at checkout. Route gift orders to a separate flow that sends to the gifter (billing email) rather than the recipient (shipping email)."
- q: "What's the right delay for the review request?" a: "7-14 days after delivery. Long enough that the customer has used the product. Short enough that memory is fresh. Wire to the Delivered event from your shipping integration, not the order date — this avoids review requests firing before delivery on long-fulfillment products."
- q: "Will Klaviyo notify me if the post-purchase flow breaks?" a: "No. The flow editor shows Live regardless of whether trigger events are still firing. Detection requires monitoring of Placed Order, Delivered, and per-product event volumes — not surfaced in Klaviyo's default UI." related:
- how-to-set-up-klaviyo-abandoned-cart
- klaviyo-replenishment-flow-not-firing
- how-to-set-up-klaviyo-winback-flow
- klaviyo-for-supplements-cpg
A post-purchase flow is the workhorse of customer retention. Done well, it drives second purchases, replenishment cadence, reviews, and brand affinity. Done poorly, it sends review requests to customers still waiting for delivery, replenishment reminders to subscription customers, and "thank you for your order" emails to people who already returned their purchase.
This page walks through the build with the failure modes in mind. The honest truth: most post-purchase flows we audit have at least one configuration issue that's quietly costing revenue or generating customer-service tickets. The configuration is straightforward; the discipline is in matching trigger events to actual customer journey stages.
Prerequisites
Before building, confirm:
- Klaviyo is integrated with your ecommerce platform. Placed Order events should be firing in Analytics → Metrics.
- If you have long fulfillment windows, your shipping integration is active. ShipStation, ShipBob, Easyship — whichever sends Delivered events to Klaviyo.
- Your product catalog is synced. Replenishment cadences and product-specific content depend on catalog data.
- You have a test order capability. Either a test-mode order or a real low-value order you can use to verify the flow.
Step 1: Identify the right trigger event
The trigger you choose determines when post-purchase content arrives — and getting this wrong is the most expensive configuration error in post-purchase.
Placed Order fires when the order is created. Works for brands with fast shipping (2-5 day delivery). Most DTC.
Delivered fires when the shipping carrier confirms delivery. Required for brands with long fulfillment windows (1-8 weeks). Furniture, custom jewelry, made-to-order apparel.
If your fulfillment time varies wildly, build two separate flows — one for fast-fulfillment products triggered on Placed Order, one for slow-fulfillment products triggered on Delivered.
Step 2: Create a new flow with the correct trigger
Flows → Create Flow → From Scratch.
- Trigger: Metric → Placed Order (or Delivered)
- Name: "Post-Purchase — Q2 2026" or similar version-tagged name
Step 3: Map the content sequence to customer journey
A complete post-purchase sequence typically covers:
- Order confirmation (immediate, transactional). Order number, items, shipping address, total. Confirms purchase and sets expectations.
- Shipping update (when shipped). Tracking number, estimated arrival. May be sent by your shipping platform directly — check for duplication.
- Delivery confirmation (when delivered). Brief "your order arrived" note with a quick care or use tip.
- Care/use email (3-5 days post-delivery). How to use the product, care instructions, what to expect.
- Review request (7-14 days post-delivery). Ask for a review of the specific product purchased.
- Second-purchase nudge or replenishment reminder (timed to product cycle). For consumables, this is the replenishment timing. For non-consumables, it's a cross-sell or category-extension nudge.
Different verticals emphasize different emails. Beauty and supplements lean heavy on care/use and replenishment. Fashion leans on styling content and category extension. Furniture leans on satisfaction check-in and accessory cross-sell.
Step 4: Configure trigger filters to exclude gift purchases
If your checkout captures a "this is a gift" property, exclude gift orders from the standard post-purchase flow. The flow content is built assuming the customer used the product themselves — gift recipients haven't necessarily.
Filter: "Order Properties → Gift is not true" (adjust property name to match your platform's data).
Build a separate flow for gift orders that triggers on the same Placed Order event but with the inverse filter. The gift flow can send to the gifter (billing email) with messaging like "thanks for choosing us as your gift source" and exclude the recipient from emails entirely.
Step 5: Build branching for first-purchase vs repeat customers
Use a conditional split early in the flow:
- Condition: Placed Order count before this order equals 0
- Yes branch: First-time buyer content (brand intro, founder story, first-purchase appreciation, care/use)
- No branch: Repeat customer content (cross-sell, loyalty program, category extension)
First-time buyers need brand reinforcement and education. Repeat customers already know the brand — they need recommendations for what to buy next.
Step 6: Add product-specific branching for replenishment
Different products have different replenishment cadences. A 30-day supplement bottle should trigger replenishment at day 23. A 90-day skincare jar at day 75. Don't use a single replenishment timing across all products.
Use a conditional split on the ordered product's type, category, or SKU:
- Branch A: Product type is "Supplement 30-day" → replenishment email at day 23
- Branch B: Product type is "Supplement 60-day" → replenishment email at day 50
- Branch C: Product type is "Skincare" → replenishment email tied to product-specific timing
If you have many products with distinct cycles, build dedicated replenishment flows triggered on the specific product purchase, rather than handling everything in one mega-branched post-purchase flow.
Step 7: Configure Smart Sending appropriately
- Order confirmation: Smart Sending OFF. This is transactional — must always send regardless of recent campaign activity.
- Care/use emails: Smart Sending ON is usually fine. These can wait a few hours if needed.
- Review request: Smart Sending ON is fine.
- Replenishment reminder: Smart Sending OFF. This is a time-sensitive trigger — the customer is about to run out, and Smart Sending could push the reminder past the reorder window.
Calibrate per email based on whether the timing is critical.
Step 8: Test with a real order
Place a test order. Use a real email you control. Choose a product that will route to your default flow branch.
Within hours:
- Order confirmation arrives immediately
- Shipping update fires when the order ships (may take a day or more depending on fulfillment)
- Delivery confirmation fires when delivered
Over the following days/weeks:
- Care/use email arrives at the configured delay
- Review request arrives 7-14 days post-delivery
- Replenishment reminder (if applicable) arrives at the product-specific timing
If any email arrives at the wrong time or doesn't arrive, debug before launching to your customer base.
Step 9: Activate and monitor
Change status to Live. Reload to confirm.
Schedule ongoing monitoring:
- Weekly: Placed Order event volume steady; Delivered event volume steady (if used)
- Weekly: Flow entry count steady
- Monthly: Per-email delivery and engagement; review-request response rate; replenishment-reminder conversion rate
Common mistakes
- Review request fires before delivery. Triggering on Placed Order with a 14-day delay sends review requests to customers still waiting on their order. Use Delivered instead.
- Gift purchases trigger standard post-purchase. Recipients get emails meant for purchasers; gifters miss the appreciation message.
- No first-vs-repeat branching. First-time buyers get cross-sell content before they've experienced the product; repeat buyers get redundant brand-intro content.
- Replenishment timing doesn't match product format. A reformulation that changes a 30-day supply to a 60-day supply doesn't propagate to the flow.
- Order confirmation duplicated by shipping platform. Customer gets two "thanks for your order" emails — one from Klaviyo, one from Shopify or ShipStation.
- Smart Sending OFF on care emails. Generates fatigue when customers happen to receive other content same-day.
How to verify your setup is working
Run the test order monthly. Verify:
- All transactional emails (confirmation, shipping, delivery) arrive correctly and don't duplicate platform-sent emails
- Care/use email arrives at expected delay
- Review request only fires after delivery
- Replenishment reminder fires at the product-appropriate cadence
Weekly:
- Placed Order and Delivered event volumes steady
- Flow entries match order volume
- No surge in customer-service tickets about "I haven't received my order" coinciding with review-request timing (a signal that reviews are firing before delivery)
What can quietly break this later
Shipping integration de-authenticates. ShipStation/ShipBob OAuth expires. Delivered events stop landing. Review requests now fire on Placed Order timing (if you have fallback logic) or stop firing entirely. Either way, the post-delivery sequence misfires.
Catalog product type renames. If your replenishment branching depends on product type ("Supplement 30-day"), and a catalog refresh renames it to "30-Day Supplement," the branch stops matching and replenishment emails stop firing for that cohort.
Return processes don't suppress post-purchase. A customer who returns their order may still be in the post-purchase flow, receiving "how do you like it?" emails for a product they sent back.
First-purchase branching fails for second-purchase counted as first. If your Placed Order count includes test orders, sample purchases, or zero-value orders, the "first purchase" branch can mis-fire.
Each of these is invisible from Klaviyo's UI. The flow editor shows Live. The metrics dashboard doesn't surface the misfires. Detecting drift requires monitoring Placed Order, Delivered, and per-product event volumes — exactly what Playbook watches hourly.
Frequently asked questions
- Should I trigger my post-purchase flow on Placed Order or Delivered?
- For fast-shipping DTC (orders arrive in 2-5 days), Placed Order works. For long fulfillment (made-to-order, furniture, custom items), Delivered is essential — otherwise review requests fire while customers are still waiting on the product.
- How long should a post-purchase sequence run?
- Most brands run 4-8 emails over 30-90 days. Beauty and supplements often extend to 12 weeks (matching first replenishment cycle). Fashion typically wraps within 30 days. Furniture and home goods can extend to 60-90 days post-delivery.
- Should the post-purchase flow include a discount?
- It depends on the email's purpose. The first email (order confirmation) shouldn't include a discount — it's transactional. The care/use emails should focus on education, not promotion. A second-purchase nudge near the end of the sequence can include an incentive if your AOV economics support it.
- How do I exclude gift purchases from post-purchase emails to recipients?
- Add a trigger filter that excludes orders flagged as gifts. Most platforms capture a 'this is a gift' toggle at checkout. Route gift orders to a separate flow that sends to the gifter (billing email) rather than the recipient (shipping email).
- What's the right delay for the review request?
- 7-14 days after delivery. Long enough that the customer has used the product. Short enough that memory is fresh. Wire to the Delivered event from your shipping integration, not the order date — this avoids review requests firing before delivery on long-fulfillment products.
- Will Klaviyo notify me if the post-purchase flow breaks?
- No. The flow editor shows Live regardless of whether trigger events are still firing. Detection requires monitoring of Placed Order, Delivered, and per-product event volumes — not surfaced in Klaviyo's default UI.