How to add a countdown timer to ActiveCampaign emails

In short

ActiveCampaign has a Timer block for fixed dates. If you need a separate deadline for each contact or Kauntodaun's styles, create the timer here, copy the HTML and paste it into the HTML block in the Email Designer, in a campaign or an automation. For the per-contact deadline, add ?rid=%SUBSCRIBERID% to the image URL.

Updated on · AP Agency

ActiveCampaign has a Timer block in its Email Designer. For a fixed-date offer, it may do the job as is. This page is for the case that block doesn't cover, going by its documentation: a separate deadline for each contact. It's also for anyone who prefers Kauntodaun's styles or wants the same timer across several tools. The timer goes into an HTML block.

Based on ActiveCampaign's official documentation, reviewed on October 1, 2026.

Make your own

The generator is already set up for this page. Change what you need and press Create timer.

Live Preview of a countdown GIF with days, hours, minutes and seconds

Animated GIF. Recalculated every time the email is opened.

Start from
Timer typeRecurring: Starter plan
Duration for each recipient

With your platform's merge tag in the URL (Starter plan), each person gets their own deadline from the first open. Without it, every open shows the full duration.

Repeats
Days of the week

When it reaches zero it starts again, counting to the next date.

StyleYou can try Pro styles here
Free
PRO
UnitsHide days and the hours absorb them
Colors

Smooths the digit edges so they blend into that background.

Background image STARTER

Put a photo or a texture behind the digits. It needs an account on the Starter plan. Create account · See plans

More font and text options

More than 1,500 families from the Starter plan. On that plan the preview loads them from our server; without it, you see Inter.

Size
Label language
Labels
When it reaches zero

Free, no signup. You get the code to paste into your email.

This option is on a paid plan

You can try it in the preview, but to use it in an email you need the plan Starter.

    Which block to use

    ActiveCampaign's Timer. You pick the end date and time, time zone, background color, size and font, and you can add an image for when it expires. ActiveCampaign points out that the time zone is the one you set, not the contact's. Its documentation doesn't mention per-contact deadlines.

    HTML block with the Kauntodaun timer. You paste a table holding the timer image, which is requested from our server every time someone opens the email. ActiveCampaign treats this as an advanced option and its support team doesn't review custom code; ours is a table with one image, no iframes or scripts. The documentation doesn't tie this block to any plan.

    Not the image block. The image block works with the Content Manager: you pick an image you've already uploaded or upload one with Add file. ActiveCampaign's help center doesn't offer a way to link an external URL in that block. An uploaded image is a copy with the frame from that moment, so the timer would freeze.

    Step by step in a campaign

    1. Build the timer in the generator with your end date and time zone. If your template is 600 px wide, keep the width at 600 or less.
    2. Copy the code from the HTML tab.
    3. In ActiveCampaign, create or open the campaign and go into the Email Designer.
    4. Open the Blocks dropdown on the right menu, scroll down to HTML and drag it to where you want the timer.
    5. Click the block to open the code editor and paste your code.
    6. Click any other block to close the editor, then save.

    If you use the Classic Designer, it has its own HTML block and the code is the same.

    The code already has its & escaped and the background color set on the table and the cell, so you won't get white edges around the GIF.

    Put the deadline in the copy too, for example "Ends Sunday, November 29 at 11:59 p.m. Eastern." Anyone who only sees the first frame, or has images blocked, still knows when the offer ends.

    In an automation

    Automation emails come from the Send an email action. Creating a new email opens the same Email Designer, so you repeat steps 4 to 6. If the automation is already active, ActiveCampaign asks you to set it to inactive before editing and switch it back on when you're done.

    With a fixed date, the automation can send the email on any day and the GIF will show what's left until that date. If each contact needs their own window (a 48-hour welcome coupon, the end of a free trial), use an evergreen timer with the contact tag.

    Per-contact countdowns

    An evergreen timer counts a duration, say 48 hours. What changes is when it starts:

    For the second option, add the tag to the image URL inside the code:

    https://kauntodaun.com/t/k3x9q2m7ab.gif?rid=%SUBSCRIBERID%
    

    In ActiveCampaign's list of standard tags, %SUBSCRIBERID% is listed as the Contact ID, with a sample number. We prefer the ID to the email address (%EMAIL%), since the email would travel in the image URL.

    ActiveCampaign's help center explains how to insert tags into text blocks, but it doesn't say outright whether they get replaced inside an HTML block. Check it with the test-list send described below. We store the ID as a hash; if the tag arrives empty or unreplaced, the engine ignores it and counts from that moment.

    How to test before you send

    1. Preview a contact. On the campaign summary page, Test and preview > Desktop preview lets you type a contact's email and see their tags. For a per-contact timer, use your own contact: if the preview loads the image with a real customer's ID, their window starts right then.
    2. Test email. Use it to check the design, sent to up to 5 addresses. ActiveCampaign warns that tags don't render in these tests, so a per-contact timer will look like it counts from the open. You need a verified sending domain, and during the free trial you can only send tests to your own email.
    3. Live send to a test list. This is the method ActiveCampaign gives for checking tags. Make a list with two or three of your own addresses, send, and open each email twice a few minutes apart. The second open should show less time.
    4. Outlook. ActiveCampaign notes that Outlook 2007, 2010 and 2013 only show the first frame. Microsoft says Outlook for Microsoft 365, 2021 and 2024 animate the GIF when Windows animations are on.

    Known issues

    Other platforms

    See also the guides for Brevo, Mailjet, HubSpot and Klaviyo. For dated campaigns, the Black Friday and Cyber Monday countdowns are ready to go.

    Common questions

    Does ActiveCampaign have a built-in countdown?

    Yes. The Email Designer launched in 2022 includes a Timer block with an end date and time, time zone, colors, size and font, plus an optional image for when it expires. Its documentation doesn't mention separate deadlines per contact.

    Which block do I use to paste the Kauntodaun timer?

    The HTML block. You'll find it in the Blocks dropdown on the right menu; clicking it opens the code editor. The Classic Designer has its own HTML block too.

    Which tag do I use for a per-contact timer?

    %SUBSCRIBERID%, which ActiveCampaign's tag list says returns the contact ID. That way the email address (%EMAIL%) stays out of the image URL.

    Why does the timer start from the top in the test email?

    ActiveCampaign warns that personalization tags don't render in test emails. The engine receives %SUBSCRIBERID% unreplaced, ignores it and counts from that moment. To test it, send the real campaign to a test list.

    Does it work in automations?

    Yes. The Send an email action opens the same Email Designer, so the HTML block works the same way. If the automation is active, ActiveCampaign asks you to set it to inactive before editing.

    Will it show in Outlook?

    ActiveCampaign notes that Outlook 2007, 2010 and 2013 only show a GIF's first frame. Microsoft says Outlook for Microsoft 365, 2021 and 2024 animate it when Windows animations are on.

    Sources

    1. The Email Designer (2022) has ten blocks, including HTML and Timer; Timer with end date and time, time zone (not the contact's), background color, size, font and an optional expired image; the designer is used in campaigns and automations. help.activecampaign.com, accessed on
    2. HTML block: Blocks dropdown, drag it in, click to open the code editor, click another block to exit; support can't help with custom code; no iframes or script. help.activecampaign.com, accessed on
    3. HTML block in the Classic Designer. help.activecampaign.com, accessed on
    4. The image block uses images from the Content Manager or uploaded with Add file; the designer compresses images. help.activecampaign.com, accessed on
    5. %SUBSCRIBERID% = Contact ID (example 23); %EMAIL% = email address; tags in direct and automated campaigns depending on plan. help.activecampaign.com, accessed on
    6. Test email: up to 5 addresses, no personalization tags or conditional content; verified sending domain; free trial sends tests only to the trial user's email; Desktop preview with a contact's email; live send to a test list; Email Client Preview with 5 previews a month on Plus and Professional. help.activecampaign.com, accessed on
    7. Preview tags for a specific contact in campaigns and automations; some tags don't work in test emails. help.activecampaign.com, accessed on
    8. Send an email action; set an active automation to inactive before editing. help.activecampaign.com, accessed on
    9. Testing automation emails from the Messages tab, up to 5 addresses. help.activecampaign.com, accessed on
    10. Outlook 2007, 2010 and 2013 only show a GIF's first frame. help.activecampaign.com, accessed on
    11. Outlook for Microsoft 365, 2021 and 2024 play animated GIFs by default; with animations off only the first frame shows. support.microsoft.com, accessed on
    12. Apple Mail Privacy Protection downloads remote content in the background whether or not the email is opened. apple.com, accessed on
    13. Engine: rid hashed, empty or unreplaced tag (%…%) ignored, rid ignored on the free plan, first request with a rid sets the start. Kauntodaun technical documentation, accessed on
    Code copied