Changelog: real-time click dashboard and webhook notifications

Watch clicks land as they happen. Plus: send live click events to any endpoint with our new webhook integrations.

Shortifi.me Mar 26, 2026 2 min read

Live click stream visualized as pulsing dots on a minimal dashboard grid

What shipped

The analytics dashboard now updates in real time. No more refreshing the page to see if your campaign is getting traction. Click counts, top referrers, and geographic distribution update live as events come in.

Alongside that, we’re launching webhook notifications — send a POST request to any URL the moment a click is recorded. Pipe events into Slack, your data warehouse, a custom dashboard, or anywhere else.

The live dashboard

What updates in real time

  • Click count on each link and campaign-level roll-ups
  • Top sources and mediums for the current session
  • Geographic map — country-level heat updates as clicks arrive
  • Referrer breakdown — which domains are sending traffic

The stream is powered by a Redis-backed event pipeline that we’ve been building into the core of Shortifi since day one. It’s fast — typical latency from click to dashboard update is under 2 seconds.

What it looks like

There’s a small green pulse indicator in the top-right of the analytics panel when you’re live. Click counts animate rather than jump. The geographic map dots fade in. It’s subtle, not flashy — you’re working, not watching a screensaver.

Webhooks

Setting one up

Go to Workspace Settings → Webhooks → Add endpoint. Paste your URL, choose which events to subscribe to (right now: click.recorded, link.created, link.archived), and save. We’ll send a test event immediately so you can confirm it’s working.

The click payload

Every click.recorded event includes:

{
  "event": "click.recorded",
  "link_id": "01HZ...",
  "short_code": "aZ3k9",
  "campaign_id": "01HY...",
  "utm": {
    "source": "instagram",
    "medium": "paid-social",
    "campaign": "spring-launch",
    "content": "carousel-v2",
    "term": null
  },
  "geo": {
    "country": "DE",
    "region": "Berlin"
  },
  "ua_family": "Chrome",
  "timestamp": "2026-03-26T14:22:03Z"
}

Notice what’s not there: raw IP address. We hash IPs with a daily rotating salt and only keep country/region/city/UA family. You get actionable data without carrying PII liability.

Reliability

We retry failed webhook deliveries with exponential backoff — 5 attempts over roughly 2 hours. The webhook log in settings shows every delivery attempt: HTTP status, response time, response body. If an endpoint fails consistently, we’ll email you and pause it rather than silently drop events.

What people are building

Beta users have connected webhooks to:

  • Slack — post a message when a campaign hits 1,000 clicks
  • Google Sheets — append rows for click-level data analysis
  • Segment — forward events into their existing analytics pipeline
  • Internal dashboards — teams with custom BI tools pulling live click data

We didn’t build native integrations for any of these — we didn’t need to. A clean webhook payload handles it.

What’s next

Event filtering on webhooks (e.g. only fire for a specific campaign) is on the near-term roadmap. Real-time alerts — notify me when click rate drops below X — are coming in a later release.

Run the work behind the click.

Start free. No credit card. One workspace included.

Start free