Build an Abandoned Cart Recovery Workflow with Email & SMS
An abandoned cart recovery workflow helps a known customer finish an incomplete purchase. Connect your store’s cart and order data, wait long enough to distinguish a pause from abandonment, and check that the cart is still recoverable before each reminder. Send email through your own Amazon SES account and use webhooks to reach your SMS or push service when appropriate.
By SendOps · Updated
Journey at a glance
- Who it helps
- Known shoppers with a recoverable cart and permission for the intended channel.
- What starts it
- A recognized return visit with an open cart, or a store event that identifies an abandoned checkout.
- The sequence
- Check cart → send recovery email → wait → check purchase → optional SMS webhook or final email.
- When it stops
- Purchase completed, cart no longer recoverable, or the final follow-up. Check channel eligibility before sending.
- What to measure
- Completed purchases among enrolled shoppers, time to purchase, and revenue alongside unsubscribes and complaints.
- Beyond email
- Call your SMS or push service; it checks current cart state and channel consent before delivering.
Journey explorer
Select any step
Recover the cart. Respect the channel.
Start with a useful email, then try your SMS service. If the webhook fails, fall back to email and bring both paths back together.
Email + SMS · Failure fallback · Shared continuation
Exit when this cart is purchasedChecked throughout the journey.
Request accepted
Continue
Webhook failed
Paths rejoin
Your store keeps the active cart and its purchase status current. Your SMS service handles consent, quiet hours, and delivery.
Webhook
Try an SMS reminder
Call your own SMS endpoint. It accepts eligible contacts or refuses when SMS is unavailable or inappropriate. A 2xx response means the request was accepted, not that the SMS was delivered.
Call your SMS service
SendOps sends the contact and step to your webhook.
SMS
To Lily · From your store
Lily, your saved cart is ready when you are. Pick up where you left off: yourstore.com/cart
Delivered by your SMS provider.
If the webhook fails
Send a cart-help email through your Amazon SES.
Your service checks channel consent and handles delivery. The workflow continues from the webhook’s response.
Start with the cart, not just the visit
A visit to your store does not tell you whether a shopper abandoned checkout. Your store integration must associate the contact with a cart, provide a working recovery link, and report purchases or changes that make the reminder irrelevant. Decide which cart to recover if one person has several.
For a return-visit journey, Google Tag Manager supplies activity for a previously identified contact; your store supplies the cart state. For a checkout-triggered journey, send the relevant activity from your store directly. Neither approach discovers the email address of an unknown visitor.
- Contact identity and the cart or checkout reference your store uses.
- Current cart status, recovery URL, and the time checkout was last updated.
- Purchase and cart-expiry updates associated with the correct contact and cart.
- Email eligibility, and separate SMS or push eligibility if you use those channels.
Give the shopper time to finish
Choose a waiting period that fits the purchase. A shopper comparing an annual subscription may need longer than someone buying an everyday item. Define abandonment in your store integration or audience logic, then re-check the purchase state after the wait.
The journey above starts with a recognized return to an open cart and waits one day after the first email. Treat that timing as a starting point. A checkout-start event by itself should not immediately send an abandoned-cart message while the customer is still paying.
Make the next step easy to complete
Use one clear recovery link and a message that offers help. A subject such as “Your saved items are ready when you are” can lead into a short reminder and a reply address for questions. Add cart details only when your store provides current, reliable data for the template.
Test the recovery link on mobile and after signing out. Let the store validate expiry, availability, pricing, and any authentication needed to reopen checkout. Avoid promising that inventory or a discount is reserved unless your store actually enforces it.
Stop the reminder when the purchase happens
Report the purchase back to SendOps and use a goal exit or a branch before later reminders. Connect the signal to the cart being recovered: an old order or an unrelated purchase should not accidentally decide this journey’s next step.
Also handle carts that expire or can no longer be recovered. A delayed event can arrive after a message has already sent, so keep store updates timely and re-check current state in any service performing an external action. A workflow exit cannot recall a message already delivered.
Add SMS or push through a webhook
After the email and a wait, check whether the purchase is still incomplete. A webhook step can call your registered HTTPS endpoint to request an SMS reminder or a push notification. Your service owns the provider connection, current cart lookup, channel consent, and delivery.
Give repeated webhook requests an idempotent handler so a retry does not produce duplicate reminders. A successful response means your service accepted the request; it does not prove the SMS arrived or the customer purchased. Report the outcome you need as contact activity.
Use the webhook’s failed branch for a suitable email fallback. Check that the fallback still makes sense for the contact, and plan a finite sequence across all channels so a shopper is not repeatedly nudged by separate campaigns.
Rehearse the awkward cases before launch
Define when a shopper can enter again. A page reload should not restart the same recovery sequence, while a later, genuinely new cart may deserve another journey. Keep cart identity in your integration and review the workflow’s re-entry setting together.
Use a fixed cohort for a shadow rehearsal to inspect enrollment, waits, branches, and recorded effects. Test your webhook receiver separately with its provider sandbox; shadow mode does not perform the external calls. Review the full enrollment estimate before live activation.
- Purchase completed during a wait or just before the SMS request.
- Cart link expired, item unavailable, or cart contents changed.
- Two carts for the same person, repeated visits, and duplicate store events.
- Email unsubscribe, missing phone number, or no permission for SMS or push.
- Webhook failure, a repeated request, and the email fallback path.
Count completed purchases, not just clicks
Use your store’s order data to measure purchases and revenue for the enrolled cohort within a defined time window. Inspect delivery failures, skipped sends, and contact timelines to understand why a reminder did or did not happen.
A purchase after a reminder is not proof that the reminder caused it. Compare a suitable holdout where practical, and track unsubscribes and complaints alongside recovery. Change the audience, timing, or message based on that evidence.
SendOps charges a flat platform fee, with no per-contact or per-email SendOps charge. AWS bills SES usage separately; your SMS or push provider’s charges also remain separate.
Common questions
Do I need Google Tag Manager for abandoned cart recovery?
No. A store integration can supply the cart and checkout activity directly. Google Tag Manager is useful when a recognized return visit is part of the trigger; it does not replace cart or purchase data.
Does SendOps send SMS natively?
No. A workflow webhook calls your service, which sends through your chosen SMS provider and checks channel consent. Email is delivered through your own Amazon SES account.
How many cart reminders should I send?
Use a short, finite sequence appropriate to the purchase. Begin with a useful email, check purchase state before any follow-up, and add another channel only when it helps the customer. There is no single schedule that fits every store.
Will reminders stop as soon as someone buys?
Your integration must report the purchase, and your workflow must use that information in an exit or branch. Timely state updates matter: SendOps cannot undo a reminder that already sent before the purchase signal arrived.
Keep building
- Returning visitors and Google Tag Manager
- Test your email workflows
- Workflow webhook receiver documentation
- SendFlow webhook reference
- Workflow pricing
Product references: workflow documentation and shadow mode. The example timing and message ideas are editorial starting points to adapt to your product.