Step by step
Set up an abandoned cart countdown in five steps
Create an evergreen timer that starts on open
In the editor, open Timing, pick Evergreen and choose Starts on open. Set the window to match how long your cart code really lasts, usually 24 or 48 hours. Evergreen timers are on Basic and up. If you connected Shopify (Pro and up), flashtimer creates a starter timer called “Abandoned Cart Recovery” the first time a checkout is started in your store, once Shopify sends flashtimer checkout events: it only does that after the connection is approved for protected customer data. The starter is set to 30 minutes, so lengthen it to match your offer.
Style it to sit under the cart contents
Pick a layout. Compact and minimal sit neatly under a product image, while boxes and circles suit a bolder last-chance email. Apply your brand kit colors and font so the timer looks like part of the email, not an ad. Set the label language, or choose “auto” to pick it per reader.
Decide what late openers see
Write the expiry message, for example “This code has expired. Your cart is still saved.” On Basic and up you can upload your own fallback image instead. A shopper who opens the email after their window closes never sees a countdown to an offer they can no longer use.
Paste the snippet into your flow email
Copy the embed snippet into an HTML or code block in the second and third emails of your flow. Where your platform has a per-recipient merge tag, such as {{ person.KlaviyoID }} in Klaviyo or *|UNIQID|* in Mailchimp, the snippet already carries it, which is what gives each shopper their own clock; on one without, such as Braze, shoppers share one countdown. One-click insertion adds the timer to a draft campaign you pick, not to a flow, so for automated flows, paste the snippet.
Test with a real profile, then switch the flow on
Trigger the flow with a test address, open the email on your phone, then open it again an hour later on desktop. The second open should show an hour less, not a fresh countdown. Check classic Outlook on Windows too, and confirm your text deadline matches the timer before you turn the flow live.
How an abandoned cart countdown timer works
A fixed timer counts to one date for everyone, which is wrong for cart recovery: shoppers abandon on different days, so a shared deadline is already over for some and weeks away for others. An evergreen timer that starts on open solves this. The first time a shopper opens the email, their own countdown begins, for example 48 hours, and it keeps running from that moment no matter how often they reopen.
That last part matters. A countdown that restarts on every open always says 48 hours. Shoppers notice, and a deadline that never arrives stops working. With flashtimer the second open shows the time actually left. The per-recipient value in the link is hashed before it is stored.
The timer is an animated GIF rendered at the moment of opening, so it always shows the real time left. Because it is just an image link, it works in any platform that shows images. Read more about evergreen countdown timers that start on each reader's first open.
Abandoned cart email sequence timing: 1 hour, 24 hours, 48 hours
According to the Baymard Institute's cart abandonment research, the documented average online cart abandonment rate is 70.22%, and 42% of US shoppers say they were “just browsing” when they left. Many shoppers who abandon will come back without a discount, so save the countdown for the emails where a deadline actually exists.
A three-email flow is the common starting point. Treat these delays as defaults to test against your own data, not fixed rules:
- Email 1, about 1 hour after abandonment. A plain reminder: product image, price, “Return to cart” button. No discount, no timer. Subject: “Still thinking it over?”
- Email 2, about 24 hours. Introduce the offer, for example 10% off with a code that expires 48 hours later, with the evergreen timer under the button. Subject: “10% off your cart, for 48 hours”.
- Email 3, about 48–72 hours. Last chance. Embed the same timer: because it started at the shopper's first open of email 2, it now shows only the hours they have left. Subject: “Your code ends tonight”.
- Exit condition. Make sure the flow stops as soon as the shopper places an order, so nobody gets a countdown for something they already bought.
Abandoned cart email copy that pairs with a timer
The timer does the urgent part, so the copy can stay calm and specific. Lead with the cart itself, then the offer, then the deadline in plain text. For example: “You left the Linen Throw in your cart. Use CART10 for 10% off. Your code expires 48 hours after you open this email.” Then the timer, then the button.
Always restate the deadline in words. Classic Outlook for Windows (2007–2019, and newer versions with Windows animations turned off) shows only the first frame of a GIF, which is still the correct time left at the moment of opening but does not tick. Text also covers readers who block images. Put the deadline in the preheader as well, for example “Your 10% code expires in 48 hours.”
For more subject line patterns, see our subject lines for time-limited sales. Keep them short, name the product or the offer, and never promise a deadline that does not exist.
Honest urgency in cart recovery emails
A countdown is a promise. If the discount still works the day after the timer hits zero, shoppers learn your deadlines are decoration, and every later countdown loses its pull. Only add a timer when the code really expires on the same window. If your platform generates unique discount codes, set their expiry to match the timer's length.
No discount in the flow? Then skip the timer, or count to something real, like the end of a sitewide sale that is already running. Do not use a countdown to suggest you are holding stock unless your store actually reserves it. We cover the reasoning in the psychology of urgency in email.
Shopify and Klaviyo abandoned cart countdown timer setup
Klaviyo. Open your Abandoned Cart flow, add a block to email 2 and email 3, and paste the snippet. It uses {{ person.KlaviyoID }}, so every profile gets its own countdown. See the full Klaviyo countdown timer setup.
Shopify. Connect your store on Pro and up and flashtimer creates the starter abandoned-cart timer on your first started checkout, once Shopify has approved the connection for protected customer data (until then it doesn't send checkout events). It only uses the checkout event as a signal and never reads customer or cart data. Embed it in whichever platform sends your recovery emails. In Shopify Messaging, paste the HTML snippet into a Custom Liquid section rather than an image section, which would upload a frozen copy. For a per-shopper countdown, check that your platform's snippet includes a per-recipient merge tag. More in the Shopify email countdown timer guide.
Any other platform. Omnisend, Mailchimp, HubSpot, ActiveCampaign, Brevo and the other platforms with a per-recipient merge tag each have a ready-made snippet that includes it. Paste it into an HTML block and test with two different addresses to confirm each gets its own clock.
Email client caveats for cart recovery timers
Gmail, Apple Mail, Yahoo and Outlook on the web, Mac and mobile all animate the timer. Gmail caches images through its proxy, so flashtimer serves the timer with no-cache headers and a reopen shows the current time.
Apple Mail Privacy Protection pre-fetches images before the shopper reads the email. By default those fetches get the live countdown, which starts an evergreen clock at delivery. On Pro and up, Apple Mail options let you show those loads a fixed message, your fallback image or nothing instead, so cached opens never show a stale countdown. Classic Outlook on Windows shows the first frame only, which is why the text deadline is not optional.
Questions
Answered before you ask.
Keep reading
- ExampleAbandoned cart email examples: a hold that ends on the shopper's own dateAn abandoned cart email for a leather goods brand, with a countdown to the end of each shopper's own cart hold. See the copy, layout and timer settings.
- Evergreen timersEvergreen countdown timer for email: a personal deadline for every readerGive every reader their own deadline with an evergreen countdown timer email: starts on open or on send, built for flows. Set up in minutes. Start free.
- Klaviyo integrationKlaviyo countdown timer for campaigns and flowsAdd a live Klaviyo countdown timer to campaigns and flows, with evergreen deadlines per subscriber via {{ person.KlaviyoID }}. Set it up in minutes. Start free.
- Shopify integrationShopify email countdown timer for your sales and discountsAdd a live Shopify email countdown timer to Shopify Messaging campaigns, and turn Shopify discounts into timers that update themselves. Start free today.
- Welcome offersWelcome email discount countdown timer: a real deadline for every new subscriberAdd a welcome email discount countdown timer that gives each new subscriber their own 48–72 hour window, starting on first open. Set it up free today.
- Flash salesFlash sale countdown timer email: run a 24–72 hour sale that ends on timeBuild a flash sale countdown timer email for 24–72 hour sales: send schedule, subject lines, last-chance resend and timers that update on open. Start free.
