Notifications

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. 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. 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. 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).

Incoming webhook URL

Discord

In your Discord server: channel settings → Integrations → Webhooks → New Webhook.

Webhook URL

Microsoft Teams

In Teams: channel → Workflows → "Post to a channel when a webhook request is received", or a legacy Incoming Webhook connector.

Workflow / connector URL

Google Chat

In a Google Chat space: space settings → Apps & integrations → Webhooks.

Space webhook URL

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).

Bot tokenChat ID

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.

Endpoint URLSigning secret (optional)

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.