How To Guide
Create a cart abandonment flow
Build a customer recovery flow that sends a delayed SMS or email after cart activity, skips customers who complete payment, and tracks recovered revenue.
Before you start
- The WooCommerce site is connected to Casa Signals and live events are arriving.
- The store has enough credits for the messages being sent.
- For SMS recovery, checkout or cart events include a customer phone number.
- For email recovery, checkout or cart events include a customer email address and the site has an active email template.
- You have permission to create flows for the site.
- The store's consent and marketing rules allow the planned message.
What you will have when finished
- A flow is active on the correct site.
- The flow triggers from cart or checkout activity.
- The message waits for the configured delay before sending.
- The flow skips customers who complete payment during the delay when suppression is enabled.
- Deliveries, skips, failures, credit usage, and recovered revenue can be reviewed in Casa Signals.
How cart abandonment recovery works
A cart abandonment flow listens for a customer event such as add_to_cart or checkout_started. When the event arrives, Casa Signals schedules a message for the delay you choose.
If the customer completes payment during the delay and the suppression checkbox is enabled, Casa Signals skips the message. This keeps the customer experience clean because buyers should not receive recovery messages after they have already paid.
For customer SMS, Casa Signals renders your message, shortens links, adds a STOP unsubscribe link, checks unsubscribe status, checks recipient cooldowns, charges credits, sends the SMS, and logs the result. For customer email, Casa Signals uses the assigned active email template, adds unsubscribe handling, checks cooldowns, charges one credit, and logs the delivery.
Choose the right trigger
The most common cart abandonment trigger is add_to_cart. It catches shoppers early, as soon as they add an item.
A checkout rescue flow usually uses checkout_started. It catches shoppers with stronger purchase intent because they reached checkout.
If you are creating your first recovery flow, start with add_to_cart and a 10 minute delay. After you review performance, you can add a separate checkout_started flow with a slightly different message.
- Use add_to_cart for broad cart recovery.
- Use checkout_started for stronger-intent checkout rescue.
- Avoid creating several active flows with the same trigger and short delays until you understand how often customers will be contacted.
1. Create the flow from the template
Open the Flows page
In Casa Signals, open the dashboard, choose the connected WooCommerce site, then click Flows.
Select the Abandoned basket save template
In the Templates panel, click Abandoned basket save. Casa Signals fills the flow builder with a sensible abandoned-cart setup.
Review the prefilled settings
The template uses Send SMS, Customer, trigger add_to_cart, 10 minute delay, active status, and payment-success suppression.
The default message is: Your basket is still waiting. Complete checkout here: {{page_url}}
- Action: Send SMS.
- Notify: Customer.
- Trigger: Add to cart.
- Delay minutes: 10.
- Status: Active.
- Guardrail: Do not send if payment succeeds during the delay.
2. Or configure it manually
Set the action
Choose Send SMS for a text message, or Send Email if you want to use an email template. SMS is usually best for fast cart recovery. Email is useful when you want more design, product explanation, or a longer message.
Name the flow
Use a clear name such as Abandoned cart SMS - 10 minutes or Checkout rescue email - 30 minutes. Good names make delivery logs and recovery reporting easier to understand later.
Choose the recipient
For cart abandonment, choose Customer. Shop owner alerts are designed for internal notifications and send immediately without a delay or customer STOP link.
Choose the trigger
Select add_to_cart for cart recovery or checkout_started for checkout recovery.
Set the delay
Enter a delay from 0 to 180 minutes. For first-time cart recovery, 10 to 30 minutes is a good starting point.
A delay of 0 sends as soon as the flow is processed. For abandoned cart recovery, a short delay is usually better because it gives the customer time to continue naturally.
Set the status
Choose Active when the flow is ready to send. Choose Disabled if you want to save the flow without letting it send yet.
3. Write the recovery message
Keep the message direct, helpful, and easy to act on. Do not make it sound like the customer did something wrong. Mention the basket, include a useful link, and leave enough room for the automatic STOP link.
SMS message templates can use tokens from the event, including customer_name, customer_email, order_id, order_total, order_currency, product_name, page_url, page_path, and domain.
For cart abandonment, {{page_url}} is useful because it can send the customer back to the page captured on the event. Always preview the message before saving.
- Recommended starter SMS: Your basket is still waiting. Complete checkout here: {{page_url}}
- Alternative SMS: Still thinking it over? Your basket is saved here: {{page_url}}
- Keep SMS under the 900 character limit.
- Remember that unsubscribe text is added automatically to customer SMS messages.
- If there is no approved Sender ID, Casa Signals can prefix the store name to the SMS.
4. Enable payment-success suppression
For abandoned cart flows, leave Do not send if payment succeeds during the delay enabled. This is one of the most important customer-experience safeguards.
When the flow is delayed, Casa Signals checks for payment_successful and order_placed events for the same customer identity during the delay window. The match can use available identifiers such as WordPress user ID, customer email hash, visitor ID, session ID, or order ID.
- Enable suppression for customer cart and checkout recovery.
- Use a delay long enough for the customer to complete checkout naturally.
- Test both paths: a customer who buys before the delay, and a customer who does not.
5. Confirm SMS requirements
Customer SMS flows can only send when the triggering event includes a customer phone number. If the event does not include a phone number, the delivery is logged as skipped.
Casa Signals checks whether the phone number has unsubscribed from SMS for the store. If the customer has unsubscribed, the message is skipped.
Casa Signals also applies a 15 minute recipient cooldown per store, so the same phone number does not receive repeated SMS flow messages too quickly.
SMS credit usage depends on the final message length after rendering tokens, shortening links, adding the store name when needed, and adding the STOP unsubscribe link.
6. Confirm email requirements
If you choose Send Email, create and activate an email template first, then assign it to the flow.
Email flows send to the customer email captured by the event. If the event has no email address, the delivery is skipped.
A main domain email address should be saved in the site Settings because flow and broadcast emails use it as the reply-to address. If you set up a sending domain, emails can send from your own authenticated domain once verification is complete.
Email flows have a 15 minute recipient cooldown per store and cost 1 credit per email.
7. Save, test, and monitor
Create or update the flow
Click Create flow. The flow will appear in Configured flows with its trigger, delay, action, status, and suppression condition.
Run a no-purchase test
Open the store in a private browser, add a product to the cart, enter checkout contact details if needed, then leave without paying. Wait for the configured delay and check the flow delivery log.
Run a purchase-suppression test
Repeat the flow trigger, but complete payment before the delay ends. The scheduled message should be skipped when payment-success suppression is enabled.
Review delivery logs
Use the flow delivery logs to review sent, skipped, and failed messages. Skips are useful because they explain missing sends, such as no customer phone number, customer unsubscribed, recent recipient cooldown, payment success during delay, or missing email template.
Review recovered revenue
When a customer orders after a flow message, Casa Signals can attribute recovered revenue back to the site, customer, and flow. Review recovery performance after the flow has been active long enough to collect meaningful data.
Best practices
- Start with one abandoned cart flow before layering several recovery messages.
- Use a 10 to 30 minute delay for the first SMS recovery flow.
- Keep the message helpful, short, and linked to the cart or checkout journey.
- Leave payment-success suppression enabled for customer recovery flows.
- Check delivery logs before assuming the flow is broken.
- Make sure consent language on the store matches the channel you are using.
- Monitor recovered revenue and unsubscribe behavior before increasing message frequency.
- Avoid sending both SMS and email at the exact same delay until you know customers respond well.
Troubleshooting
The flow was created but no SMS sent.
- Check whether the triggering event included a customer phone number.
- Confirm the flow status is Active.
- Check credits and auto top-up settings.
- Review the delivery log for skipped or failed status.
- Confirm the recipient has not unsubscribed and has not received another SMS from the store within the 15 minute cooldown.
The flow skipped because payment succeeded during the delay.
- That is expected when payment-success suppression is enabled. It means the customer completed payment before the recovery message was due.
- Keep this enabled for cart abandonment unless there is a specific reason to send post-purchase messaging from a different flow.
The customer received the message too quickly.
- Increase Delay minutes in the flow settings. Customer delays can be set from 0 to 180 minutes.
- Avoid a 0 minute delay for abandoned cart recovery unless the message is intentionally immediate.
The message contains a blank or odd-looking token.
- Tokens render from the data available on the triggering event. If the event did not include product_name or customer_name, those values may not render as expected.
- Use reliable tokens such as {{page_url}} and test the flow with real cart and checkout activity.
The email flow cannot be activated.
- Create an email template first and set it to Active.
- Assign that active template to the flow.
- Make sure the event includes a customer email address.
The flow sends but recovered revenue is not showing yet.
- Recovery attribution needs a later successful order or payment after the flow message.
- Make sure the customer completed checkout after receiving the message and that the WooCommerce connection is still sending order and payment events.
- Give the analytics enough time to process recent events.
FAQ for support agents
What is the easiest abandoned cart setup?
Open Flows, choose the Abandoned basket save template, keep the add_to_cart trigger, keep the 10 minute delay, leave the flow Active, and keep Do not send if payment succeeds during the delay enabled.
Should I use add_to_cart or checkout_started?
Use add_to_cart for broad cart recovery. Use checkout_started when you want to target shoppers who reached checkout and usually have stronger purchase intent.
Why does Casa Signals need a delay?
The delay gives the customer time to finish checkout on their own. It also gives Casa Signals time to detect a successful payment and skip the message if suppression is enabled.
Can I create an email cart abandonment flow instead of SMS?
Yes. Choose Send Email, create and activate an email template, assign it to the flow, and make sure the triggering event includes a customer email address.