The Email and SMS Flows Every Shopify Store Needs
A practical breakdown of the seven core lifecycle flows for Shopify stores, with trigger, timing, message count, content guidance, and setup priority.

Lifecycle flows are the highest-ROI work in ecommerce marketing because they run automatically and target people at their most receptive moment. Most Shopify stores are missing at least two of the seven flows below, or have them built but poorly timed. Here is what each flow needs and in what order to build them.
Why flows come before campaigns
A flow triggers off customer behavior, so it reaches someone exactly when their intent is highest: right after they abandon a cart, right after they receive a package. A campaign is a blast sent to a list regardless of where each person is in their journey. Flows convert at a meaningfully higher rate than campaigns because timing and relevance are built in. If you are still sending only weekly campaigns and have no flows, this is the highest-leverage fix available to you, whether you build them yourself or have a Klaviyo management partner like Branva build them inside your own account.
The seven core flows
1. Welcome flow
Trigger: New email or SMS signup (not necessarily a purchase). Timing: Immediate, then spaced over 5-7 days. Messages: 3-5. What to say: Message one is a warm welcome plus the incentive you promised (if any). Message two introduces the brand story or differentiator. Message three addresses common objections (shipping, returns, quality). A later message can highlight bestsellers or social proof. Common mistake: Leading every message with a discount. If someone did not need a discount to sign up, do not train them to wait for one. Save the strongest offer for the message where urgency is introduced, not message one.
2. Browse abandonment
Trigger: Viewed a product (or category) without adding to cart, for a known contact. Timing: 1-4 hours after the browse session. Messages: 1-2. What to say: Show the specific product viewed. Keep it short. This is a reminder, not a hard sell. Include reviews or a simple trust signal if the product benefits from it. Common mistake: Sending this to people who are not yet identified (no email on file). Browse abandonment only works once you can tie a session to a known contact, so it depends on your pixel and identity resolution being set up correctly first.
3. Cart abandonment
Trigger: Added to cart, did not complete checkout. Timing: First message at 1 hour, second at 24 hours, third at 48-72 hours if unconverted. Messages: 2-3, plus an SMS touch if you have the phone number and consent. What to say: Message one is a plain reminder with the cart contents. Message two can add urgency (stock level, price protection) or answer an objection. Message three is where a modest incentive belongs, if you use discounts at all. Common mistake: Discounting too early. Leading with a coupon in message one teaches customers to abandon carts on purpose and wait for the discount. Hold the incentive for the final message, and only if your margin supports it.
4. Post-purchase / order flow
Trigger: Order placed. Timing: Confirmation immediate, then spaced across the fulfillment and delivery window. Messages: 3-5, including transactional touches. What to say: Order confirmation, shipping confirmation, a “how to use this” or care guide relevant to the product, and a check-in a few days after expected delivery. This flow is your best chance to reduce returns and support tickets by proactively answering usage questions. Pair it with a support setup that can keep up; a managed Shopify customer service team is one way to cover the inbox without hiring before you have the volume to justify it. Common mistake: Treating this as purely transactional. The post-purchase window has some of the highest open rates in the entire lifecycle. Wasting it on shipping confirmations alone, with no education or cross-sell setup, leaves real revenue and retention on the table.
5. Review request flow
Trigger: Order marked delivered, or a fixed number of days after delivery. Timing: 7-14 days post-delivery, adjusted for product type (skincare needs longer than apparel). Messages: 1-2, with a reminder if no review is left. What to say: Ask directly, make it easy (one-click star rating before an optional written review), and consider a small incentive for photo or video reviews specifically, since those convert future buyers best. Common mistake: Sending at a fixed interval regardless of product category. A 7-day request for a skincare product that takes 4 weeks to show results will get a shrug instead of a review. Match timing to when the customer can actually speak to results.
6. Win-back flow
Trigger: No purchase within a defined window based on your average repurchase cycle (commonly 60-120 days, product-dependent). Timing: Start the sequence right at the window threshold, spaced over 2-3 weeks. Messages: 3-4. What to say: Message one: “we miss you” plus what is new since their last purchase. Message two: address a possible reason they left (better selection, restocked favorite). Final message: your strongest offer, framed as a genuine last attempt, possibly paired with a sunset warning if they are also going to be suppressed from future sends. Common mistake: Using the same win-back window for every product category. A consumables brand and an apparel brand have very different natural repurchase cycles. Pull your own repurchase data before setting this trigger instead of copying a generic 90-day default.
7. Replenishment / cross-sell flow
Trigger: Time-based, keyed to the expected usage duration of a consumable product, or complementary-product logic after a first purchase. Timing: Set to arrive slightly before the customer is expected to run out. Messages: 2-3, with a simple reorder link or one-click reorder if your platform supports it. What to say: Straightforward reminder plus reorder convenience. Cross-sell variants can recommend a complementary product based on what was purchased (the accessory to the main product, the refill to the starter kit). Common mistake: Applying this only to obvious consumables. Almost any product category has a natural replenishment or upgrade cycle. Skipping this flow for non-consumable categories leaves a full repeat-purchase channel unbuilt.
Priority order for setup
If you are building from zero, this is the order that returns value fastest relative to effort.
- Cart abandonment — highest intent, fastest to build, almost always has the best ROI of any flow.
- Welcome flow — captures new signups while attention is highest.
- Post-purchase flow — protects margin by reducing returns and support load, and sets up retention.
- Review request flow — cheap to build, compounds your social proof over time.
- Browse abandonment — valuable but depends on clean identity resolution, so build after the flows above are stable.
- Win-back flow — needs purchase history data to calibrate the trigger window correctly.
- Replenishment / cross-sell — most dependent on product-specific usage data, so it benefits from the other flows already generating clean purchase history to learn from.
A note on SMS
SMS should reinforce the same triggers as email, not duplicate every message. Reserve SMS for the moments where speed matters most: cart abandonment, shipping updates, and time-sensitive win-back offers. Do not build a full parallel SMS version of every email flow. Message fatigue kills SMS lists faster than email lists because the channel feels more personal, and unsubscribes there are harder to win back.
Keep SMS copy shorter than the email equivalent and skip the storytelling. A single line plus a link converts better than a paragraph, because people read text messages differently than they read email. Also confirm your SMS consent is collected separately from email consent. Many platforms treat them as distinct opt-ins, and sending SMS to a contact who only agreed to email is a compliance problem, not just a deliverability one.
Timing conflicts across flows
Once you have several flows live, they can overlap for the same customer. Someone who abandons a cart and then completes the purchase an hour later should not still receive the cart abandonment follow-up. Most ESPs, including Klaviyo, let you set exit conditions on a flow (such as “has ordered” or “is no longer in an active flow of this type”) so a completed action removes the contact automatically. Check these exit conditions when you first build each flow, not after a customer complains about getting a reminder for something they already bought.
Where to start
- If you have zero flows built, start with cart abandonment this week. It is the single highest-leverage flow for a Shopify store.
- Audit existing flows for discount timing. If every message leads with a coupon, you are training customers to wait you out.
- Check that your review request timing actually matches how long it takes customers to experience the product’s benefit.
- Build in the priority order above rather than all at once. A well-tuned cart flow beats seven mediocre ones.
Related reading
A First-Party Data Strategy for DTC Brands That Actually Works
A practical guide to collecting, structuring, and activating first-party data for DTC ecommerce, without hiring a data team or over-building for your size.
How to Measure Marketing Incrementality Without a Data Team
A practical guide to testing whether marketing spend is actually driving sales, using geo holdouts, on/off tests, MER, and a spreadsheet, no data team required.
The Martech Stack for a Seven-Figure DTC Brand
A layer-by-layer breakdown of the martech stack a seven-figure DTC brand actually needs, what to look for in each category, and when to add or cut a tool.