cart-abandonment-recovery
Win back shoppers who leave items in their cart by setting up timed email, SMS, and push sequences with escalating incentives to complete their purchase
What this skill does
# Cart Abandonment Recovery
## Overview
Cart abandonment averages 70% across e-commerce, making recovery flows one of the highest-ROI automations available. A good recovery sequence sends 2–4 messages across email, SMS, and push — starting with a simple reminder, then adding social proof or urgency, and only offering a discount as a last resort. The sequence cancels immediately when the customer completes checkout.
This skill guides you through setting up cart abandonment recovery on your specific platform, choosing the right tools, and configuring the sequence for maximum revenue recovery without training customers to abandon on purpose.
## When to Use This Skill
- When more than 60% of initiated checkouts are not completed
- When launching a new store and prioritizing quick revenue recovery
- When adding SMS or push channels to an existing email-only abandonment flow
- When the current flat-discount abandonment email is training customers to abandon intentionally
- When needing to differentiate recovery strategy by cart value or customer segment
- When A/B testing incentive timing (immediate vs. 24h vs. 48h discount reveal)
## Core Instructions
### Step 1: Determine the merchant's platform and recommend the right tool
Ask which platform the store runs on. The setup is completely different depending on the platform:
| Platform | Recommended Tool | Why |
|----------|-----------------|-----|
| **Shopify** | Klaviyo (free up to 250 contacts) or Shopify's built-in abandoned checkout emails | Klaviyo has deep Shopify integration, tracks cart events automatically, and supports email + SMS in one tool |
| **WooCommerce** | AutomateWoo ($99/yr) or CartFlows + FluentCRM | AutomateWoo hooks directly into WooCommerce cart events; CartFlows adds funnel recovery |
| **BigCommerce** | Klaviyo or Omnisend | Both integrate natively with BigCommerce cart events |
| **Magento** | Dotdigital (bundled with Adobe Commerce) or Klaviyo | Dotdigital is the default marketing automation for Magento; Klaviyo works for open-source Magento |
| **Custom / Headless** | Klaviyo (via API) or build a custom sequence with BullMQ + SendGrid | Use Klaviyo's Track API to send cart events, then build flows in their visual editor |
### Step 2: Set up the recovery sequence
The optimal sequence follows this pattern — start without a discount and escalate only if needed:
**Message 1 — Reminder (1 hour after abandonment)**
- Channel: Email
- Content: Show the cart items with images + prices, a "Complete your purchase" button
- No discount — most recoveries happen here without incentive
**Message 2 — Social proof or urgency (4–6 hours)**
- Channel: Push notification or email
- Content: "X people are viewing this item" or "Low stock — only Y left"
- Still no discount
**Message 3 — Small incentive (24 hours)**
- Channel: Email
- Content: Free shipping (if cart > $75) or 10% off
- Include a unique, single-use discount code that expires in 48 hours
**Message 4 — Final push (48 hours)**
- Channel: SMS (only if opted in)
- Content: "Last chance — your cart expires tomorrow" + discount reminder
- This is the last message. Stop after this.
> **Never send more than 4 messages.** Beyond that, you damage brand perception more than you recover revenue.
### Step 3: Platform-specific setup
---
#### Shopify
**Option A: Built-in abandoned checkout emails (free, basic)**
1. Go to **Settings → Checkout → Abandoned checkouts**
2. Check "Automatically send abandoned checkout emails"
3. Set the delay (recommend: 1 hour for first email, 10 hours for second)
4. Customize the email template under **Notifications → Abandoned checkout**
Limitations: Shopify's built-in recovery only supports one email (or two on Plus), no SMS, no conditional incentives. Move to Klaviyo when you need a full sequence.
**Option B: Klaviyo (recommended for multi-step flows)**
1. Install Klaviyo from the Shopify App Store
2. Klaviyo automatically syncs with Shopify and tracks `Checkout Started` events
3. In Klaviyo, go to **Flows → Create Flow → Abandoned Cart** (use their pre-built template)
4. Configure the sequence:
```
Trigger: "Checkout Started" event
↓
Wait 1 hour → Check: "Has Placed Order since starting flow?" → If no:
↓
Email 1: Cart reminder (no discount)
↓
Wait 4 hours → Check: "Has Placed Order?" → If no:
↓
Email 2: Urgency/social proof
↓
Wait 20 hours → Check: "Has Placed Order?" → If no:
↓
Email 3: Include discount code (use Klaviyo's coupon block — creates unique single-use Shopify discount codes)
↓
Wait 24 hours → Check: "Has Placed Order?" → If no:
↓
SMS 4 (only to SMS-consented contacts): Final reminder with discount
```
5. To segment by cart value: add a **Conditional Split** on `$value` of the checkout event:
- Cart ≥ $100: offer free shipping
- Cart < $100: offer 10% off
6. To protect VIP customers from discounts: add a Split on **Customer Lifetime Value** or **Total Orders** — skip the discount step for repeat buyers
**Shopify Flow (Plus only) — auto-tag for advanced routing:**
```liquid
Trigger: Checkout abandoned
Condition: Cart total > 200
Action: Add customer tag "high-value-abandoner"
```
Then use this tag in Klaviyo to route high-value abandoners to a VIP recovery sequence.
---
#### WooCommerce
**Option A: AutomateWoo (recommended)**
1. Install and activate the AutomateWoo plugin
2. Go to **AutomateWoo → Workflows → Add Workflow**
3. Set the trigger to **"Cart Abandoned"**
4. Configure timing and actions:
```
Workflow 1: Cart Reminder
Trigger: Cart Abandoned
Timing Rule: Wait 1 hour
Action: Send Email (template: cart contents with images)
Workflow 2: Urgency Email
Trigger: Cart Abandoned
Timing Rule: Wait 6 hours
Action: Send Email (template: "Items selling fast")
Workflow 3: Discount Email
Trigger: Cart Abandoned
Timing Rule: Wait 24 hours
Action: Generate Coupon (10% off, single-use, expires in 48 hours)
Action: Send Email (template: include generated coupon code)
Workflow 4: SMS Last Chance (requires Twilio add-on)
Trigger: Cart Abandoned
Timing Rule: Wait 48 hours
Opt-in Rule: Customer has SMS marketing consent
Action: Send SMS via Twilio
```
5. Set a **Rule** on each workflow: "Customer has not purchased since workflow started" — this auto-cancels the sequence on conversion
6. For VIP segmentation: add a Rule checking `Customer → Total Spent > $500` to skip the discount workflow
**Option B: CartFlows + FluentCRM (free alternative)**
1. Install CartFlows (cart abandonment tracking) and FluentCRM (email automation)
2. CartFlows captures abandoned checkouts and syncs to FluentCRM as contacts
3. Build the email sequence in FluentCRM's automation builder
---
#### BigCommerce
1. Install **Klaviyo** or **Omnisend** from the BigCommerce app marketplace
2. Both platforms automatically track BigCommerce abandoned cart events
3. Build the flow using the same 4-step sequence described above
4. BigCommerce also has a built-in abandoned cart saver (**Marketing → Abandoned Cart Emails**) but it's limited to 3 emails with no SMS or conditional logic
---
#### Custom / Headless
For headless storefronts, you have two paths:
**Path A: Use Klaviyo's API (recommended)**
Send cart events to Klaviyo, then build the flow in Klaviyo's visual editor:
```typescript
// When a cart is updated, send the event to Klaviyo
async function trackCartUpdate(cart: Cart) {
await fetch('https://a.]klaviyo.com/api/events/', {
method: 'POST',
headers: {
'Authorization': `Klaviyo-API-Key ${process.env.KLAVIYO_PRIVATE_KEY}`,
'Content-Type': 'application/json',
'revision': '2024-10-15',
},
body: JSON.stringify({
data: {
type: 'event',
attributes: {
metric: { data: { type: 'metric', attributes: { name: 'Checkout Started' } } },
profile: { data: { type: 'profile', attributes: { email: cart.customerEmail } } },
properties: {
value: cart.totalValue,
Related in marketing-growth
email-list-segmentation
IncludedCreate dynamic email segments based on purchase behavior, RFM scores, engagement signals, and lifecycle stage with automated rebalancing and list hygiene
google-ads-ecommerce
IncludedBuild and optimize Google Ads campaigns for ecommerce with Performance Max, Shopping feeds, conversion tracking, and Smart Bidding strategies for ROAS
meta-ads-integration
IncludedSet up and optimize Meta (Facebook/Instagram) ad campaigns with Conversions API server-side tracking, dynamic product ads, and catalog sync for ecommerce
video-commerce-integration
IncludedEnable shoppable video experiences with live shopping events, interactive product hotspots, and one-click checkout directly from video and livestream content
google-shopping-feed
IncludedGenerate and optimize a product feed for Google Merchant Center so your products appear in Google Shopping ads with correct attributes
marketing-attribution-dashboard
IncludedBuild multi-touch attribution dashboards tracking revenue by channel, campaign, and creative with blended ROAS analysis and budget allocation recommendations