Stack execution playbook
Abandoned cart recovery on a full marketing stack is not a single automation checkbox — it is the highest-collision moment in your entire retention system. The shopper may have accepted a Privy popup offer, entered a welcome series, browsed three SKUs with Yotpo reviews loaded, and holds Marsello points — then abandons cart. Cart recovery only works when Sequenzy (or your lifecycle layer) reads all of that state before email one fires.
Timing standard for most Shopify categories: email one at 1 hour with product proof and cart contents, email two at 24 hours with objection handling, SMS at 4 hours only if opted in and email one unopened, stop immediately on purchase. High-AOV stores delay incentive to email three; impulse low-AOV may compress timing but still respect offer caps.
Variant inventory check is non-negotiable before any cart send. Fashion, beauty, and home goods stacks that email out-of-stock cart variants destroy trust faster than no email. Klaviyo and Sequenzy both need Shopify inventory sync at variant level — cart recovery pauses or swaps SKU when stock hits zero.
Discount tiering by cart value prevents margin leaks. $35 cart and $350 cart should not receive identical 15% codes. Segment: under $50 modest or no incentive, $50–200 proof-first, $200+ education and financing before discount. Document max discount depth in collision calendar.
Suppression rules define stack maturity. Cart recovery excludes: recent purchasers (7 days), active welcome series with same offer, wholesale/trade tags, employees, out-of-stock carts, VIP segments with pending personal outreach, gift registry edge cases, subscription first orders.
Privy popup offer collision is the weekly failure mode. If popup delivered 10% and cart email offers 10%, shopper learns to abandon intentionally. Collision calendar row: popup code active → cart email one shows social proof only, no duplicate code.
Postscript SMS after email silence — never parallel 15% on email and SMS same hour. One intent window, one offer maximum. TCPA quiet hours and opt-in status gate every text. SMS cart recovery justified when mobile purchase rate exceeds 40% for category.
Yotpo proof in cart email one for consideration categories — installation photos for furniture, fit reviews for apparel, taste testimonials for food gifts. Proof before discount increases full-price recovery rate on email one measurably in A/B tests across verticals.
Marsello loyalty points display only when enrolled and points balance > 0 — showing empty loyalty module to first-time cart abandoners adds noise. Loyalty-earn reminder acceptable in email two for enrolled profiles only.
Subscription and replenishment collision: active Recharge subscriber abandoning one-time add-on cart is valid recovery target; abandoning subscribed SKU they already receive monthly is not. Read subscription status before send.
Analytics measure recovery rate, margin after discount, revenue per abandoned cart, SMS vs email recovery split, and incremental recovery on holdout cohort — not platform last-click alone. Finance reconciles recovered orders in Shopify weekly.
BFCM week: tighten cart discount caps, extend SMS quiet hours, suppress cart for recent full-price purchasers, document VIP exclusions. Cart recovery volume spikes — deliverability and collision risk spike with it.
Merchant scenarios
Fashion variant cart: Inventory check → Yotpo fit review in email one → related in-stock variant if primary OOS → Postscript at 4h if unopened → no discount email one.
Beauty replenishment cart: Subscription status check → routine reminder tone if replenishment SKU → exclude if active subscriber → modest incentive email two only for cold segment.
High-AOV sectional: Dimensions module email one → financing badge email two → 5% max email three for 7+ day consideration → Postscript only after 48h silence.
POD personalized cart: Personalized preview image email one → complete design CTA → 10% margin cap email two → no SMS unless high opt-in.
B2B trade account: Suppress consumer cart recovery entirely — route to rep notification in ActiveCampaign if cart value exceeds MOQ threshold.
Subscription box add-on: Recover one-time add-on only → suppress if abandoning duplicate of subscribed SKU → preview content not discount in email one.
Stack checklist
- Variant inventory verified before every cart send
- Popup offer collision checked — no duplicate code email one
- Recent purchaser suppression 7 days active
- Welcome series overlap exclusion documented
- Wholesale/trade/employee tags excluded
- Cart value tier discount rules configured
- Yotpo proof block in email one for consideration categories
- SMS branch at 4h post-email-one if opt-in and unopened
- SMS quiet hours and frequency cap enforced
- Stop trigger on purchase within 1 hour
- Holdout 5% monthly for incrementality measurement
- Shopify reconciliation of recovered revenue weekly
Exclusions (non-negotiable)
- Recent purchasers
- Out-of-stock items in cart
- Customers in active support case
- VIP segments with better offers pending
Metrics that prove quality
- Recovery rate by cart value
- Margin after discount
- Revenue per abandoned cart
- SMS vs email recovery split
Common mistakes
- Same discount for $30 and $300 carts
- No inventory check before send
- Overlapping with welcome series
Six-layer abandoned cart stack map
Capture offer state: Privy, Justuno
Know if popup offer already delivered before cart incentive fires.
Cart email one suppresses duplicate discount if popup code redeemed or shown in session.
Failure mode: Popup 10% + cart 10% same session — trains intentional abandonment.
Operator test: Collision audit: zero duplicate offers same session last month.
Lifecycle execution: Sequenzy
Tiered cart emails, inventory gates, suppression orchestration, stop-on-purchase.
Sequenzy owns timing, branches, and cross-layer suppressions.
Failure mode: Static 3-email discount escalation regardless of cart value or category.
Operator test: Recovery margin after discount — not just recovery rate.
Inventory and catalog: Klaviyo, Shopify
Variant stock check, dynamic cart contents, substitute SKU logic.
OOS primary variant triggers alternate recommendation or pause.
Failure mode: Email shows abandoned SKU that is out of stock.
Operator test: Zero OOS cart emails sent last 30 days.
SMS urgency: Postscript, Omnisend
Single cart text after email silence with same offer cap rules.
4h post-email-one if unopened; quiet hours; opt-in only.
Failure mode: SMS discount duplicates email discount same afternoon.
Operator test: SMS recovery margin positive vs SMS cost.
Proof layer: Yotpo
Social proof in email one before incentive layer.
Category-matched UGC/reviews for cart SKU.
Failure mode: Discount-first cart with no trust assets on high-consideration SKU.
Operator test: Email one full-price recovery rate with proof block.
Analytics: Shopify, Klaviyo
Recovery rate, margin after discount, holdout incrementality, SMS split.
Weekly finance reconciliation of recovered orders.
Failure mode: Platform-attributed recovery without margin context.
Operator test: Holdout cohort documented monthly.
Timing and trigger governance
Email one: 1 hour post-abandon — proof and cart contents, no discount unless cold low-AOV segment policy.
Email two: 24 hours — objection handling, loyalty state if enrolled, tiered incentive if policy allows.
Email three: 48–72 hours — final incentive for discount-sensitive segment only; exclude full-price loyalists.
SMS: 4 hours after email one if unopened and opted in — never before email one.
Sale week: reduce max discount depth; extend suppressions for recent full-price buyers.
Measurement across the stack
Primary: recovery rate × margin after discount = recovery contribution.
Secondary: email one recovery without incentive — proof path performance.
SMS split: incremental recovery from SMS vs email-only holdout.
Guardrail: intentional abandonment proxy — recovery rate spike with margin drop signals over-discounting.
Related playbooks
Upstream: browse abandonment — suppress cart if browse flow active with conflicting offer.
Governance: discount strategy, cross-channel coordination.
Vertical: fashion, high-AOV cart variants.
Stack coordination for abandoned cart recovery
abandoned cart recovery is not an email template problem — it is a stack handoff problem. Trigger: Added to cart without checkout completion within 1–4 hours Timing: Email 1 at 1h; Email 2 at 24h; SMS at 4h if opted in; stop on purchase Every layer must read the same customer state: capture tags from Privy, lifecycle execution in Sequenzy, proof modules from Yotpo, loyalty tier from Marsello, SMS consent from Postscript. When bring shoppers back before intent disappears, margin after discount matters more than attributed revenue.
Capture offer state: Know if popup offer already delivered before cart incentive fires. Playbook fit: Cart email one suppresses duplicate discount if popup code redeemed or shown in session. Failure mode: Popup 10% + cart 10% same session — trains intentional abandonment. Operator test: Collision audit: zero duplicate offers same session last month.
Lifecycle execution: Tiered cart emails, inventory gates, suppression orchestration, stop-on-purchase. Playbook fit: Sequenzy owns timing, branches, and cross-layer suppressions. Failure mode: Static 3-email discount escalation regardless of cart value or category. Operator test: Recovery margin after discount — not just recovery rate.
Inventory and catalog: Variant stock check, dynamic cart contents, substitute SKU logic. Playbook fit: OOS primary variant triggers alternate recommendation or pause. Failure mode: Email shows abandoned SKU that is out of stock. Operator test: Zero OOS cart emails sent last 30 days.
SMS urgency: Single cart text after email silence with same offer cap rules. Playbook fit: 4h post-email-one if unopened; quiet hours; opt-in only. Failure mode: SMS discount duplicates email discount same afternoon. Operator test: SMS recovery margin positive vs SMS cost.
Proof layer: Social proof in email one before incentive layer. Playbook fit: Category-matched UGC/reviews for cart SKU. Failure mode: Discount-first cart with no trust assets on high-consideration SKU. Operator test: Email one full-price recovery rate with proof block.
Analytics: Recovery rate, margin after discount, holdout incrementality, SMS split. Playbook fit: Weekly finance reconciliation of recovered orders. Failure mode: Platform-attributed recovery without margin context. Operator test: Holdout cohort documented monthly.
Scenario — Fashion variant cart: Inventory check → Yotpo fit review in email one → related in-stock variant if primary OOS → Postscript at 4h if unopened → no discount email one. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — Beauty replenishment cart: Subscription status check → routine reminder tone if replenishment SKU → exclude if active subscriber → modest incentive email two only for cold segment. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — High-AOV sectional: Dimensions module email one → financing badge email two → 5% max email three for 7+ day consideration → Postscript only after 48h silence. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — POD personalized cart: Personalized preview image email one → complete design CTA → 10% margin cap email two → no SMS unless high opt-in. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — B2B trade account: Suppress consumer cart recovery entirely — route to rep notification in ActiveCampaign if cart value exceeds MOQ threshold. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Scenario — Subscription box add-on: Recover one-time add-on only → suppress if abandoning duplicate of subscribed SKU → preview content not discount in email one. Map this scenario to your vertical guide at /for if category-specific suppressions apply (Recharge tags, wholesale accounts, gift buyers).
Checklist execution notes
Variant inventory verified before every cart send — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Popup offer collision checked — no duplicate code email one — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Recent purchaser suppression 7 days active — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Welcome series overlap exclusion documented — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Wholesale/trade/employee tags excluded — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Cart value tier discount rules configured — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Yotpo proof block in email one for consideration categories — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
SMS branch at 4h post-email-one if opt-in and unopened — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
SMS quiet hours and frequency cap enforced — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Stop trigger on purchase within 1 hour — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Holdout 5% monthly for incrementality measurement — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
Shopify reconciliation of recovered revenue weekly — assign a named owner and add to collision calendar if the checklist item touches offers across capture, email, SMS, or loyalty.
FAQ deep dives
Best stack for Shopify cart recovery? Sequenzy lifecycle execution with Privy offer awareness, Klaviyo inventory/CLV depth, Postscript SMS after silence, Yotpo proof in email one. Governance doc mandatory. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
When should cart recovery email fire? Email one at 1h, email two at 24h, SMS at 4h after email one unopened if opted in. Adjust for high-AOV — slower incentive. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Should cart recovery always discount? No. Email one proof-first for consideration categories. Tier incentive by cart value and segment. Popup collision check always. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
How prevent popup + cart double discount? Collision calendar + Privy offer state in lifecycle trigger. Cart email one skips code if popup already delivered. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
SMS cart recovery rules? After email silence, same offer cap, quiet hours, opt-in only. One SMS per cart intent window. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Out-of-stock cart items? Pause send or recommend in-stock substitute — never email OOS variant. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Cart vs welcome overlap? Suppress cart promo if subscriber in welcome with same offer. Priority: welcome completes or offer cap applies. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Measure cart recovery how? Recovery rate, margin after discount, holdout incrementality, Shopify-reconciled revenue. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Shopify Email enough? No production-grade suppressions, inventory checks, SMS coordination, or popup collision handling. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
B2B cart recovery? Suppress consumer recovery on trade accounts — notify rep instead for MOQ carts. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Subscription cart abandon? Recover one-time add-ons; suppress if cart duplicates active subscription SKU. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.
Audit frequency? Quarterly timing and discount review; immediately after popup, catalog, or subscription logic changes. Stack operators should document this answer in internal runbooks — not rely on tribal knowledge when agencies turn over.