Build an Abandoned Cart Email Flow (Recover Sales You Already Earned)
By Anu Verma
When a shopper starts checkout and leaves, an automation waits, then sends a short series of timed reminders that show the exact items they left. The moment they buy, they drop out. Once it is live it runs forever, quietly recovering carts that would otherwise vanish.

A shopper who reached checkout and typed their email was one click from buying. An abandoned cart flow taps them on the shoulder, on autopilot. This builds it on your own infrastructure with n8n and Claude, so you keep the customer data. If you sell on Shopify and would rather not run anything yourself, Shopify's built-in abandoned-checkout automation is the simpler route.
Why this is the money automation
Most stores lose the majority of their carts, and that is normal. What is not normal is doing nothing about it. A shopper who entered checkout and gave you an email is the warmest lead you will ever get, they got distracted, the baby cried, the phone rang. Because these people already chose your products, recovering even a modest slice of them outperforms almost any ad you could run. It is found money sitting in your store's event log.
The shape of the flow
The whole automation is four moves you will recognize once you see them:
- Trigger — the shopper starts checkout, then doesn't pay.
- Wait — an hour passes, then a day, then two days.
- Send — a reminder email goes out at each step.
- Exit — the instant they buy, they stop receiving emails.
That last rule is the most important. Email someone "you left this behind" an hour after they already bought it and you look broken. Everything below exists to get that sequence right.
Catch the checkout
In n8n, start a new workflow with a Webhook node, this is the front door your store knocks on when checkout starts. Most platforms (Shopify, WooCommerce and others) can fire a webhook on a "checkout started" event, point it at your n8n URL. The payload arrives carrying the shopper's email and their line items. Hit Execute and you will see that data land in n8n, ready to flow down the chain. That captured email is what makes recovery possible.
Write the reminder with Claude
Add a Claude node and feed it the cart contents. Instead of one frozen template, Claude writes each reminder fresh in your voice:
Write a short, warm abandoned-cart reminder email. No hype.
First line acknowledges they left items behind. Mention the
products by name. One clear call to action back to checkout.
Products: {{ $json.line_items }}
This is the difference between a robotic "You left items in your cart" and an email that sounds like a human who runs the shop. Pass Claude's output into a Send Email node addressed to the shopper.
Space the three nudges
Real recovery comes from rhythm, not a single email. Use n8n Wait nodes to time the sequence, and shift the tone at each step:
- Email 1, after 1 hour: soft reminder. "Still thinking it over? Your cart is waiting."
- Email 2, after ~1 day: add reassurance, free returns, a review quote, a shipping note.
- Email 3, after ~2 more days: short, with light urgency like "Your cart may expire soon."
A Wait node literally pauses the workflow for that long, then continues. Resist discounting until that final message, if at all.
Stop emailing buyers
This is the rule that keeps you from looking foolish. Before each send, add an IF (filter) node that checks whether the shopper has placed an order since the flow started. Re-check the order via your store's API, or listen for an "order placed" webhook that cancels the run. If they bought, the workflow ends right there. If they haven't, the next reminder goes out. With this guard in place, flip the workflow Active and it recovers carts around the clock.
Fire it once on a real cart
The fastest way to learn this is to make it fire once. In n8n, drop in the Webhook node and grab its test URL, then add one item to your own store and begin checkout so a real payload arrives. Watch the data appear, then build the Claude step on top of it. Seeing one genuine cart flow through end to end makes the whole pattern click, and from there the delays and filter are easy.
Try this now
Abandon your own cart tonight, on your own store, and watch what happens — most likely nothing. That nothing is the money you are leaving; build the first email of the flow tomorrow.
Frequently asked questions
Do I need to be a developer to build this in n8n?
No, but it is not a five-minute beginner task either, this is an intermediate automation with a webhook, timed waits, and a filter. If you can follow a recipe and paste an API key, you can build it. n8n's free self-hosted version runs on a cheap server.
How is "abandoned cart" different from "abandoned checkout"?
A checkout abandon means the shopper entered checkout and gave an email, then left, that is the most reliable trigger because you have their address. A cart abandon (added to cart but never reached checkout) often lacks an email. Checkout-started recovers the most revenue for the least setup.
Will customers get annoyed by three emails?
Not if they are spaced and useful. The first is a soft reminder, the second adds reassurance like reviews or a returns note, and the third is short with light urgency. Anyone who buys is dropped from the flow automatically.
Can I add a discount in the last email?
You can, but be careful. Offering a code too early trains shoppers to abandon on purpose. A common approach is no discount in emails one and two, and only a small incentive in the final email if recovery needs a push.
Make an AI or automation tool?
List it in the directory for $9.99, refunded in full if it isn't approved, or claim its page if it is already here.
Related guides
Get Low-Stock Restock Alerts Automatically with Shopify Flow (No Code)Get pinged the moment a product drops below your threshold, so you reorder before you sell out: a no-code Shopify Flow that watches stock for you.
Automate Abandoned-Cart Emails in Shopify Without CodeSet up Shopify abandoned-cart emails with AI, choose the right trigger, avoid discount mistakes, and test every link before sending.
Build a Power Automate Approval Flow Without CodeRoute a request to the right approver, capture the answer and act on it automatically: a Power Automate approval flow built in about 30 minutes.
Tools in this piece
Get the next one by email
What changed in AI this week, and how to use it at work. Plain English, no hype. One email a week, free.