How to add a countdown timer to Brevo emails

In short

Brevo has no countdown block, but its help center lists countdown timers among the uses of the HTML block in the Drag & Drop editor. Create the timer here, copy the HTML and paste it into that block in a campaign or an automation email. For a per-contact deadline, add ?rid={{ contact.EMAIL }} to the URL.

Updated on · AP Agency

Brevo (formerly Sendinblue) doesn't have a countdown block in its email editor. Its help center points to the HTML block instead, which Brevo says is meant for widgets, countdown timers and code from outside tools. You paste in a table holding the timer image, and that image is requested from our server every time someone opens the email.

Based on Brevo'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

    HTML block. This is the one we recommend. You drag it into the design, paste the code and Brevo shows it on the canvas right away. Brevo recommends it for advanced users because badly built HTML can break the layout in some email clients; our code is a table with one image and no JavaScript. Brevo's help center doesn't tie this block to any plan.

    Image block with a URL. This also works for a fixed-date timer. Paste the GIF's address (the URL tab in the generator) into the Image URL field. According to Brevo, that image isn't saved to your library and loads from the URL every time the email is opened. If you drag the file in or upload it to the library instead, Brevo stores a copy with the frame from that moment and the timer freezes.

    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 Brevo, create or open the email campaign and go to the Design step with the Drag & Drop editor.
    4. Drag an HTML block to where you want the timer. Right below the header or just above the main button usually works.
    5. Replace the block's content with your code. In the new editor, you edit the block from the left panel.
    6. Save and check the design in Preview & test.

    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.

    Before you schedule the send, check the campaign's additional settings. Leave Embed images in the email off: it puts the images inside the email, so the GIF would travel with the frame from the send. For NiftyImages personalized images, which work the same way as the timer, Brevo also asks you to set Hide Images URL to No; do the same here.

    Put the deadline in the copy near the timer 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

    In an automation, the email comes from the Send an email step: you add the step, create a new message or pick an existing one, and design it in the same Drag & Drop editor. Repeat steps 4 to 6.

    Watch out for synced messages. If several steps share the same message, Brevo applies any change to all of them.

    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, an abandoned cart), use an evergreen timer with the contact tag. Brevo says up to 2,000 unique contacts can enter your active automations on the Free plan.

    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={{ contact.EMAIL }}
    

    Brevo writes contact variables as {{ contact.ATTRIBUTE }}, using the attribute's exact name. We'd rather use an internal ID than the email, since the email travels in the image URL. Brevo does store a CONTACT_ID for each contact, but its help center says it can only be retrieved by exporting your contacts and doesn't list it as a variable for emails. So we use {{ contact.EMAIL }}, which is documented. Brevo describes this exact setup (an outside image with {{contact.ATTRIBUTE}} in its URL, inside an HTML block) in its NiftyImages guide.

    The engine hashes the value and never stores the email in plain text. If the tag arrives empty or unreplaced, the engine ignores it and counts from that moment.

    How to test before you send

    1. Preview as a customer. In Preview & test, on the Preview tab, pick a contact and Brevo fills in the variables with their data. For a per-contact timer, pick your own contact: if the preview loads the image with a real customer's email, their window starts right then.
    2. Test email. From the Send test email tab, send it to your test list. According to Brevo, each recipient gets it as if they were a customer, with their own attributes, so the tag gets replaced. Open the email twice a few minutes apart: with a per-contact timer, the second open should show less time.
    3. Email clients. The View in inbox tab renders the email in different clients. Brevo says it's only on the Starter, Standard, Professional and Enterprise plans.
    4. Outlook. Microsoft says Outlook for Microsoft 365, 2021 and 2024 animate the GIF when Windows animations are on; otherwise you'll see the first frame with the time left.

    Known issues

    Other platforms

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

    Common questions

    Which Brevo block should I use?

    The HTML block in the Drag & Drop editor. Brevo's help center describes it as the block for pasting code from outside tools and names countdown timers as one of its uses.

    Can I use the image block instead?

    Yes, if you paste the GIF's address into the Image URL field. According to Brevo, that image isn't saved to your library and loads from the URL every time the email is opened. If you drag the file in or upload it to the library, Brevo stores a copy and the timer freezes.

    Does it work in Brevo automations?

    Yes. The Send an email step opens the same Drag & Drop editor, so the HTML block works the same way. Brevo says up to 2,000 unique contacts can enter your active automations on the Free plan.

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

    {{ contact.EMAIL }}, the email variable Brevo documents. Brevo also stores a CONTACT_ID, but its help center doesn't list it as a variable for emails. Our engine hashes the email and never stores it in plain text.

    What happens if I turn on Embed images in the email?

    That option puts the images inside the email itself. The GIF would travel with the frame from the moment of sending and stop counting. Leave it off.

    Does the test email fill in the tag?

    According to Brevo, test recipients get the email as if they were customers, with their own attributes. They need to be on your test list with up-to-date data.

    Will it show in Outlook?

    Microsoft says Outlook for Microsoft 365, 2021 and 2024 play animated GIFs when Windows animations are on. Otherwise readers see the first frame, which already shows the time left.

    Sources

    1. Drag & Drop editor blocks: no countdown block; the HTML block is for widgets, countdown timers and third-party embed code. help.brevo.com, accessed on
    2. HTML block vs HTML editor; JavaScript doesn't work; Embed images in the email embeds the images (5 MB total, 1 MB of HTML); variables are escaped by default. help.brevo.com, accessed on
    3. Image block: dragging or uploading saves the image to the content library; with the Image URL field the image isn't saved and loads from the URL when the email is opened. help.brevo.com, accessed on
    4. {{ contact.ATTRIBUTE }} syntax, default and custom attributes; {{ contact.EMAIL }} example. help.brevo.com, accessed on
    5. CONTACT_ID is a default attribute that can only be retrieved by exporting contacts; EMAIL stores the email address. help.brevo.com, accessed on
    6. Third-party personalized image in an HTML block with {{contact.ATTRIBUTE}} in the URL; set Hide Images URL to No. help.brevo.com, accessed on
    7. Preview as a customer by selecting a contact; test email to the test list with each recipient's attributes; View in inbox only on Starter, Standard, Professional and Enterprise. help.brevo.com, accessed on
    8. Send an email step in an automation: the email is designed in the Drag & Drop editor; synced messages share changes. help.brevo.com, accessed on
    9. Free plan: up to 2,000 unique contacts in active automations. help.brevo.com, accessed on
    10. Sendinblue renamed itself Brevo. brevo.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