All guides

Abandoned cart recovery that stops when someone buys

The hard part of cart recovery is not the message. It is making sure the third one never reaches somebody who purchased after the first.

6 min read

Most abandoned carts are not abandoned

People add things to compare prices, to check delivery cost, to save for later, or because they are on a phone on a train. Treating every incomplete cart as a lost sale produces sequences that annoy the majority to recover the minority.

The useful split is by intent signal, not by cart value: did they reach checkout, did they enter a delivery address, did they return to the item again later. A cart that reached the payment step is a different conversation from one abandoned on the product page.

Timing beats copy, and the first message is not urgent

The first message works best when it reads as helpful rather than as a chase — an hour or two later, referencing the item, offering nothing. Its job is to be a link back, not a pitch.

The second, a day later, can add the reason to act: stock, delivery cutoff, a question about size or fit. The third, if there is one, is where a discount belongs, and where you should be honest with yourself about whether you are recovering sales or training people to abandon carts.

Exit conditions are the whole design

A sequence needs to stop for more reasons than a purchase. The list is longer than most teams write down:

  • They bought — including buying something else, and including buying in a different channel.
  • They emptied the cart deliberately.
  • They started a new cart, which supersedes the old one.
  • They replied to a message, which makes them a conversation rather than an audience.
  • They asked to stop receiving marketing, in any channel.

Every one of these has to be evaluated at send time. A sequence that decided its audience on Monday and sends on Wednesday will message people who bought on Tuesday, and no amount of good copy survives that.

Simulate before you send

Cart recovery is the sequence most likely to run for months without anyone rereading it, so it is worth being certain on day one. Running the journey against real contacts without sending anything shows you who would receive what and when — and it usually catches at least one branch that nobody exits.

The classic finding is a wait node placed after the exit condition rather than before it, so people who bought still receive the next message a day later. It is invisible in a diagram and obvious in a simulation.

What to measure, and what not to

  • Recovered revenue against a holdout, not against everyone who received a message. Some of them were coming back anyway.
  • Unsubscribes per recovered order. This is the number that tells you whether the third message is worth sending.
  • Time to recovery, which tells you whether your first message is too late or your third is unnecessary.

Attributing every post-message purchase to the sequence makes cart recovery look like the best-performing thing you do. A holdout of even five per cent turns that into a number you can act on.

Questions these did not answer

Bring the specific one. It is a better demo than the tour.