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.