Build an Abandoned Cart Email Flow (Recover Sales You Already Earned)

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.

Build an Abandoned Cart Email Flow (Recover Sales You Already Earned)

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.

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](/tool/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

Your turn: open n8n and set up the first step. Just do step one now — the rest takes minutes. Save this guide to pick up where you left off.

FAQ

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.

Today
1 / 9
Start hereintermediate45 min

Build an Abandoned Cart Email Flow (Recover Sales You Already Earned)

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.

Swipe up to begin
Concept

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.

Concept

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.

Concept

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.

Concept

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.

Concept

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.

Concept

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.

Concept

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

Try this now

Your turn: open n8n and set up the first step. Just do step one now — the rest takes minutes. Save this guide to pick up where you left off.

That’s the whole lesson. Save it, upvote it, or drop a comment on how it went below.