Docs/Timer types

Evergreen timers

Give each subscriber their own deadline, from their first open or from a signup date.

An evergreen timer counts down a fixed length, such as 48 hours, separately for each reader. Use it in automations, where people receive the same email on different days.

How Inboxclock tells readers apart

The image URL carries a value that is different for each subscriber. Your email platform fills it in with a merge tag:

<img src="https://inboxclock.app/t/TIMER-ID.gif?r=*|UNIQID|*" … />

The first time Inboxclock sees a value for a timer, it records the time. That reader’s deadline is that time plus the timer’s length. Later opens, on any device, show the same deadline.

Inboxclock stores only a SHA-256 hash of the timer ID and the value. It never stores the raw email address or ID.

The Embed tab fills in the right tag when you choose your platform:

Platform Merge tag
Mailchimp *|UNIQID|*
Klaviyo {{ email }}
Kit {{ subscriber.id }}
ActiveCampaign %SUBSCRIBERID%
HubSpot {{ contact.hs_object_id }}
FluentCRM {{contact.id}}
MailerLite {$email}
Brevo {{ contact.EMAIL }}

If your account uses another field, change the tag in the Embed tab. Any value that is stable for one subscriber works.

Start from a date instead

If your platform can print a date, such as the signup date, use start instead of r. The countdown then starts at that date, not at the first open:

<img src="https://inboxclock.app/t/TIMER-ID.gif?start={{ signup_date }}" … />

start accepts an ISO date such as 2026-10-27T09:00:00Z or a Unix timestamp in seconds or milliseconds. When both start and r are present, start wins.

When the merge tag is not filled in

Email editors and some previews show the tag as text, for example *|UNIQID|*. Inboxclock detects unfilled tags and ignores them. Without a value, each open shows the full length. Send a real test email to check the behavior.