Register your interest: Tag @Cody, get an agent
BlogResources

How to automate abandoned cart emails: timing and the discount trap

Most carts are not abandoned, and a discount in the first email teaches people to abandon. What the delay should be, what to say, and when to stop.

Rithul PalazhiRithul Palazhi11 min read

Summarize with AI

How to automate abandoned cart emails: timing and the discount trap
On this page

Cart recovery email is the most reliably profitable automation in ecommerce, and it is also the one most often built in a way that costs money over a year. The two decisions that determine which it is are when the first message goes out and whether it contains a discount.

Both are usually made by copying whatever a template suggested. Both deserve a deliberate answer, because a discount in the first email trains your most engaged customers to abandon on purpose, and a badly timed first send reaches people who were never abandoning anything.

What we'll cover

Most carts are not abandoned

The cart is a shortlist for a large share of shoppers, used the way a wishlist would be.

Research happens across sessions. Adding something and returning two days later is normal behaviour, not a failure.

Comparison shopping means the cart is a holding place while the same item is checked elsewhere.

Multiple devices split one purchase journey into what looks like an abandonment and a fresh visit.

Checkout abandonment is the real signal, and it is different from cart abandonment: somebody who entered delivery details and stopped hit a specific obstacle.

Treat the two separately, because one is a reminder and the other is an intervention, and sending the same message to both wastes the more valuable case.

Why people actually leave

Unexpected costs at checkout — shipping, tax, fees appearing late — which is consistently the largest identifiable cause and is a pricing presentation problem rather than an email problem.

Required account creation, which adds friction at exactly the wrong moment.

Delivery timing that turns out not to work, which the email can address directly.

Payment method missing, which is knowable from your own data and is worth counting.

A checkout error, which is a bug rather than a decision and deserves a different response entirely.

Genuine hesitation about the purchase, which is the only case the classic recovery email is designed for.

The timing decision

The first message is not an hour. It is short enough to be relevant and long enough that the person has actually left — around one to a few hours, tested against your own data rather than assumed.

Too early is worse than too late. An email arriving while somebody is still shopping reads as surveillance and interrupts a purchase in progress.

Two or three messages, not five. The return diminishes sharply and the annoyance does not.

Space them meaningfully: hours, then a day, then a couple of days.

Stop at the purchase, obviously, and also stop if they return to the cart, since a live session does not need an email.

Respect a sensible hour. A recovery email at three in the morning is technically timely and reads badly.

Building it with CodeWords

CodeWords connects to more than 3,000 integrations, so the store, the email platform and the customer record can meet in one automation.

  1. Open CodeWords and start a new automation.
  2. Describe what should happen in plain language to Cody, the automation builder: the delays, the messages, and the conditions for stopping.
  3. Authorize the connections — your store platform and your email service.
  4. Describe the exceptions: a completed purchase, a return visit, a customer who already received one this week, an out-of-stock item.
  5. Run it against last month's abandoned carts as a dry run and check who would have received what.

You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.

The discount trap

The most consequential decision in the whole sequence, and the one most often made by default.

A discount in the first email is a discount on sales you would have made anyway, since a large share of those people were returning regardless.

Customers learn the pattern. Once somebody notices that abandoning produces a code, they abandon deliberately, and the most engaged customers learn fastest.

It resets the reference price. People who have received a discount expect one, and full-price conversion falls afterwards.

Hold it for the last message, if at all, and treat it as the final attempt rather than the opening offer.

Try the non-price levers first: free shipping over a threshold, a clearer delivery date, a returns guarantee, an answer to the likely objection.

Measure incrementally — against a holdout group that receives no discount — because the recovery rate of a discounted sequence tells you nothing about whether the discount caused anything.

What the message should say

Show what they left, with the image, since recognition does most of the work.

One clear link back to the cart, still populated, which is the entire functional purpose of the email.

Address the likely obstacle rather than the emotion. Delivery timing, returns, sizing, payment options — concrete answers beat "you left something behind".

Keep it short. This is a reminder and the most effective ones read like one.

Come from a real address that accepts replies, since a proportion of recipients will reply with the actual question that stopped them.

Include support, not just checkout. Some abandonments are questions, and a route to an answer converts where a button does not.

Who should not receive one

Anyone without consent to be emailed, which is a legal question in most markets and not a settings preference.

Repeat abandoners, who are using the cart as a wishlist and are being slowly annoyed by the sequence.

Anyone who bought something else in the window, where the message is straightforwardly wrong.

Carts with out-of-stock items, unless the message says so, because sending somebody back to an unbuyable cart is worse than silence.

Very low value carts, where the margin does not support the contact.

Anyone who has had too much email recently, which needs a global frequency cap across all your automated sequences rather than per-sequence rules.

Fixing the checkout instead

Every message above is compensating for something that happened at checkout. The recovery sequence is worth building and it is a smaller lever than the page it is recovering from.

Show the full cost early. Shipping and tax visible before the final step removes the largest single cause, and no email recovers as many of those people as simply not surprising them.

Allow guest checkout. Forced account creation costs sales at the moment of highest intent, and the account can be offered afterwards.

State the delivery date, not the shipping speed, since a date is what somebody is actually deciding about.

Offer the payment methods your customers use, which varies far more by market than most stores assume.

Log checkout errors as errors. An abandonment caused by a failed payment step is a bug report, and it will otherwise be counted as a marketing statistic.

Read the replies. The people who answer your recovery email are telling you what is wrong with the checkout, in their own words, for free.

Making it survive

Make it idempotent on the cart, since one person should not receive two first emails.

Check the current state before every send, not only at scheduling time, because the purchase may have happened in between.

Handle price and stock changes between abandonment and send, since a restored cart with a different total is a support ticket.

Keep the cart link valid for the life of the sequence.

Report the outcome: carts eligible, messages sent, suppressed and why, and recovery measured against a holdout.

Limits worth knowing about

You need an email address, so anonymous abandonments are out of reach unless the person identified themselves earlier.

Consent rules vary by market and apply to this message like any other commercial email.

Attribution is generous by default. Most platforms credit the email for any purchase in a window, including ones that would have happened anyway.

Cart state may be stale by the time you send, particularly for stock and pricing.

Cross-device journeys are incomplete, so somebody may have completed the purchase somewhere your automation cannot see.

What to build first

A single message, a few hours after abandonment, showing the cart, answering the two most common obstacles, with no discount. It is the version with the best return per unit of annoyance, and measured against a holdout it gives you the baseline that tells you whether anything you add afterwards is actually working.

Two habits make the difference. Keep a permanent holdout group that receives nothing, because without it every number this system produces overstates its own contribution. And separate checkout abandonment from cart abandonment, since one is a person who hit an obstacle you can name and the other is often somebody using the cart as a list.

Frequently asked questions

When should the first abandoned cart email be sent?

Long enough that the person has actually left and short enough to be relevant — around one to a few hours, tested against your own data. Too early reads as surveillance and can interrupt a purchase in progress.

Should I include a discount?

Not in the first message. A large share of recipients were returning anyway, so the discount costs margin on sales you already had, and customers who notice the pattern begin abandoning deliberately.

How many emails should the sequence have?

Two or three. The return diminishes sharply after that and the annoyance does not, and a longer sequence damages the list you are sending it to.

Why do people abandon carts?

Unexpected costs appearing at checkout is consistently the largest identifiable cause, followed by required account creation, delivery timing, missing payment methods, and outright checkout errors. Only the last category is genuine hesitation.

What is the difference between cart and checkout abandonment?

Cart abandonment is often somebody using the cart as a shortlist. Checkout abandonment means they entered details and hit a specific obstacle, which is a much stronger signal and deserves a different message.

How do I know whether recovery emails are working?

Keep a permanent holdout group that receives nothing. Platform attribution credits the email for purchases in a window including ones that would have happened anyway, so without a holdout every number overstates the contribution.

Who should be excluded from the sequence?

Anyone without consent, repeat abandoners using the cart as a wishlist, anyone who bought something else, carts with out-of-stock items, very low value carts, and anyone near a global email frequency cap.

What should the email actually say?

Show what they left with the image, give one link back to a still-populated cart, and address the likely concrete obstacle — delivery, returns, sizing, payment. Send it from an address that accepts replies.

Is the recovery email the right thing to fix?

It is worth building and it is the smaller lever. Showing full costs before the final step, allowing guest checkout, and stating a delivery date remove more abandonments than any email recovers.

What should I do with checkout errors?

Treat them as bug reports, not marketing statistics. An abandonment caused by a failed payment step is a defect, and counting it in a recovery funnel is how it stays unfixed.

Get started today

Your first workflow is free to build.

Describe what you need. Cody handles the build, the connections, and the deployment.