A complete guide to adding a countdown clock to your UniLink page — fixed deadlines, evergreen windows, and zero-state handling so your timer works correctly from the first visitor to the last.
- The Timer block displays a countdown to a fixed date or a per-visitor evergreen window, creating deadline urgency for launches, sales, and enrollment periods.
- Always set your timezone explicitly — the timer fires at the wrong moment for your audience if you leave the default UTC setting in place.
- Configure the zero-state action before publishing: hide the block, show a custom message, or redirect to a URL. The default "00:00:00" display is the most common mistake.
- Use evergreen mode only when there is a real offer behind the window — visitors who see a timer reset on refresh lose trust in your page permanently.
Every creator knows the feeling: you announce a sale, a drop, a course open enrollment — and the response trickles in over two weeks instead of two days. People intend to act. They bookmark the page. They come back when they have more time. And then they never come back. The Timer block exists to solve this specific problem. A visible countdown clock converts vague intention into a decision. The deadline is no longer abstract — it is a number, visible and shrinking. Visitors who would have waited until "later" are forced to acknowledge that later has a defined end. That shift in framing is what drives the spike in conversions you see when urgency is implemented well.
What the Timer block does
The Timer block renders a countdown display on your UniLink page showing days, hours, minutes, and seconds remaining until a moment you define. It operates in two distinct modes. The first is a fixed-date countdown: the timer counts down to a specific date and time you set, identical for every visitor. A product launch at noon on July 4th, a course enrollment that closes Sunday at midnight, a presale that runs for exactly 72 hours — these are all fixed-date use cases. Every visitor sees the same number, and when the clock hits zero, the event is over for everyone simultaneously.
The second mode is evergreen: the timer resets to a duration you define each time a new visitor lands on your page. If you set it to three hours, every visitor sees "2:59:58" within seconds of arriving, regardless of when they visit. UniLink maintains this per-visitor state through a session cookie, so refreshing the page doesn't reset the clock during an active session — but a new browser or a cleared cache will start a fresh window. Evergreen timers are built for offers that genuinely expire per interaction: an abandoned-cart window, a consultation booking slot, a one-time discount that's valid for the first three hours after a visitor clicks through from an ad. They are not for simulating urgency that doesn't exist. If someone opens your page in two tabs and watches the timer reset, your credibility is gone.
When the timer expires, three things can happen depending on what you configured: the block hides itself entirely (the cleanest outcome if the offer is truly over), a custom message replaces the countdown display (useful for communicating next steps — "Sale ended — join the waitlist for the next drop"), or the visitor is redirected to a URL you specify (useful for funneling post-offer traffic to a waitlist or a different product). Not configuring the zero-state is the single most common Timer block mistake — the default behavior is to show all zeros indefinitely, which looks broken and erodes trust in your page just as quickly as a fake timer would.
Before you start
- Define your actual deadline: Know whether you're working with a fixed date (a real calendar moment) or an evergreen window (a duration per visitor). The answer determines which mode you use — and if you're not sure, the fixed-date mode is almost always the right choice. Evergreen only makes sense when the underlying offer genuinely expires per session.
- Know your audience's timezone: If you're running a flash sale that ends at midnight, midnight in which timezone? If your audience is primarily US-based, pick Eastern or Pacific. If it's global, pick UTC and communicate that clearly in your timer label. Decide before you touch the settings.
- Write your zero-state message in advance: If you're using the "show custom message" zero-state, draft it before building the block. It should tell visitors what happened and what to do next — "The launch window has closed. Get on the early access list for the next drop." One sentence is enough.
- Prepare your redirect URL (if using redirect zero-state): If you plan to redirect after expiry, have the destination URL ready. This could be a waitlist page, a different product, or a blog post. Make sure the destination is live and correct before you configure the block.
How to add the Timer block to your page
- Open your page in the Dashboard: Log in to UniLink and navigate to the page you want to edit. Click the "Add block" button.
- Select "Timer" from the block picker: Find the Timer block in the list and click to add it. It inserts at the bottom — drag it to the correct position before configuring it. For most use cases, it belongs near the top of the page, directly beneath your header or offer description.
- Choose your mode — fixed date or evergreen: In the block settings panel, select the countdown mode. Fixed date counts to a specific moment. Evergreen resets to a duration per visitor. If you choose fixed date, proceed to the next step. If you choose evergreen, set the duration in hours and minutes.
- Set the target date, time, and timezone (fixed mode): Use the date and time picker to set the exact expiry moment. Then open the timezone dropdown and select the timezone that matches your deadline. If your sale ends at midnight EST, select America/New_York — do not leave UTC as the default.
- Add a label above the timer (optional but recommended): The label field lets you add a short line of text above the countdown display, such as "Offer ends in" or "Enrollment closes in." This context dramatically improves clarity — visitors who see a ticking clock with no label spend cognitive energy figuring out what it's counting down to.
- Configure the zero-state action: Select what happens when the timer reaches zero: hide the block, show a custom message, or redirect to a URL. If you choose "show message," enter your post-expiry message text. If you choose "redirect," paste the destination URL. Do not skip this step.
- Choose a display style: Select the visual style for the timer — minimal (text only), card (bordered block), large (oversized digits for emphasis), or custom (lets you set the color). The large style works well as a standalone block; minimal integrates more naturally into a busy page layout.
- Select display format: Choose whether to show days/hours/minutes/seconds or hours/minutes/seconds only. If your countdown spans multiple days, include days. If it's a same-day window of a few hours, hours/minutes/seconds is cleaner.
- Save and preview: Click "Save." Use the preview to verify the timer is counting down correctly and the label reads clearly on both mobile and desktop. If you're using a fixed date, double-check the displayed time against the timezone you intended.
Key settings explained
| Setting | What it controls | Best practice |
|---|---|---|
| Mode (fixed vs. evergreen) | Whether all visitors see the same countdown to a real date, or each visitor gets a fresh window from when they arrived | Default to fixed date unless you have a genuine per-session offer; evergreen without a real backing offer destroys trust when discovered |
| Target date and time | The exact moment the countdown expires (fixed mode only) | Set this a few minutes in the future during setup to confirm the timer is counting correctly before setting the real deadline |
| Timezone | The timezone used to interpret the target date and time | Always set explicitly — leaving UTC causes the timer to fire at the wrong moment for audiences in other regions |
| Zero-state action | What the block does when the timer reaches zero: hide, show a message, or redirect | Always configure this before publishing; the default all-zeros display looks broken and confuses visitors after the deadline passes |
| Label text | A short text line displayed above the countdown digits | Use it — "Offer ends in" or "Enrollment closes in" removes ambiguity; a bare countdown without context is less effective |
| Display format | Days/hours/minutes/seconds vs. hours/minutes/seconds only | Include days for countdowns longer than 24 hours; drop the days unit for same-day urgency — a 4-hour countdown showing "0 days" looks awkward |
| Timer style | Visual treatment: minimal, card, large, or custom color | Large works when the timer is the primary CTA on the page; minimal works when the timer supports another block (like a product or course block) without competing with it visually |
| Evergreen duration | How long the per-visitor countdown lasts (evergreen mode only) | Match the duration to the actual offer window — if a discount code expires in 2 hours, set 2 hours; invented durations that don't match real expiry erode trust |
How timers actually move conversion rates
The psychology behind deadline-driven conversion is well-documented: when people perceive scarcity or time pressure, they shift from deliberation mode to decision mode. But the effect isn't automatic — it depends entirely on the deadline feeling real. A visible countdown clock on a page where the offer is genuinely closing creates legitimate urgency. Visitors who were on the fence feel the cost of waiting. A countdown on a page where the "offer" resets on refresh creates a brief spike in anxiety followed by permanent skepticism. The mechanism is the same in both cases; the outcome is not. This distinction is why the mode you choose and the honesty of the window behind it matters more than the visual design of the timer itself.
Placement drives how much of that conversion uplift you actually capture. A timer positioned below the fold — after the bio, the links, the social icons, and the product description — is working against itself. The urgency signal has to arrive before the visitor decides to scroll. For pages where the offer is the primary reason someone is there, the Timer block belongs in the first visible section: directly below the header or, in some cases, paired with a product block at the top. The visitor sees the countdown on load, processes that the window is finite, and enters the rest of the page already primed to decide rather than browse.
The label text above the timer also does more work than creators give it credit for. A bare countdown with no context requires the visitor to infer what's expiring. "Offer ends in" tells them it's a price window. "Enrollment closes in" tells them it's an access window. "Your exclusive rate expires in" personalizes the pressure. These are small differences in copywriting that register quickly at a subconscious level, and they consistently outperform unlabeled timers in A/B tests across e-commerce and course creator contexts. Spend two minutes writing the label — it's not decorative.
For product launches and course opens specifically, the Timer block works best when it's coordinated with your off-page promotion. If your email says "cart closes Sunday at midnight," the timer on your page should reflect that exact moment in the relevant timezone, counting down visibly when visitors arrive from the email. Consistency between what you said in the email and what the page shows is what builds the trust that converts. A discrepancy — the email said Sunday but the timer hit zero on Saturday — creates confusion, support requests, and refund demands that the timer was supposed to prevent.
Troubleshooting common issues
| Problem | Likely cause | Fix |
|---|---|---|
| Timer shows "00:00:00" after expiry | Zero-state action was not configured — the block defaults to displaying all zeros when no post-expiry behavior is set | Edit the block, select a zero-state action (hide, show message, or redirect), save, and republish; for an already-expired timer, toggle the block to hidden manually |
| Timer expired at the wrong time | Timezone was left at the default UTC instead of the creator's intended timezone | Edit the block, open the timezone dropdown, select the correct timezone, and verify the new target time before saving; UTC is 4–7 hours ahead of US timezones depending on Eastern or Pacific |
| Evergreen timer resets when visitor refreshes the page | Visitor cleared their browser cookies or is using a private/incognito window, which does not persist the session cookie UniLink uses to track the evergreen window | This is expected behavior in private browsing — it cannot be fully prevented; consider whether your use case genuinely requires evergreen mode or if a fixed date is more appropriate |
| Timer is not visible on mobile | The timer style selected (e.g., large) overflows the mobile viewport, or the block is hidden by a conflicting visibility rule | Switch to the minimal or card style in block settings, then check the mobile preview; also verify that the block's visibility settings do not have a mobile-hide rule active |
| Redirect after expiry goes to a 404 | The zero-state redirect URL was entered incorrectly or the destination page was deleted or renamed after the Timer block was configured | Edit the block, update the redirect URL to the correct destination, save, and test by temporarily setting the expiry to one minute from now |
| Timer label is not showing above the countdown | The label field was left blank — UniLink only renders the label element when text is present | Edit the block and type your label text into the label field; save and preview to confirm it appears above the digits |
| Timer shows negative numbers | The block is still live but the target date has passed and the zero-state action is set to "none" or was not saved correctly | Edit the block, set a zero-state action, save, and verify; if the negative display persists, toggle the block to hidden and contact support |
Best fit for
- Course creators with real enrollment windows — open cart runs for a defined period and the Timer makes that boundary visible
- Creators running flash sales or limited drops with a genuine end date
- Event organizers showing time remaining until early-bird pricing ends or registration closes
- Digital product launches where the launch price reverts to full price at a specific moment
- Anyone who has a real deadline to communicate and wants it visible on the page without relying on visitors reading body copy
Not the right tool if
- You don't have a real deadline — a timer on a page with no actual expiring offer reads as manipulation and damages audience trust over time
- Your offer is truly evergreen with no urgency component — adding a fake countdown to a product that never expires will be noticed and shared negatively
- You need a booking-style countdown tied to individual appointment slots — the Appointment or Booking block handles that logic; the Timer block is for page-level urgency, not slot-level
- Your audience is highly skeptical of urgency tactics (common in B2B, professional, or premium contexts) — in these cases a plain deadline statement in text converts as well or better with less trust cost
Frequently asked questions
Can I use multiple Timer blocks on the same page?
Yes. You can add more than one Timer block to a page, and each operates independently with its own settings, target date, and zero-state action. This is useful if you have two simultaneous offers with different deadlines — for example, an early-bird ticket price and a merchandise bundle that closes at different times. That said, more than two active timers on a single page tends to dilute the urgency effect of each one. Use multiple timers only when the offers are genuinely distinct and the visitor needs to track both deadlines separately.
What happens if I change the target date after the timer is already live?
Editing the target date after publishing updates the countdown for all visitors immediately. If your sale was ending Sunday and you need to extend it to Monday, change the date in the block settings and save — the timer will reflect the new deadline for everyone who loads the page going forward. Visitors who already saw the original deadline (via email or a cached page) may notice the discrepancy, so it's worth communicating the extension to your audience if you change a deadline that you announced publicly.
Does evergreen mode actually work on mobile browsers?
Yes, with one important caveat: it relies on browser session cookies to remember where each visitor is in their countdown window. Most mobile browsers support this correctly during a normal browsing session. Private or incognito browsing mode, however, does not retain cookies when the window closes, which means returning to the page in a new private session starts the timer fresh. This is a browser-level limitation, not a UniLink bug. If cookie persistence is critical to your use case, fixed-date mode is more reliable across all browsing contexts.
Can I hide the Timer block without deleting it?
Yes. Every block in UniLink has a visibility toggle that lets you hide it from the published page without deleting it or losing your settings. This is the correct workflow after an offer expires: toggle the Timer block to hidden rather than deleting it. If you run recurring promotions — a monthly flash sale, an annual enrollment — you can reactivate the same block, update the target date, and republish rather than rebuilding from scratch each time.
Will the timer still work if a visitor's device clock is set to the wrong time?
The Timer block calculates the countdown based on the server's current time relative to the target date you configured, not the visitor's device clock. This means even visitors with incorrect device time settings will see an accurate countdown. The server-side calculation is what ensures everyone sees the same number for fixed-date countdowns, regardless of what their local device says. Timezone display formatting may still reflect the visitor's browser locale, but the underlying countdown logic is server-driven.
- The Timer block has two modes: fixed date (same deadline for every visitor) and evergreen (per-visitor session window). Fixed date is the right default for most use cases.
- Always set your timezone explicitly — UTC is the default and it will fire your timer at the wrong moment for most audiences.
- Configure the zero-state action before publishing. The default all-zeros display after expiry is the most common setup mistake and looks broken to post-deadline visitors.
- Add label text above the timer. "Offer ends in" converts better than a bare countdown because it removes the cognitive step of figuring out what's expiring.
- Evergreen mode is legitimate only when a real per-session offer backs it up. Fake urgency is discovered quickly and permanently damages audience trust.
Ready to add real urgency to your page? Create your free UniLink page and add the Timer block to your next launch or sale.
