An abandoned cart deserves one more nudge, not five.
Recovery sequences work when they stop on time. This demo shows the three-step nudge, an opt-out branch and a reporting payload — all original copy, no scraped competitor scripts.
What triggers this workflow
Shopify webhook fires when a cart has been idle for the agreed window (e.g. 60 minutes).
Source: Shopify webhook
Workflow steps
- Shopify + n8nDetectCart idle window reached; webhook fires with cart contents, value and customer contact.
- Listmonk + n8nFirst nudgeNeutral, brand-consistent email with a single 'resume my cart' link.
- Twilio + n8nReminderSMS after 24h — only if the first email went unopened.
- ListmonkLast-chanceIncentive branch only with explicit consent for promotional sends.
- Twenty CRMStopIf the customer clicks 'stop reminders' or replies STOP, remove from the sequence.
Tools used
Human handoff
Always a stop button
Every message carries an unsubscribe or 'stop reminders' link. Customers who opt out are removed from the sequence immediately and never re-added automatically.
- Customer clicks 'stop reminders' in any email
- Customer replies STOP to an SMS
- Customer contacts support about the cart — pause the sequence
Try it in your browser
Edit the sample inputs, choose a branch, and see what the workflow produces. The sandbox runs offline — no accounts touched, no messages sent.
Try it in your browser
Edit the inputs, pick a branch, and see what the workflow produces. Runs entirely in your browser — no messages are sent, no accounts are touched.
1. Trigger detected
Cart abandoned 60 minutes ago. Last item: Cordless drill kit. Reason candidate: browser closed.
2. Message sequence
Subject: Did you forget something, Hannah? Hi Hannah, Your Cordless drill kit was waiting in your cart at Mates Mowers. We held your cart for 48 hours — no rush. [Resume my cart] · [Browse alternatives] — Mates Mowers, Bayswater VIC
3. Reporting payload
{
"event": "cart_recovery_step",
"branch": "first-touch",
"contact": "Hannah",
"cart_value_aud": "189",
"item": "Cordless drill kit",
"reason": "browser closed",
"next_step_in_min": 1440
}Sample data only. Numbers, names and messages are placeholders for illustration. Wire the live workflow separately using the setup notes below.
Setup for production
Wiring it for production
Live deployment needs the cart event source, senders and a clean opt-out path.
- Configure the Shopify abandoned-cart webhook for the agreed idle window (default 60 minutes).
- Add the sender domain (DKIM / SPF / DMARC) so the email doesn't land in spam.
- Wire the opt-out link to a webhook that removes the contact from the sequence and writes to Twenty CRM.
- Add the SMS branch only if the customer has given explicit consent for marketing SMS.
Production prerequisites
- Shopify store with API access to cart events
- Marketing email sender domain verified
- Explicit SMS consent recorded for each contact
Nothing here runs by default. Configuration has to be in place before any live send, booking or contact write.
Questions
Will this spam shoppers?
The sequence has a hard cap of three touches plus an opt-out path. Customers who click 'stop reminders' or reply STOP are removed immediately and never re-added.
Is the incentive branch allowed in Australia?
Only with the customer's explicit consent for promotional sends. The workflow checks the consent flag in Twenty CRM before the incentive branch fires.
More demos you can run in your browser
Want this cart recovery sequence workflow running on your stack?
Pick the demo you're curious about or describe your own. We'll come back with what a real deployment looks like for your business — the workflow, the prerequisites, the people involved.