Skip to content
Insights

Case notes · 4 min read

Cart recovery with agents: notes from our own store.

Timing, channel and tone. What changed when the message was written for one person.

André
Founder & CTO · 11 Aug 2026

Our founder also runs a fashion marketplace. We built its Agentic OS the way we build one for any client, inside its own CRM: 90 agents in eight departments, each team checked by a judge. Cart recovery is one of the places where the data was already there and the problem was obvious. People fill a cart, and then life happens.

These are notes on what changed, what we measure, and what did not work. We have left out revenue and percentages on purpose. They depend on the season, the catalogue and the traffic, and a number without that context would tell you less than the method does.

Where we started

Before agents, cart recovery was like most stores’: a fixed sequence. One email after a few hours, another a day later, sometimes a discount in the third. The same words for everyone, in the language of the store, whatever the customer had been looking at.

It worked. It just spoke to nobody in particular, and got the results of that.

One person, one message

The first real change was writing each message for the person who left the cart. Every night, the system refreshes a profile for every buyer: a persona, a churn risk and a next best action. The recovery agent reads that profile, the cart and the customer’s history before it writes anything.

That changes three things.

  1. Timing. A customer who usually buys late in the evening is not reminded at nine in the morning. Someone who comes back within the hour is left alone for a while.
  2. Channel. Email, SMS, push or WhatsApp, depending on what that person has agreed to and has actually responded to before. Not every channel, and not the loudest one.
  3. Tone. A first-time visitor and a customer with years of orders do not get the same message. The first needs reassurance about sizes and returns. The second needs a short reminder, in their language, about the pieces they chose.

A judge checks the messages: the facts about the product and the policy must match the catalogue and the shared memory, and the tone must fit the brand.

Vouchers, only inside limits

The easiest way to recover a cart is to give money away. That is also the easiest way to lose margin on a sale that might have happened anyway.

So the recovery agent can propose a voucher, but only inside limits the commerce team has set, and only after a margin guardrail has checked it. The guardrail is plain code, not a model. It works out the floor for each product after returns, fees and shipping, and anything below it is vetoed. No agent ever writes a price. A voucher is a tool for a specific person, not a default.

A proposal every week, a verdict 28 days later

Once a week, the system proposes how to recover more: change the timing for a segment, try a different channel, adjust the wording, tighten or loosen a voucher rule. A person reviews each proposal and decides whether to apply it.

Then comes the part we care about most. Every applied change is measured 28 days later, against what was happening before. Not the next morning, when a change always looks good or bad by chance. Twenty-eight days is long enough to see whether customers actually came back and bought, and whether the orders held once returns had come in.

STEPWHOWHEN
Propose a changeThe recovery agentEvery week
Approve or rejectA person on the commerce teamBefore anything changes
Measure the resultThe system, against the baseline28 days after it goes live
Keep, change or dropThe same personAfter the measurement

What didn’t work

Not every proposal earns its place. Some changes made no measurable difference after 28 days and were dropped. That is the point of measuring: without it, they would still be running, and we would still believe in them.

A profile is only as good as the history behind it. For a first-time visitor there is little to go on, and the message is closer to the generic one than we would like. We treat that as a limit to be honest about, not something to paper over with guesses.

And a better message does not fix a bad reason for leaving. When a cart is abandoned because of shipping costs, a sold-out size or a confusing returns policy, the right move is to fix the store. The recovery agent’s most useful output is sometimes not a message at all, but a pattern for someone to look at.

Got a pilot gathering dust?

In 30 minutes we’ll tell you what it would take to put it live.

Book a free call

André is the founder and CTO of WizardingCode. Eight years building the software companies run on, now putting agents into production.

All notes