EmailTimer.App

Constant Contact

Countdown timers and personalized images for Constant Contact email

Your subscribers see how long is left on the offer, counted from the moment they open the message, and it goes into the Constant Contact campaign you have already built. One snippet, in the merge syntax Constant Contact already uses.

Animated countdown in the digital style, reading 02 days 03 hours 34 minutes 12 seconds and counting down
A render from the engine at 600 by 200, the size that goes into a Constant Contact image block.

Constant Contact merge syntax

The tags you already use, around the image

The same merge fields that put a subscriber's name in your subject line go in the link and the alt text around the image, where Constant Contact fills them in as it sends. They never go inside the image address, for the reason in the warning further down. A name or a deadline drawn inside the image itself comes from an address signed for each subscriber, held in a contact field.

First name
[[FirstName]]
Coupon code
[[custom.coupon_code]]
Deadline
[[custom.offer_end_date]]
Email address
[[EmailAddress]]

The snippet to paste into Constant Contact

Put it in image block, through its image url or dynamic image tab, or the custom code editor. There are two shapes, and which one you want depends on whether every subscriber gets the same deadline or their own. The editor generates whichever you pick, already filled in with your ids.

One thing to know before you paste anything. A merge tag cannot go inside the image address. The address is signed, and the signature covers every part of it, so if Constant Contact swaps a name into it after signing, the signature no longer matches and every subscriber gets the fallback graphic instead of your timer. It happens quietly, because the image service always answers with a valid picture rather than an error. Both snippets below put the merge tags in the link and the alt text, where they belong and where they work.

One image for the whole send

On every plan, including the free one. Everybody requests the same address, and the clock is worked out at the moment each person opens, which is what lets one address show a different time to every reader. The name and the code go in the link and the alt text.

<a href="https://yourstore.com/sale?code=[[custom.coupon_code]]" target="_blank" rel="noopener">
  <img src="https://img.emailtimer.app/i/k7mQ2pXd.gif?w=w_8ha3fq&v=3&sig=YOUR_SIGNATURE" alt="[[FirstName]], your 25% off ends at midnight tonight" width="600" height="200" border="0" style="display:block; width:100%; max-width:600px; height:auto; border:0;" />
</a>

A different image for each subscriber

On Growth and Agency. Generate one signed address per subscriber, import the column into Constant Contact as a contact field called et_image_url, and point the snippet at that field. This is the only way a deadline that differs per subscriber can work, because the deadline is inside the signature too. A contact whose field is empty gets no image, so check the field is filled across the whole segment before you send.

<a href="https://yourstore.com/sale?code=[[custom.coupon_code]]" target="_blank" rel="noopener">
  <img src="[[custom.et_image_url]]" alt="[[FirstName]], your 25% off ends at midnight tonight" width="600" height="200" border="0" style="display:block; width:100%; max-width:600px; height:auto; border:0;" />
</a>

The addresses come from the batch endpoint in the REST API, or from a CSV export if you would rather not write code.

Setting it up in Constant Contact

Four steps, and the longest one is deciding what the timer should look like.

  1. 1

    Build the image in EmailTimer.App

    Set the timer style and the deadline, publish, and copy the signed image address from the publish screen.

  2. 2

    Add an Image block

    Constant Contact says HTML cannot be inserted into its regular email builder, so the timer goes in as an image. Drag in an Image block and open the Image URL tab.

  3. 3

    Paste the address, or a field for it

    Paste the signed address into the Image URL field for one deadline shared by the send. For a deadline per contact, use the Dynamic Image tab with [[custom.et_image_url]] instead.

  4. 4

    Send a copy to yourself

    Constant Contact documents that dynamic links do not display in previews or test emails. Make a copy of the email and send it to your own address, with your contact record holding a real signed address.

Things that only matter in Constant Contact

Constant Contact writes contact details as [[FirstName]] and a custom field as [[custom.field_name]], with spaces in the field name replaced by underscores, and says capitalization is not important. Fallback text goes inside the tag after "or". A custom code email cannot exceed 400 KB or contain the character combinations [#, ${ or <@.

What your Constant Contact subscribers will actually see

Once Constant Contact delivers the message, the mail client decides what the image does. Classic Outlook on Windows shows the first frame when animation is off, Apple Mail with Mail Privacy Protection fetches remote images in the background around delivery, and Gmail serves images through its own proxy.

What each client is documented to do

Email client Fetch moment Cache lifetime GIF animation What EmailTimer.App does Basis
Apple Mail (iOS 15+, macOS Monterey+) Apple Mail Privacy Protection (MPP) Delivery time (pre-fetched by Apple server) Testing reports 2 to 3 days Full 30-second live animation The timer counts down from the time remaining at delivery. A fixed deadline, such as 23:59 UTC, is still the right deadline. Documented by Apple
Gmail (web, iOS, Android) Google image proxy First open by recipient Not published by Google Full 30-second live animation First open displays a real-time countdown. A re-open can be served from the copy the proxy already holds. Documented by Google
Outlook on Windows (2016 to 2024) Word rendering engine Open time Not documented First frame only (static image) Frame 1 is a complete image with the time left at the fetch, so a reader who sees only that frame sees a correct still countdown. Expected, not yet documented or tested
Outlook on the web and mobile (iOS, Android) Native browser or app engine Open time Not documented Full 30-second live animation Expected to play the animation, 30 frames at one frame per second by default. Expected, not yet documented or tested
Yahoo Mail and AOL Yahoo image proxy Open time Not documented Full 30-second live animation Expected to fetch the image when the message is opened and play the animation. Expected, not yet documented or tested

The Apple and Gmail rows rest on Apple's and Google's published documentation and on third-party testing. Neither company publishes a cache lifetime: Apple documents the prefetch, Google documents the proxy, and the two to three days is FreshInbox's 2021 testing. The Outlook and Yahoo rows are what we expect those clients to do, with no vendor document behind them. No row comes from a test by us yet, and we will publish dated screenshots when we have them. Sources: Apple on Mail Privacy Protection, Google on the Gmail image proxy, FreshInbox on Mail Privacy Protection image caching.

Constant Contact in practice

Constant Contact countdown timer setup guide

By Danish Mohammed, founder. 5 min read

The usual instruction for a timer is to paste a snippet into a code block, and Constant Contact’s regular email builder does not take one. It has two image options that get the same result instead, and one of them reads a value from each contact’s record.

Does Constant Contact have its own countdown timer

No. When somebody asked in Constant Contact’s community how to insert an HTML countdown timer, the reply marked best came from a community admin badged as a Constant Contact employee, in December 2023. It suggested the custom code editor, and said “HTML code and RSS feeds cannot be manually inserted into the regular email builder.” It is the only reply, and it names no timer block.

So a countdown in a Constant Contact email is an image from a timer service. There are three places to put it.

Route one: an Image block with an image URL

This is the route for one deadline shared by everyone on the send. Constant Contact’s article Insert, replace, or remove images in an email covers images “hosted online that are publicly viewable”. Add an Image block, click the Image URL tab, and paste the link into the Image URL field. Click Preview, enter an image description in the Alt Text field, and click Insert.

Paste the signed image address from the publish screen, and nothing else. The free plan covers this route. Readers who open hours apart still see different numbers, since the time left is worked out when their mail client requests the image. Set the link on the image to your sale page, and write the deadline as text near it for anyone with images off.

Route two: a Dynamic Image with a custom field

The same article has a Dynamic Image tab, with a Dynamic Variable field. Its example is a logo stored in account settings. A tip underneath says dynamic images work with Contact and Custom variables as well as Account variables.

That is the route for a deadline per contact. On Growth or Agency, generate one signed address per contact, either with the REST API’s batch endpoint or by exporting a recipient set as a CSV. Import the addresses into a custom field, then put the field’s variable in the Dynamic Variable box. Constant Contact’s dynamic links article gives the form as [[custom.my_custom_field_name]], so a field called et_image_url is:

[[custom.et_image_url]]

Pick the field type with the length in mind. According to the custom fields article, a single line text field “allows up to 250 characters to be entered into the field.” A signed address with a recipient token comes to about 165 characters on the default image host, so it fits. On an Agency white-label domain, your own hostname replaces img.emailtimer.app, so count its length instead.

Route three: the custom code editor

If you build the email as custom code, the full snippet goes into the HTML. Constant Contact’s custom code personalization article lists the tags. A first name is [[FirstName]], an email address is [[EmailAddress]], and a custom field is [[custom.field_name]], with spaces in the field name replaced by underscores. It also says “Capitalization isn’t important.”

<a href="https://yourstore.com/sale" target="_blank" rel="noopener">
  <img src="[[custom.et_image_url]]" alt="[[FirstName]], your offer ends soon" width="600" height="200" border="0" style="display:block; width:100%; max-width:600px; height:auto; border:0;" />
</a>

For a shared deadline, replace the src value with the signed address itself. Fallback text is written inside the tag, as or followed by quoted text. Those inner quotes close a double-quoted attribute, so leave fallbacks out of alt.

The developer portal adds a hard rule for custom code emails. They “cannot exceed 400 KB or contain the character combinations” [#, ${ or <@. A signed address contains none of them.

Constant Contact documents dynamic links with a variable on the end of a URL, as https://www.yourdomainhere.com/exampleaction?exampleparameter=[[variable]]. That is correct for a link to your site.

It is the wrong shape for a timer image. A timer address from here is signed with an HMAC over all of its parameters, so a contact’s value appended at send time turns it into an address the signature does not match. Every contact then gets a grey “image unavailable” card, with HTTP 200. Variables are fine in the link around the image. The image itself takes a complete signed address, or a field holding one.

What your contacts will see

After delivery, the mail client decides. On Outlook, Microsoft’s support page explains that “If only the first frame of the animation appears, you have animations, or animated GIFs, disabled.” The first frame of a timer from here already has the time left drawn in, so that contact still sees the right number. Apple’s Protect Mail Activity “downloads remote content in the background by default”, which can fix that number at delivery rather than at the open.

The email client support page compares the rest. If the image does not appear at all, start with why a timer is not showing. Both pages work from what the vendors document, because I have not yet watched one of these timers land in a real inbox.

Test before you send

For route one, a normal preview and test send are enough, because the address has nothing to resolve.

Routes two and three need a real send. Constant Contact says “Dynamic links won’t display when previewing or sending a test email.” It says that of links, not images, and gives no separate test route for a dynamic image, so I would treat one the same way. Its instruction is to “make a copy of the email and send it to your email address”, and to “make sure that you have information saved in your account for the appropriate variable.” For a custom field, that means your own contact record. For custom code, the personalization article says a preview shows “the information from your account profile”. Either way, put a real signed address on your own record before you check anything.

Questions and answers

Does Constant Contact have a countdown timer block?

No. A Constant Contact community admin’s answer pointed to the custom code editor, not to a timer block. A countdown is an image from a timer service.

Can I paste countdown timer HTML into a regular Constant Contact email?

Not according to Constant Contact, which says HTML cannot be manually inserted into the regular email builder. Paste the image address into an Image block’s Image URL tab instead.

Will a Constant Contact custom field hold a signed image URL?

A single line text field allows up to 250 characters. A signed address with a recipient token is about 165 characters on the default host, so it fits.

Why does my Constant Contact test email not show the per-contact timer?

Constant Contact documents that dynamic links do not display in previews or test emails, and gives no separate test route for dynamic images. Send a copy of the email to yourself, with your contact record holding a real address.

Which plan do I need for a Constant Contact timer?

One deadline for everyone on the send works on the free plan, with 5,000 image opens a month. A deadline per contact needs addresses minted per contact, on Growth at $49 a month. The full plan list is on pricing.

Sources

Related

Campaigns to build in Constant Contact

Each playbook says which timing model the campaign needs, which snippet it takes, and what to get right before you send it.

Setting this up on another platform

The snippet is the same everywhere. Only the merge syntax changes, and each page below carries the exact syntax that platform expects.

All 21 platform setup guides

Put a timer in your next Constant Contact send

Free for 5,000 opens a month, $19 for 250,000, and the snippet above is the whole integration.