Recover Revenue with Cart Abandonment Workflows
Cart abandonment is inevitable - but losing those sales isn't. Learn how to build workflows that recover 10-15% of abandoned carts.
The Cart Abandonment Problem
On average, 70% of online shopping carts are abandoned. That's revenue sitting on the table. The good news? A well-timed recovery sequence can bring back 10-15% of those would-be customers.
Anatomy of a High-Converting Recovery Flow
The best cart abandonment workflows share common patterns:
Timing is Everything
- First touch: 1 hour after abandonment
- Second touch: 24 hours later
- Final touch: 48-72 hours with an incentive
Why these timings? Within the first hour, the purchase intent is still fresh. By 24 hours, a gentle reminder works. By 48 hours, you need to create urgency.
Multi-Channel Coordination
Don't rely on a single channel:
- Email: Your workhorse - detailed, visual, includes product images
- Push notification: Immediate, attention-grabbing
- SMS: High open rates, great for time-sensitive offers
- In-app: Catch them when they return
Building the Workflow
Step 1: Track the Abandonment
// When user leaves with items in cartawait fbf.track({ userId: user.id, event: 'cart.abandoned', properties: { cartId: cart.id, cartValue: cart.total, itemCount: cart.items.length, items: cart.items.map(i => ({ id: i.productId, name: i.name, price: i.price, image: i.imageUrl })) }});Step 2: Configure the Workflow
Trigger: cart.abandoned
Condition: Only target carts worth recovering
event.properties.cartValue > 25 && user.emailVerified == trueStep 3: The Sequence
Hour 1 - Email Reminder
{ "type": "notify", "channel": "email", "template": "cart-reminder", "variables": { "items": "{{event.properties.items}}", "cartValue": "{{event.properties.cartValue}}", "cartUrl": "{{cartRecoveryUrl}}" }}Hour 1 - Push Notification
{ "type": "notify", "channel": "push", "title": "Forgot something?", "body": "Your cart is waiting - complete your order now", "data": { "deepLink": "/cart" }}Wait for Purchase
{ "type": "wait_for_event", "event": "purchase.completed", "timeout": 86400}Hour 24 - Second Email
{ "type": "notify", "channel": "email", "template": "cart-reminder-2", "variables": { "items": "{{event.properties.items}}", "urgency": "Items are selling fast" }}Hour 48 - Final Push with Discount
{ "type": "notify", "channel": "sms", "message": "Last chance! Use code SAVE10 for 10% off your cart. Shop now: {{cartUrl}}"}Best Practices
1. Personalize Everything
Include the actual items they abandoned. Show product images. Use their name. Generic messages get ignored.
2. Create Urgency (Honestly)
- "Items in your cart are selling fast"
- "Your cart expires in 24 hours"
- Low stock warnings (if true)
3. Test Your Incentives
Start without discounts. Many users convert with just a reminder. Only offer discounts to those who don't convert.
4. Respect the Exit
If someone unsubscribes or explicitly removes items, stop the sequence. The wait_for_event action handles this automatically.
Measuring Success
Track these metrics:
- Recovery rate: % of abandoned carts that convert
- Revenue recovered: Total $ from the workflow
- Time to conversion: Which touch point converts most
- Channel performance: Email vs push vs SMS
Results You Can Expect
Our customers typically see:
- 10-15% cart recovery rate
- 3x ROI on the first email alone
- 20% higher conversion with multi-channel
Start recovering revenue today. Create your first workflow →