Opens in a new tab

Ecommerce

A three-email abandoned cart flow, step by step

Reminder, answer, last call. How to set up the sequence in Mailnaptic, what each email says, and how to tell whether it earns its place.

Mailnaptic team

Published 1 October 2026

8 min read

Most people who put something in a cart and leave did not decide against buying. They got a phone call, the kids needed dinner, the card was in another room. A short sequence of emails can bring some of them back, and it is one of the few automations that is easy to justify, because it only goes to people who already showed intent.

This is a walkthrough of the version we would build first: three emails over about three days, stopping the moment someone orders. All timings below are suggestions. Your catalogue, price level and buying cycle should move them around.

What you need

A WooCommerce store and a Mailnaptic account on the Growth plan or above. The store integration and abandoned cart recovery are both part of Growth.

What counts as an abandoned cart

In Mailnaptic a cart is marked as abandoned when it sits inactive for more than one hour. There is no extra setting to flip. Once your store is connected, carts that go quiet for that long appear on the Abandoned carts page and become available as a trigger for automations.

Two things to know. First, we can only email someone we can identify. If a shopper never typed an email address, because they were browsing as a guest and left before checkout, there is nobody to write to, and the cart is not something you can recover by email. Second, the contact needs to be someone you are allowed to email. A cart does not create consent. If your checkout has a marketing opt-in, respect it; if the email is purely about the order they were building, check what your local rules and your own privacy policy say before you send.

Connecting WooCommerce

Open Integrations in the app and choose WooCommerce. It is plugin based, so the first step happens inside WordPress:

  1. Install the Mailnaptic WooCommerce plugin from the instructions shown in the dialog.
  2. Connect it to your account with the details the app gives you.
  3. Wait for the first sync. Products, orders, customers and carts come across, and the integration page shows when it is done.

Check one thing before you build anything: place a test order, or add something to a cart with your own address and leave it. If the cart does not show up on the Abandoned carts page after an hour, fix the connection first. A flow on top of a broken sync just sends nothing, quietly.

The whole sequence

Hour 1

Subject: You left something behind

Your cart is waiting

Back to my cart

Short reminder with the cart contents and one button.

Day 1

Subject: Questions before you order?

Answers, before you decide

See product details

Delivery, returns, sizing, what is included. Remove the doubts.

Day 3

Subject: Your cart expires soon

Last reminder

Complete my order

Brief and honest. Optionally a small incentive.

Wireframes, not final designs. Gaps are measured from the moment the cart becomes abandoned.

What goes in each email

Email 1, about an hour after abandonment

Treat it as a receipt for something unfinished. Show what is in the cart: product image, name, quantity, price and total. One button back to the cart. No discount yet, and no guilt. A plain subject line such as "You left something behind" does the job. Most of the people who come back from this one just got interrupted.

Email 1, cart contents

Your cart is waiting

Linen overshirt, olive, M

In stock

1 x 89.00

Canvas tote, natural

In stock

1 x 29.00

Total

118.00

Back to my cart

Sample content. Product rows come from the cart itself, so every contact sees their own items.

Email 2, the next day

By now the reminder has done its work and the people left are the ones with a reason to wait. Use the second email to answer the usual reasons. Delivery times and costs, return policy, sizing or compatibility, what is in the box, how to reach a person. Pick the two or three objections you actually hear from customers; a generic FAQ dump is easy to ignore. Add a line or two about the product itself, and the cart button again.

Email 3, around day three

Keep it short. Say the cart is still there, say when you cannot guarantee stock if that is true, and stop. If you want to add an incentive, this is the place, and keep it small: free shipping or a modest code with an expiry date. Using it at email 1 teaches people to abandon on purpose, and a code on email 3 only costs you margin on the people who were still undecided.

Check before you add a discount

If you also run a store-wide promotion, someone can get two offers on the same order. Decide which wins and say so in the email, or leave the incentive out while a sale is running.

Stopping when someone buys

The most common mistake with this flow is emailing a person about a cart they paid for ten minutes ago. It looks careless, and it generates unsubscribes you did not need. The flow has to check for an order before each email, not only at the start.

In the builder that is a condition node placed after each wait. If an order has been placed since the cart was abandoned, the contact leaves the flow. If not, they continue to the next email. Add that check in front of emails 2 and 3, and leave the first one alone since an hour is rarely enough for a second visit and checkout.

Building it in the automation builder

There is a pre-built three-step Abandoned Cart Recovery flow in Automations, and it is a fair place to start. If you would rather build from scratch, the order is:

  1. Create an automation and choose the cart abandoned trigger.
  2. Add the first email straight after the trigger. The trigger already waits for the one hour of inactivity.
  3. Add a wait of one day, then a condition on whether the contact has placed an order. Send the second email on the “no” path.
  4. Add a wait of two days, another order condition, and the third email.
  5. Send the contact to the end of the flow on every “yes” path.

Preview each email before you activate. The builder lists anything missing, such as an email without a subject, and will not start the flow until it is fixed. Then send yourself a real cart, once, and watch it arrive.

Abandoned cart recovery, in the automation builder

Trigger: cart abandoned

Cart idle for more than 1 hour

Send email 1

You left something behind

Wait 1 day

Suggested

Condition: order placed?

Yes leaves the flow. No continues.

Send email 2

Questions before you order?

Wait 2 days

Suggested

Condition: order placed?

Yes leaves the flow. No continues.

Send email 3

Your cart expires soon

End

Contact leaves the flow

The flow as it looks on the canvas. Wait lengths are suggestions.

Reading the results

Open Revenue attribution in the ecommerce section. It shows revenue earned by each campaign and automation in the window you select. For automations a 7-day attribution window applies, so an order placed within a week of the flow reaching a customer can be credited to it. That suits a three-day flow, but it also means some credited orders would have happened anyway: the cart comes back, the person pays. Treat the figure as an upper estimate, not proof.

The Abandoned carts page gives the other half: how many carts were abandoned in the last 30 days, how many were recovered, and the cart value on each side. Look at the two together. Attribution tells you what the flow is credited with, the carts page tells you how much was there to win.

Revenue attribution, sample data

Total revenue

12,480

Attributed

2,140

17% of total

Conversions

31

Daily attributed revenue

Automations

Automation

Revenue

Conversions

Abandoned cart recovery

1,420

19

Welcome series

510

8

Win-back

210

4

Sample data to show the layout. These are not results or benchmarks.

If it underperforms

Few opens on email 1

Rewrite the subject line, and check that sending from your own domain is set up. Reminders landing in spam never get a chance.

Opens, but few clicks

Make the cart contents bigger and the button clearer. Remove any second link that competes with it.

Clicks, but no orders

The problem is probably at checkout: surprise shipping costs, forced account creation, slow payment page. Email will not fix those.

Orders arrive after email 3

Try moving email 2 earlier, or add a fourth touch. If most orders land after email 1, you may not need the later ones.

Margin worries

Take the incentive out of email 3 for products with thin margins, or limit it to carts above a certain value.

Unsubscribes after the flow

Check the exit conditions first. Then look at whether the flow also hits people who just got a campaign.

Change one thing at a time, wait for enough carts to say something, and look again. A flow that quietly earns a modest amount every week is a better result than one that looks great for a few days and then stops.

Build this flow in Mailnaptic

Connect WooCommerce, start from the pre-built abandoned cart flow and adjust the timing and copy to your store.