Notifications & integrations
Push audit results, visibility changes, and monitoring alerts straight to Slack, Discord, Microsoft Teams, Google Chat, Telegram, or any webhook endpoint you run. These are free platform webhooks — no per-message cost, ever.
How it works
- 1
Add a webhook
From the Notifications page, pick a platform and paste in its webhook URL (or bot token for Telegram). Nothing is sent until you save.
- 2
Choose what fires it
Select one or more event types below. Optionally scope the webhook to specific brands or monitored sites — see Filtering below.
- 3
Send a test, then go live
Use the Test button on any saved webhook to confirm delivery before you rely on it in production.
Available integrations
Slack
Create an incoming webhook from your Slack app settings (api.slack.com/apps → Incoming Webhooks).
Discord
In your Discord server: channel settings → Integrations → Webhooks → New Webhook.
Microsoft Teams
In Teams: channel → Workflows → "Post to a channel when a webhook request is received", or a legacy Incoming Webhook connector.
Google Chat
In a Google Chat space: space settings → Apps & integrations → Webhooks.
Telegram
Create a bot with @BotFather to get the token; get your chat ID from @userinfobot (the bot must be started or added to the chat).
Generic webhook
We POST JSON ({ event, timestamp, data }). With a secret set, each request carries an X-Webhook-Signature: sha256=… HMAC header. Works with Zapier, Make, n8n, or your own endpoint.
What triggers a notification
Audits
- Audit completed — A one-off audit finished and the report is ready
- Audit failed — An audit could not be completed
Monitored Sites
- Monitored site scan completed — A scheduled re-audit of a monitored URL finished
- Grade drop or new critical issue — A monitored site's grade dropped or a new critical issue appeared
Brand Visibility
- Visibility scan completed — A brand visibility scan finished
- Appearance-rate drop or competitor overtake — A brand's appearance rate dropped or a competitor moved ahead
Filtering by brand or site
By default a webhook fires for every account you have access to. Scope it to specific brands or monitored sites in the "Notification rules" step of the Add/Edit webhook dialog to keep noisy multi-brand accounts quiet. Once a filter is set, events outside the selection — including one-off audits, which aren't tied to any brand or monitored site — are skipped for that webhook.
Message format & security
Every notification is deliberately minimal — a title, a one-line summary, and a link back into your dashboard. We never forward full audit or scan content to a third-party endpoint. Each provider gets a native message shape: Slack and Google Chat get formatted text blocks, Discord gets an embed, Teams gets a MessageCard, and Telegram gets an HTML-formatted bot message.
Generic webhooks receive a flat JSON envelope instead:
{
"event": "monitor.alert",
"timestamp": "2026-08-15T09:41:00.000Z",
"data": {
"title": "Alert: example.com needs attention",
"summary": "Grade dropped from B to D.",
"url": "https://getbotrank.com/audit/..."
}
}If you set a signing secret on a generic webhook, every request also carries anX-Webhook-Signature: sha256=…header — an HMAC-SHA256 of the exact request body, using your secret as the key. Verify it before trusting the payload. Webhook URLs, bot tokens, and signing secrets are encrypted at rest (AES-256-GCM); once saved, we only ever show a redacted hint likehooks.slack.com …a1b2, never the original value.
Limits & reliability
- Up to 10 webhooks per account.
- Slack, Discord, Teams, and Google Chat URLs are checked against each provider's real webhook hostname. Generic webhook URLs must be public https:// endpoints — loopback, private-network, and cloud-metadata hosts are rejected.
- A webhook that fails delivery 10 times in a row is automatically disabled; re-enable it from the Notifications page once the issue is fixed.
- Delivery is best-effort and never blocks or delays the audit, scan, or alert that triggered it.