Skip to content
Ken

Understanding clicks (bot vs human)

How Ken separates real human clicks from automated security-scanner traffic, where to find the breakdown in the app, and what to do when the numbers look wrong.

9 min read · Updated Jun 29, 2026

Overview

Every click number shown in Ken represents human engagement only. Security scanners - tools like Outlook SafeLinks, Proofpoint, and Mimecast - automatically fetch every link in an email the instant it lands in a prospect's inbox, before a human ever sees it. Most cold-email platforms count these prefetches as real clicks, inflating engagement rates and triggering follow-up sequences on people who never actually clicked anything. Ken strips them out.

The headline click figure you see on any analytics surface is already filtered. When bot traffic exists, you can hover the click number to see a split: for example, "Human 471 · Bot 41". This makes the number both honest and auditable.

Where to find clicks in the app:

  • /campaigns - open any campaign, then go to the analytics section. The metric pills row shows Clicks with a hover breakdown. The segment table below shows per-segment click rates with the same hover.
  • The analytics chart tooltip (hover any point when Clicks is the active metric) shows the per-day human and bot split, and when the full Campaign / Direct / Bot breakdown is available, it appears indented below the Clicks row.

Before you start

No special permissions are required to view click analytics. Any user with access to a campaign can see the click metric and hover breakdown.

How to read the clicks metric

View the click pill and hover breakdown

  1. Open a campaign from the Campaigns list.
  2. Scroll to the analytics section. You will see a row of metric pills - Sent, Contacted, Clicks, Replies, Positive Replies, Bounces.
  3. The Clicks pill shows the click rate percentage and the raw human click count, formatted as "1.3% | 14 Clicks".
  4. If any bot or security-scanner clicks were detected for this campaign, hover the Clicks pill. A tooltip appears with the format: "Human 471 · Bot 41 (8.0%)".
  5. If no bot clicks were detected, the tooltip does not appear - the pill shows human-only traffic with no extra decoration.

View per-day clicks on the chart

  1. In the same analytics section, click the Clicks pill to make it the active metric. The chart updates to plot daily click counts.
  2. Hover any bar or point on the chart. The day tooltip shows all six metrics (Sent, Contacted, Clicks, Replies, Positive Replies, Bounces).
  3. On the Clicks row, if bot traffic was detected that day, a secondary line appears below it: "Human N · Bot M".
  4. When the full breakdown is available, Campaign / Direct / Bot rows appear indented below the Clicks headline, showing how human clicks are split between tracked campaign links and direct domain visits.

View per-segment click breakdown

  1. Scroll below the chart to the segment analytics table.
  2. The Clicks column header includes a tooltip icon. Hover it to read: "Unique human clicks / contacted. Bot and security-scanner traffic is filtered out of this number; hover a segment's clicks for its human/bot split."
  3. Hover any segment's click count to see that segment's "Human N · Bot M" split.

How it works

Click source and attribution

Ken mints a unique short link for each recipient at send time. When a prospect clicks, that event is captured and attributed to the exact person and the campaign segment they were in at that moment. Crucially, segment attribution is frozen at click time - if a contact is later moved to a different segment, their historical clicks stay attributed to the segment they were in when they clicked.

Clicks on a campaign's tracking links are categorized as Campaign clicks. Clicks on the sending domain's root URL or 404 page - for example, a prospect typing the domain into a browser or following a slightly broken link - are captured separately as Direct clicks. Direct clicks are real human interest signals that most cold-email tools discard entirely.

Bot and prefetch detection

Security scanners follow an observable physics: they pre-fetch links within seconds of an email landing, long before a human has time to read it. Ken uses this timing signature as the primary detection signal. Any click that arrives within 60 seconds of the corresponding send is classified as a bot click.

Detection runs as a nightly process. It:

  1. Builds a lookup of the earliest send time for each unique combination of contact, campaign, and sequence step.
  2. Scans all unclassified click events from the prior two days.
  3. Marks any click as bot when the time from send to click is less than 60 seconds, using the correct send event for that specific sequence step.

Processing the last two days on every run is intentional - webhook events arrive out of order and late, so a small trailing window catches clicks that were written after the first pass for that day.

Bot-classified events are not deleted. They are stored with a bot flag and the raw count is still available, which is why the hover breakdown shows the exact number Ken removed. The only thing suppressed is the internal signal that would otherwise advance a contact through a follow-up sequence. A bot click never triggers a "saw you click - want to chat?" follow-up.

Stats reconciliation

The human and bot counts always sum to the raw total, so the split is fully auditable. Per-segment and per-day breakdowns use the same classification, so a click cannot appear in the human count on one chart while being flagged as bot on another.

When bot clicks are detected late - after daily stats have already been rolled up - the system automatically recomputes the affected day's numbers. This happens without manual intervention.

Troubleshooting & debugging

Symptom: Click count looks lower than the sending platform reports. Likely cause: The sending platform is counting security-scanner prefetches as real clicks. Ken filters these out. The "Human N · Bot M" hover breakdown on the Clicks pill shows exactly how many were stripped. If the discrepancy is larger than the bot count shown, see below.

Symptom: The hover tooltip does not appear on the Clicks pill. Likely cause: No bot clicks were detected for this campaign. The tooltip only renders when bot clicks are greater than zero - a zero-bot state shows the pill without decoration. This is the correct and common case for campaigns where all clicks arrived more than 60 seconds after send.

Symptom: Click count shows zero even though sends were delivered. Likely cause (1): Tracking links were not set up correctly. Confirm that the campaign's sequence uses tracked short links, not direct links to the destination URL. Likely cause (2): The daily click aggregation job has not yet run for the current day. Stats for the current UTC day roll up at 01:30 UTC. Clicks from today may not yet appear in totals. Likely cause (3): The Short.io webhook is not configured for the sending domain. Check the domain's tracking configuration in Settings.

Symptom: The per-day chart shows Clicks but the bot breakdown line is missing. Likely cause: Bot detection for that day is still processing, or the bot count for that specific day was zero. The secondary "Human N · Bot M" line only renders when clicksBot > 0. If detection is still in progress (it runs at 00:30 UTC), wait until after 01:30 UTC for the final aggregated stats.

Symptom: Per-segment click rate seems too high (above 100%). Expected behavior, not a bug. Per-step click rates divide by that step's sends, and a contact can click a link more than once. The rate is clamped to a maximum of 100% in the UI. The segment-level click rate divides by unique contacted contacts, which follows standard engagement-rate math.

Symptom: A contact's historical clicks moved to a different segment after re-segmentation. Likely cause: The click was ingested before the segment snapshot field existed (legacy click). Legacy clicks resolve their segment using the contact's current membership as a fallback. Clicks ingested after the snapshot was introduced are permanently attributed to the segment at click time and cannot be moved by re-segmentation.

Symptom: Campaign / Direct / Bot breakdown never appears in the chart tooltip. Likely cause: The direct-click attribution feature requires the sending domain to have a root forwarding link configured in Short.io. If the domain was added before this feature was enabled, the Direct bucket may be empty and the three-way breakdown collapses. Verify the domain's tracking configuration in Settings.

FAQ

Why are my click rates lower than what other tools report? Other tools typically count every link fetch as a click, including automated security-scanner prefetches from Outlook SafeLinks, Proofpoint, and Mimecast. Ken strips those out and only counts clicks that arrived more than 60 seconds after the send. The difference between what those tools show and what Ken shows is roughly the bot count visible on hover.

Does Ken still record bot clicks somewhere? Yes. Bot-classified click events are saved with a flag, not deleted. The raw count is what appears in the "Bot N" part of the hover breakdown. Only Ken's internal follow-up triggers are suppressed - a bot click never advances a contact through a sequence.

Can a real click get incorrectly classified as a bot? A click arriving within 60 seconds of the send is treated as a bot. This is a conservative rule - it is physically very unlikely for a human to read an email and click a link in under a minute. If a contact is actively watching their inbox and clicks within that window, the click would be filtered. The edge case is uncommon enough that it is a known and accepted tradeoff.

Why does the Clicks column say "unique human clicks / contacted"? The segment-level click rate is calculated as unique human clickers divided by the number of unique contacts reached in that segment. This measures engagement per person rather than per email send, which avoids inflating the rate when a contact receives multiple follow-up steps.

What is the "Direct" click category? Direct clicks are human clicks on the sending domain that are not from a campaign tracking link - specifically, the domain's root URL and 404 redirect page. When a prospect types your sending domain into a browser or follows a malformed link, that shows up as a Direct click. It is a genuine interest signal that campaign-link-only trackers discard.

When do today's click stats become visible? Click events are captured in near-real time. Daily aggregates - the rolled-up totals used for chart and table views - finalize at approximately 01:30 UTC. Bot classification runs before that at 00:30 UTC, so the numbers visible after that time are final for the previous UTC day.

Related articles

Related articles

Still need help?

Can't find what you're looking for? Our team is one message away. We usually reply within a business day.

Contact us