Automate Abandoned Cart Reminders

When you sync users’ cart data with Sailthru, you can easily automate abandoned-cart reminder messages using Lifecycle Optimizer.

What is Cart Abandonment Messaging?

Customers frequently add products to their cart and leave your site or app without purchasing. This leaves valuable revenue potential untapped! Following up with the user with a personalized, timely reminder of their added items, potentially with discounts or other incentives, can drive purchase volume.


To enable Abandoned Cart messaging with Lifecycle Optimizer, you’ll need:

  1. The latest Sailthru JavaScript tag on your site.
  2. The Sailthru API, configured to sync users’ cart data each time it is updated. This requires a one-time setup by your developer using the Purchase API or addToCart script.
    • When using the Purchase API, the “incomplete” parameter must be used to identify items added to a cart but not purchased.
    • The Purchase API’s “channel” parameter must also be set to app or web to determine where the purchase was made – from your website or from your app.
  3. An abandoned-cart template or push notification copy that can reference the abandoned items. Both template and push notification use Zephyr.
  4. The sailthru_hid cookie set from a previous user email click or signup. This allows Sailthru to track user activity.

Note: The Cart Channel Check feature needs to be enabled on your account. Contact support or your CSM for assistance. For more information about setting the cart’s channel, go to the Abandoned Shopping Carts documentation.

How it Works

Sailthru detects when a known user — based on their existing cookie or new login — has added items to their cart. Sailthru waits a standard 30 minutes from the user’s last pageview before considering the session “inactive”. For mobile app users, Sailthru waits 5 minutes from the time the app is closed or abandoned. At that time, the user enters your Abandoned Cart flow. 

Sailthru Lifecycle Optimizer Abandoned Cart Reminder Automation Process

Note: There is a short lag from the app closure to the event and Lifecycle Optimizer firing. It may be closer to 7 minutes for a push to be received.

After any additional wait time you choose to add to the flow, Lifecycle Optimizer takes action, sending a message to the user about their abandoned cart. That message can contain the specific cart items, enticing the user to resume their session and make a purchase.

If you’re already sending Abandoned Cart emails using the Sailthru API without Lifecycle Optimizer, see the information in the FAQ below on the differences between these methods and how to migrate to the recommended Lifecycle Optimizer-powered method that is described on this page.

Build a Flow Manually

Once the above requirements are met:

  1. In Lifecycle Optimizer, create a New Flow.
  2. Click the default Entry and select Cart Abandoned from the Edit Entry panel’s dropdown list.
  3. Build out the steps you wish to include in your flow. Generally, these include a Wait step and an Action step.
    • Marketers often select a 4-6 hour Wait period.
    • As an Action, select Send Email or Send Push Notification and set your email template or push notification content.
    • To send on the most effective channel, add a Cart Channel Check step. This will branch your flow based on the abandoned cart platform.

Reminder: See the FAQ below before activating this flow if you are currently using the “reminder template” to send abandoned cart emails through the API.

Build a Flow with a Recipe

Once the above requirements are met:

  1. In Lifecycle Optimizer, create a New Flow.
  2. Click the Recipe book in the toolbar and select Cart Abandoned from the available Lifecycle Optimizer Recipes. This will build a default abandoned cart flow for you.
  3. Select a Wait before sending a message. Marketers often wait 4-6 hours after the session has ended.
  4. As an Action, select your Abandoned Cart template. Change the Send Email step to Send Push Notification to build a mobile flow.

Reminder: See the FAQ below before activating this flow if you are currently using the “reminder template” to send abandoned cart emails through the API.

Basic Abandon Cart Flow

The following is a basic flow for Abandoned Cart messaging. It uses a Cart Abandon Entry and a Cart Channel Check step.

Cart abandon flow with a Cart Channel check step

Frequently Asked Questions

Does this work with mobile app activity/inactivity?

Yes. The updated Cart Abandoned trigger will trigger a flow when a cart is abandoned on either your website or your mobile app.

To register incomplete purchases from your mobile app properly, you must set the channel field to ‘app’. If the channel is left blank or set to ‘web’, then the trigger assumes the cart abandon happened via your website.

  "email": "",
  "incomplete": true,
  "channel": "app",
  "items": [
      "qty": 2,
      "title": "Water Bottle",
      "price": 1099,
      "id": 1234,
      "url": ""

How is this better than the previous API-only implementation of abandon cart?

For Sailthru’s standard commerce implementation, there’s NO additional development needed to use Lifecycle Optimizer’s Abandon Cart Entry.

Standard implementation includes the use of our latest on-site JavaScript tag, and the use of either the Purchase API or the on-site tag “add to cart” function. Just like Lifecycle Optimizer, all three methods are included free with any Sailthru account.

Additionally, this method takes into account your user’s realtime browsing activity rather than setting a fixed amount of time to wait after the last cart addition in order to consider the cart abandoned.

Can I switch to the Lifecycle Optimizer Abandon Cart functionality from my existing server-side use of the Purchase API?

Yes! The Purchase API is still needed to send Sailthru the items added to a cart, but you no longer need to hard-code a template name and wait time. If you’re using this server-side integration, you should remove those parameters (reminder_template and reminder_time) before activating an Abandoned Cart flow to prevent users from receiving multiple messages for the same abandoned cart. Developers should continue using the “incomplete” parameter when sending non-purchased items to represent that they have been added to a cart. For more information on preparing either Abandoned Cart method, see Abandoned Shopping Carts in the Transactionals section.