Dynamic countdown timers for email campaigns: fixed, evergreen and per-contact
The first countdown timer most teams use counts down to one date: Black Friday ends Monday at midnight, done. It's effective, and it's also the least interesting thing a timer can do.
Dynamic countdown timers go further. They can give every subscriber a different deadline based on when they signed up, when they first opened, or a date stored on their record. That's what makes timers useful beyond sales: in onboarding, trials, renewals, abandoned carts, and every automated flow where people arrive at different times.
Three kinds of email countdown timers
Fixed-date timers
One deadline, the same for everyone. A flash sale, a product launch, an event start time. Every subscriber sees the countdown to the same moment, and the time shown depends only on when they open.
This is the right choice for anything tied to a real calendar date. It's also the simplest to set up, since the timer needs no information about the reader.
Evergreen timers
Evergreen timers give each subscriber their own countdown, starting from their first open. Open a welcome email on Tuesday and you might see "48 hours left to claim your 15% off." Your colleague who opens the same email on Thursday sees the full 48 hours too.
To make that work, the timer needs to know who's opening. You pass a unique subscriber identifier on the image URL through a merge tag, so the timer can start the clock for that person and keep it consistent across repeat opens.
Merge tag (per-contact deadline) timers
The most flexible kind. The deadline itself comes from the subscriber's data: a trial end date, a renewal date, a reservation time, a points expiry. You store the date on the contact record and pass it on the image URL. Every subscriber counts down to their own real date.
Where dynamic countdown timers earn their keep
Welcome and onboarding flows
A welcome discount with a 72-hour evergreen timer creates urgency that's honest. Every new subscriber really does get 72 hours from when they first see the offer. Compare that with a vague "limited time" line that nobody believes.
Free trials
Trial reminder emails are the classic merge tag use case. Store each user's trial end date, pass it to the timer, and every reminder shows exactly how much time is left on their own trial. It's far more persuasive than "your trial ends soon."
Abandoned carts
If you hold carts or offer a recovery discount for a set window, an evergreen timer in the reminder email shows exactly how long the reader has. Pair it with an image of the product they left behind and the email does most of the persuading.
Renewals and expiring rewards
Subscription renewals, loyalty points about to expire, a membership grace period. All of these have a real, per-person deadline stored somewhere in your systems. A merge tag timer turns that date into something the reader can see at a glance.
Events and bookings
Countdown to a customer's own reservation, class, or appointment. "Your table is in 2 days, 4 hours" is a surprisingly effective reminder, and a nice touch for hospitality brands.
How to set up a dynamic timer with Alterable
Alterable supports all three timer types in the same builder.
- Create a new countdown timer and choose Standard, Evergreen, or Merge tag.
- For Evergreen, set the duration (for example, 72 hours). For Merge tag, decide which contact field will hold each subscriber's deadline, since it arrives on the image URL.
- Style the timer and set the expired state: hold at zero, show a message, or swap to another image.
- Copy the embed code and replace the placeholder with your platform's merge tag. In Mailchimp, an evergreen timer uses *|UNIQID|*; in Klaviyo you'd use a profile property; other platforms have their own equivalent.
- Paste the embed into an HTML or code block in your email or flow.
Alterable's setup guides walk through the exact merge tag for each major platform, which saves a lot of trial and error.
Evergreen timers and advanced rules like hours-since-first-open are part of Alterable's Pro plan ($49 a month for 500,000 impressions). Fixed-date timers are available on every plan, including the free one.
Getting the data right
Dynamic timers fail quietly when the data is messy. The timer can't count down to a date it can't read.
Store deadlines as full timestamps with timezone information, like 2026-10-01T18:00:00Z, rather than "Oct 1." Some platforms, Mailchimp included, store date fields without a time, so a plain text field holding the full timestamp is often more reliable. And set a sensible fallback for contacts with no date, so they see a generic message rather than a broken image.
Testing dynamic timers
This is where teams get caught out. Many email platforms don't fill in contact-specific merge tags in test sends, so the timer URL arrives with the raw tag in it and the image fails. Nothing is actually wrong.
Use your platform's preview with a real contact selected, or send the real campaign to a small segment containing only your own addresses. Check a contact with a date, a contact without one, and an open after the deadline.
Keep urgency honest
Dynamic timers make it easy to fake urgency: a countdown that resets every time someone opens, a "deadline" that never actually expires. Don't. Subscribers notice, and some jurisdictions are starting to treat false urgency in commercial email as a legal problem, not just a trust one.
Evergreen timers solve this properly. Each person gets a real window that really closes. When it's gone, the timer shows it's gone.
If your flows still say "limited time" without saying how limited, that's the first thing to fix. One timer in one welcome or trial email is enough to see what an honest deadline does.
