Build an Abandoned Cart Email Flow (Recover Sales You Already Earned)
By Automate Basics
Loading guide…
By Automate Basics
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.
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 whole automation is four moves you will recognize once you see them:
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.
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.
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.
Real recovery comes from rhythm, not a single email. Use n8n Wait nodes to time the sequence, and shift the tone at each step:
A Wait node literally pauses the workflow for that long, then continues. Resist discounting until that final message, if at all.
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.
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.
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.
That’s the whole lesson. Try it on a real task while it is fresh, then come back for the next one.
Build it in n8n: trigger on your store's checkout-started webhook, use Wait nodes for the delays, and let Claude write each reminder fresh in your brand voice. You own the customer data and the flow, and pay only for the AI calls. Any email platform you already pay for that has a checkout-started trigger can run the same three-email pattern.
The same corner of the library, one job further on.