/

/

Abandoned cart flow

Abandoned cart flow

Abandoned cart flow

An abandoned cart flow is a triggered sequence of messages, across email, SMS, and web, sent after a customer leaves items in their cart unpurchased. Where an abandoned cart is the event, the flow is the automated response that tries to bring them back.

Category

Recovery, Marketing automation

Also known as

cart abandonment flow; cart recovery flow

A three-step message sequence (email +1h, SMS +24h, email + incentive +48h) along the top. Below, three foundation blocks the sequence rests on: Identity survives Safari, Cart event carries variant IDs, Deep link restores the cart. A broken version on the right shows the SMS link landing on an empty cart (Pink).

A three-step message sequence (email +1h, SMS +24h, email + incentive +48h) along the top. Below, three foundation blocks the sequence rests on: Identity survives Safari, Cart event carries variant IDs, Deep link restores the cart. A broken version on the right shows the SMS link landing on an empty cart (Pink).

Example

A customer puts three items in their cart and leaves. An hour later the recovery SMS fires. It contains a link. They tap it, the cart page opens, and the cart is empty.

That’s how most recovery flows work by default, because the link points at /cart or the homepage. The customer lands on nothing, has to remember what they wanted, and most don’t. The message technically sent; the recovery didn’t happen.

The fix is a link that carries the cart. On Shopify, a cart permalink of the form /cart/{variant_id}:{quantity} rebuilds the cart on arrival, and ?storefront=true lands the customer on the cart page rather than straight into checkout. They tap, see their items already loaded, and check out.

Where the flow breaks

The sequence is the visible part. The failures hide underneath it.

The empty-cart landing above is the most common. Close behind is identity: on Safari, first-party cookies set by JavaScript expire after seven days, so a customer who returns later isn’t recognized and no personalized recovery fires at all (see Custom Tracking Domain). And there’s a Shopify-specific trap: cart permalinks need variant IDs, not product IDs. If your cart_update event carries product IDs, the link resolves to an empty cart with no error. Confirm which your event holds before trusting the link.

Sequencing the messages

Once the plumbing works, the cadence is the lever, and a common, effective shape escalates only as far as it needs to.

The first message goes out within an hour or two: a plain reminder with the cart contents and the deep link, no discount. Many customers convert on the reminder alone, so a discount there just gives away margin. A second message a day later repeats the cart on a different channel. A discount, if you use one at all, belongs in a later message and only for the customers who didn’t return, so the incentive reaches the carts that needed it.

In practice

Treat the flow and its plumbing as one job. Before touching copy or cadence, confirm three things: identity survives Safari, the cart event carries variant IDs rather than product IDs, and the link restores the exact cart. A perfect sequence on broken plumbing recovers nothing.