Brevo integration

Brevo countdown timer that shows the real time left

A Brevo countdown timer from flashtimer is a live GIF that is drawn the moment a contact opens your email, so it always shows the time actually left. Paste one image URL into any Brevo campaign on the free plan, or connect your Brevo API key on Pro and flashtimer places the timer in a draft campaign for you.

Free plan · 20,000 views a month · No card

Your store

The sale ends soon. Don't miss it.

Offer ends in

Brevo countdown timer in French reading jours, heures, minutes, secondes for a vente flashShop the sale

Step by step

How to add a countdown timer to a Brevo email

  1. Create the timer

    Describe the offer and Create with AI drafts it (Basic and up), or build it in the editor: deadline, a layout, your brand colors and the label language. Choose Fixed for one deadline for everyone, or Evergreen if each contact should get their own countdown.

  2. Copy the Brevo embed

    Open Embed for the image URL and an HTML snippet. For an evergreen timer, pick Brevo as the email platform there and the URL ends in ?vid={{ contact.EMAIL }}, so Brevo fills in each contact's address when it sends.

  3. One click: insert into a draft campaign (Pro and up)

    Connect Brevo under Settings → Integrations with a Brevo API key. In the timer editor, Send to ESP lists your Brevo campaigns; choose a draft and the spot in the layout, and flashtimer writes the timer into the campaign's HTML as its own table row.

  4. Or paste it in the Brevo editor (every plan, including Free)

    In Brevo's drag-and-drop editor, drag in an Image block, click it, and paste the timer URL into Insert image from URL in the left panel. For the evergreen version, drag in an HTML block instead and paste the snippet. Add the destination link so a click on the timer opens your offer.

  5. Restate the deadline, test, send

    Write the deadline in text under the timer, such as "Sale ends Sunday at midnight CET". Send a test to a contact that exists in your Brevo list, open it in Gmail, Apple Mail and Outlook, then schedule the campaign.

When a countdown belongs in your Brevo campaigns

Add a countdown when the email has a deadline a reader can actually miss: a sale that ends, an early-bird price, a registration cutoff, the last day to order before a holiday. The timer turns "ends Sunday" into a number that keeps shrinking, and because the GIF is rendered at open time, it is still right for the contact who opens on Saturday night.

Leave it out where nothing ends. A deadline that quietly resets teaches your list to ignore the next one. If your offer really does repeat, such as "order by 2pm for same-day dispatch", use a recurring countdown timer that resets on a clock rule in your time zone. For a one-off promotion, the flash sale countdown timer email guide covers timing and copy.

Evergreen Brevo timers with {{ contact.EMAIL }}

An evergreen timer gives each contact their own window, for example 48 hours from their first open. To tell contacts apart, the timer URL carries Brevo's own personalization variable: ?vid={{ contact.EMAIL }}. Brevo replaces it with the contact's address at send time, and flashtimer hashes the value before storing it. Keep the attribute name in capitals, exactly as Brevo shows it in your contact attributes.

The variable only works where Brevo personalizes content, so use the HTML block or the one-click insert, and send your test to a real contact in the list. A test to an address that is not a contact has nothing to fill in, and everyone in that test shares one countdown. More detail is on the evergreen countdown timer email page. Evergreen timers start on the Basic plan.

Countdown timers in Brevo automations

Automations are where per-contact timers pay off. In a Brevo welcome workflow, every new contact enters on a different day, so a fixed date would be wrong for almost all of them. An evergreen timer with a 7-day window lines up with a welcome email discount countdown for every contact, whenever they join.

The same idea works for an abandoned cart email triggered by your store, or a last-chance email at the end of a sequence. Paste the HTML snippet into the automation's email the same way you would in a campaign. For dates that already live on the contact, such as a trial end or renewal date, a personalized countdown timer (Pro and up) counts down to each contact's own date.

What your contacts see in Gmail, Apple Mail and Outlook

The timer works in every client that shows images: Gmail, Apple Mail, Yahoo, and Outlook on the web, Mac and mobile. Gmail fetches images through its proxy, so the timer is served with no-cache headers and a reopen shows the current time.

Classic Outlook for Windows (2007–2019, and newer versions with Windows animations turned off) shows only the first frame of any GIF. Your contacts there see the correct time left at the moment they opened, but it does not tick. That is why the deadline should also be in text. Apple Mail Privacy Protection fetches images before the contact reads the email. By default those loads get the live countdown as it stood then; on Pro and up, Apple Mail options can show them a message, your fallback image or nothing instead, so cached opens never show a stale time.

After the deadline, branding and troubleshooting

When the countdown hits zero, the timer shows your expiry message or, from Basic up, your own fallback image, such as "This sale has ended, see what's new". Late openers never see a countdown to a deal that's over. To match your Brevo template, set brand colors, upload your font on paid plans, or use a transparent background; the custom branded countdown timer page shows every option.

  • The timer is frozen in the email: you uploaded the GIF instead of linking it. Use Insert image from URL or the HTML snippet so Brevo loads it live on every open.
  • Every contact sees the same evergreen countdown: the variable didn't resolve. Check the spelling {{ contact.EMAIL }} and test with a real contact.
  • The one-click connection fails: Brevo's error message is shown as-is. If it mentions an IP address, your Brevo account restricts API keys to authorized IPs; allow the request in Brevo's security settings or use the paste method.

Questions

Answered before you ask.