Skip to content
openable.io
← All articles

Shopify

Abandoned cart SMS for Shopify: timing, consent and messages that convert

How to recover more checkouts with SMS and WhatsApp without annoying customers or breaking marketing rules, with example message sequences.

· 7 min read

Why SMS beats email for cart recovery

Roughly seven in ten Shopify checkouts are abandoned. Email recovery flows work, but open rates sit around twenty percent and most of those opens happen hours later, after the buying moment has passed. Text messages are opened within minutes by nearly everyone who receives them, which is exactly the window when a shopper is still thinking about the product.

That immediacy is also why SMS is easy to get wrong. A badly timed or generic message feels like spam, and unlike email, people notice.

Consent first

You can only text customers who have agreed to receive marketing messages. On Shopify that means:

  • Collecting the phone number with an explicit marketing opt-in at checkout or via a sign-up form, not a pre-ticked box.
  • Sending a confirmation that tells the customer who you are, roughly how often you will message, and how to stop.
  • Honouring STOP replies instantly and keeping a suppression list.

In the UK, PECR applies to SMS as it does to email. In the US, the TCPA adds written-consent requirements and quiet hours. WhatsApp adds its own rule: for messages sent outside a 24-hour customer-service window you must use an approved template. Any tool you use should handle all of this for you rather than leave it to a checkbox.

Timing that works

A three-message sequence covers most of the recoverable revenue:

  1. Around one hour after abandonment. A friendly reminder that references the exact product. No discount yet. This message alone recovers the largest share.
  2. Around 24 hours later. A gentle nudge, ideally with a reason to act: low stock, a delivery cut-off, or a small incentive if the basket is high value.
  3. Around 72 hours later. A final message. If you use discounts, this is where they belong, so you are not training customers to abandon carts for a code.

Stop after three. Beyond that, response rates fall off and opt-outs climb.

Writing the messages

Short, specific and human. Name the product. Use the customer's first name if you have it. Include one link. Sign off with your store name so the sender is obvious, and make sure the opt-out instruction appears in the first message of any sequence.

Example first message:

Hi Sarah, you left the Vitamin C Serum in your basket at Glow. We've held it for you: glow.co/c/8f2k. Reply STOP to opt out.

Example second message:

Sarah, only a few Vitamin C Serums left in this batch. Your basket is still here: glow.co/c/8f2k

Avoid all caps, exclamation marks and anything that reads like a broadcast. If a message would look odd coming from a real person on your team, rewrite it.

Beyond abandoned carts

The same channel recovers a second, often larger, pot of revenue: repeat purchases. Products that run out on a predictable cycle, such as supplements, skincare, coffee and pet food, suit a refill reminder timed to the previous order interval. A single "you're probably running low" message a few days before the expected reorder date is one of the highest-converting messages an ecommerce store can send.

Measuring it

Track recovered revenue by attributing orders that follow a click on a message link within a set window, typically 24 to 72 hours. Watch opt-out rate alongside conversion: if opt-outs climb above one or two percent per message, the timing or tone needs adjusting. And compare against a holdout group occasionally, because some of those carts would have converted anyway.

Automating it

Doing this by hand does not scale past a handful of orders a day. The pieces that need automating are detecting the abandonment, waiting the right interval, writing a message that references the product, sending through a compliant provider, handling replies and opt-outs, and attributing the revenue. That is the workflow Openable runs for Shopify stores, with AI writing each message from the actual basket contents.