Abandoned checkout and left without purchase

Most triggers react to something that happened. These two react to something that did not happen: no order was placed within the waiting time you set.

Trigger Based on Reliability
Customer abandons checkout Shopify's checkout events As reliable as Shopify's events
Customer left online store without making a purchase The storefront web pixel Best effort, only with the visitor's analytics consent

Both have one option, Waiting time in minutes: 60 by default, from 10 minutes to 7 days (10,080 minutes). They are checked once a minute, so a run starts up to a minute after the waiting time.

Customer abandons checkout

Starts when a checkout with contact details (an email address, a phone number or a customer) has not changed for the waiting time and no order was placed from it.

  • The event is the checkout as Shopify last sent it, with its recovery link in event.payload.abandoned_checkout_url.
  • Each checkout starts the workflow once. A buyer who comes back and edits the checkout before the time is up restarts the waiting time.
  • Only checkouts that begin while the workflow is on are seen.
  • When the time is up, the app asks Shopify about the checkout once more. A checkout that was completed in the meantime starts nothing.
  • Two workflows with different waiting times can use the trigger side by side, for example a reminder after 1 hour and a discount after 24 hours. Each starts when its own time has passed.

Set it up

  1. Choose the trigger Customer abandons checkout and set Waiting time in minutes.
  2. Add a trigger filter. The template filters on two rules: event.payload.email has a value, and event.payload.buyer_accepts_marketing is equal to true.
  3. Add a Send email step to {{ event.payload.email }} with the recovery link.

The walk-through is in Recipe: abandoned checkout follow-up.

Customer left online store without making a purchase

Starts when a shopper viewed a product, added one to the cart or started the checkout, and then did nothing more for the waiting time, without completing a purchase.

The event tells you how far the shopper got:

Field Holds
abandonmentType browse, cart or checkout
identified true for a signed-in customer
customerId The customer, when signed in
productsViewed Up to 10 products the shopper looked at, with the last product

What to keep in mind:

  • It is a storefront behaviour trigger: reported by the shopper's browser, only with analytics consent, and some events never arrive. See Storefront behaviour triggers.
  • A shopper who is not signed in is followed by the anonymous id of their browser and has no customerId. You cannot write to them. Filter on identified is equal to true to reach customers only.
  • A purchase the browser never reports (closed tab, ad blocker) is only noticed for signed-in customers, and only when the app has access to orders. Without that, a shopper who did buy can still start the workflow.
  • While a workflow with this trigger is on, the pixel reports product views, cart adds and checkout starts of every consenting visitor. The anonymous browser id is only used, in hashed form, to tell visits apart. It is not stored with a run.
  • New activity restarts the waiting time.

The template Tag customers who leave with a full cart uses this trigger.

Which one for emails?

For anything you send to a buyer, use Customer abandons checkout. It is based on Shopify's own events, carries the contact details the buyer entered, and knows whether the buyer accepts marketing. Use Customer left online store without making a purchase for softer signals, such as tagging a signed-in customer.

Check which messages you may send without marketing consent where you sell. The app cannot decide that for you.