How to Add a Countdown Timer to Mailchimp
October 12, 2026 · 4 min read
Mailchimp doesn't ship a countdown timer block. Not in the new builder, not in the classic builder. What it does have is a Code block that takes raw HTML, and an email countdown timer is just an image URL that renders live on every open. So the whole thing is: build the timer, copy a snippet, paste it into a Code block. Five minutes, plus one test send.
What you need
- A Mailchimp campaign in either the new or the legacy builder (the Code block exists in both).
- A Countello countdown. The free plan includes three active timers.
- One test email to yourself before the real send.
Step 1: Create the timer
In Countello, create a countdown and pick a mode. Fixed gives every subscriber the same deadline (a sale end, a webinar start. Evergreen starts the countdown when each email is sent) good for a welcome flow or a limited-time offer per subscriber. Style it to match your template and set the expired state: zeros, a message like "Offer ended", or your own image.
Step 2: Copy the HTML snippet
In the countdown's Embed panel choose Mailchimp. You get a short table-wrapped snippet with an <img> pointing at the live image:
<img src="https://img.bestcountdownapp.com/t/your-timer.gif" alt="Countdown timer" width="600">Keep the table markup around the image. It's the most portable structure across email clients. If you set a click-through URL, the image is wrapped in a link so clicking the timer goes to your offer page.
Step 3: Paste it into a Code block
- Open your email in the Mailchimp builder.
- Drag a Code block from the side panel into your layout where the timer should sit. Just above the call-to-action is a common spot.
- Click the block and paste the snippet into the Code panel.
- Save and send yourself a test.
Step 4: Optional: per-subscriber deadlines with merge tags
For a Personalized or Evergreen countdown, the image URL takes a per-recipient value. Mailchimp's merge tags (|TAG|) are replaced per subscriber and work inside Code blocks. Create a text audience field (e.g. DEADLINE) holding an ISO 8601 UTC or Unix-seconds value, then:
<img src="https://img.bestcountdownapp.com/t/your-timer.gif?end=*|DEADLINE|*&sig=*|COUNTDOWN_SIG|*">Two traps: Mailchimp date-type audience fields only render MM/DD/YYYY or DD/MM/YYYY depending on account settings (useless for a URL) so use a text field. And if you require signed URLs, the &sig= must be precomputed by your own backend and stored as another merge field; Mailchimp can't compute HMAC signatures. Official docs: https://mailchimp.com/help/getting-started-with-merge-tags/
Placement and sizing
One timer per email. Two ticking images compete rather than compounding. Place the Code block just above your main button so deadline and call-to-action are read in one glance. Keep the image at 600px wide or under: Mailchimp templates are typically 600px and the preview pane is narrow, so an oversized image can push the layout sideways on mobile.
Campaigns vs automations
In a one-off campaign, a Fixed countdown to a shared deadline is the right fit. Paste once, every recipient shares the end time. In an automation (abandoned cart, welcome series) the email sends continuously, so a Fixed date will expire for later senders. Use Evergreen mode (each send starts the same duration) or Personalized mode with a merge-tag deadline, as above.
Before you hit send
- Send a real test email. The Code block preview in Mailchimp doesn't fetch the live image.
- Open it on your phone and in a desktop client; check the timer is centered and legible.
- If you used merge tags, send the test to an actual subscriber profile. Previews don't replace merge tags.
- Click the timer: it should land on your offer page, not the image URL.
- Check the first frame reads correctly, that's all Outlook desktop will show.
A note on deadlines and honesty
A countdown only works if readers trust it. Keep the deadline real (an offer that quietly extends makes the next countdown inert) and design the expired state (zeros, a message, or a swapped image) so late openers see a finished email. The trust is the asset; the timer just displays it.
If something doesn't work
- The timer shows an old time when someone re-opens. Email clients and image proxies cache the GIF. The fetched image is always correct as of fetch time; a cached copy can drift. Put the deadline in plain text near the timer as a backup.
- The GIF doesn't loop. Countdown GIFs play once (up to 60 frames) and hold on the last frame. That's deliberate: a looping timer in a re-opened email would show a wrong time.
- Outlook desktop shows a static image. Outlook desktop renders the first frame only. Countello makes that frame a finished countdown, so it still reads correctly.
- A personalized timer shows the expired state for everyone. The merge tag isn't being replaced. Check the audience field exists, is a text field, and the tag name matches exactly (|DEADLINE|).
Related reading
Running a sale? See countdown timers for Black Friday emails. Working in a different platform? Klaviyo and Shopify Email have their own guides. Or start a free countdown now.
Free includes 3 active countdowns and 5,000 image views a month.
Create a free countdownKeep reading
- How to Add a Countdown Timer to Klaviyo EmailsAdd a live countdown timer to Klaviyo in minutes: design it in Countello, copy the snippet, paste it into an HTML block.
- Black Friday Countdown Timer Emails: A Practical GuideHow to run Black Friday countdown timers in email: when to send, which timer mode to use, how to design for Gmail caching and Outlook's first frame.
- Email Countdown Timer Compatibility: The Full GuideHow countdown timers behave in Gmail, Apple Mail, Outlook, dark mode and image-blocking clients. What actually happens to the GIF, and a design checklist.
