Push KOLens growth alerts to Slack, your inbox, or any webhook URL
Stop checking the alerts page. Configure once, get a Slack ping the moment a watched KOL grows 20%+ or a competitor's audience shifts country.
Quick answer
The alerts feed nobody visits
Growth signals only matter if you act on them while they're fresh. A "rising KOL" alert that you discover three days later isn't a signal — it's archaeology. KOLens has shipped a detector + an in-app feed at /alerts for a while, but the loop was always: notification email → log into KOLens → check feed. That first step is the one most users skipped.
The new delivery layer cuts the loop. The detector fires → KOLens pushes the alert directly to your inbox or webhook → you click the link in the message and land on the relevant KOL.
How to wire it up
- 1Open /alerts/settings.New page. Two cards (Email, Webhook), each with an enable toggle + the contact field, plus mute-by-type checkboxes and a per-hour throttle.
- 2Email — paste an address, save.KOLens uses plain SMTP — set
SMTP_HOST/SMTP_USER/SMTP_PASSWORD/SMTP_FROMon the API service (Resend, Postmark, AWS SES, Mailgun all expose port 587 + STARTTLS). When SMTP isn't configured the email channel silently no-ops; the settings UI still lets you save the address. - 3Webhook — paste any HTTPS URL.KOLens POSTs the JSON payload (see below) with a 3 second timeout. Slack incoming hooks, Zapier catch hooks, n8n, Tines, your own internal endpoint — anything that takes a plain JSON POST works. Optional shared-secret token sent as
X-Kolens-Signaturefor receiver-side verification. - 4Send a test, verify, save.The "Send test alert" button fires a synthetic alert through every enabled channel and reports per-channel success right on the page. Last-error banner per channel surfaces SMTP / DNS / 4xx failures so you can fix them without grep-ing logs.
Webhook payload shape
Stable JSON. We add fields, never rename — Zaps + scripts that depend on these keys today will keep working as new alert types land.
id— the alert UUID. Doubles as a Slack message dedupe key.type— one ofrising_kol,trending_video,audience_drift.subject_username/subject_video_id— what the alert is about.score— numeric severity (% growth for rising_kol, view spike multiplier for trending_video, percentage-point delta for audience_drift).payload— type-specific facts. For rising_kol:{ delta_pct, baseline, current }; for audience_drift:{ country, delta_pct, prev_pct, new_pct }.link— pre-built deep link into KOLens (e.g.https://kolens.ai/kols/minicaseco) so the recipient can jump directly to context.created_at— ISO 8601 timestamp.
The per-hour throttle
A trending video can produce a burst (multiple watched KOLs all commenting on it within an hour). Without a throttle that means 15 Slack pings in one minute. The default cap is 20 deliveries per hour per user, shared across all enabled channels — beyond that, alerts still write to the in-app feed but skip push. Adjustable on the settings page (set 0 to mute push entirely without losing the in-app trail).
vs the alternatives
- Modash + Zapier — the indirect path. Modash does the detection, Zapier polls + fires. Two subscriptions + one polling delay. KOLens delivers at detection time natively.
- Roll-your-own Apify scheduler — possible if your team has the engineering bandwidth. KOLens skips the "did it already fire today?" dedup logic that's annoying to get right at scale.
- The old in-app alerts page — still there, now with a "Delivery settings" link in the corner. The push channels are additive, not a replacement.
Next up
AS-3-style watchlists for Facebook Ad Spy will start emitting alerts on the same channel ("CompetitorX just published 3 new ads"). Watch the changelog or wire a webhook today and you'll get the new event types automatically.
Frequently asked
- Which alert types fire?
- Three in v1. rising_kol — a watched KOL's follower count or engagement spiked above the detector threshold. trending_video — one of their videos is going viral. audience_drift — a creator's audience country mix moved by ≥10 percentage points between two consecutive Audience Snapshot samples.
- Does it work with Slack incoming webhooks?
- Yes. Slack incoming hooks accept any JSON POST. The KOLens payload includes a `text`-equivalent description in the `payload.payload.note` field that Slack will render verbatim if you wire up a basic transformer in Slack's webhook UI; for richer formatting, route through a Zap or your own endpoint.
- What about authentication on the webhook side?
- Optional shared-secret token. Set it in /alerts/settings and KOLens forwards it as the X-Kolens-Signature HTTP header on every push. Receivers can verify the request actually came from us before processing.
- Will it spam me when something goes viral?
- No. There's a per-channel rate-per-hour throttle (default 20). When the detector finds a burst, only the first 20/h get pushed; the rest stay in the in-app /alerts feed and you can browse them on the page when you have time.
- Can I mute a specific alert type?
- Yes. The settings page has a checklist — uncheck rising_kol or audience_drift to mute just that type. Newly-shipped alert types default to ON for existing users.
Read next
Watch competitor Facebook ads on a 24h schedule (auto-refresh + New badge)
Star a Facebook advertiser, KOLens re-scrapes their Ad Library every 24h and flags any ad first seen since your last visit with a New badge. No more daily manual checks.
TikTok audience snapshot — see where a creator's followers actually live (coming soon)
Sampled country / language / activity / niche signals for any TikTok creator. Honest confidence intervals, no fake demographics. Coming to KOLens.