← guides
integration · published 2026-05-05

Slack bot: get pinged the moment AI misquotes your brand — Arenza webhook + Slack tutorial

Real-time Slack alerts when an AI assistant misquotes a brand: open-source Node service, signature-verified webhook handler, severity-coded Block Kit messages, one-click deploy to Vercel/Railway/Fly. For agencies running multi-channel client comms.

If you run agency comms, the worst signal you can give a client VP is "we noticed last Friday that ChatGPT had been telling people your phone number was wrong since Monday." Five-day detection latency = lost trust. The fix: Slack alerts fired the moment a wrong claim is detected, with the verbatim AI quote attached.

Arenza ships per-brand webhook events. This tutorial walks you through deploying a small Node service that consumes those webhooks and posts severity-coded Slack Block Kit messages — agency-friendly, multi-tenant out of the box.

What you get

  • Real-time alert when a new wrong claim of severity ≥ medium is detected, posted to the Slack channel mapped to that brand.
  • Severity-coded Block Kit messages: critical = red, high = orange, medium = yellow.
  • Verbatim AI quote, the LLM that produced it (ChatGPT / Claude / Gemini / Perplexity / Copilot / Grok), the prompt that surfaced it, and a one-click "open in Arenza" link.
  • Multi-brand routing: one webhook handler can serve 200 brands; the Slack channel is determined per brand from a JSON map.

Prerequisites

  • Node 18+ (or use the included Docker image).
  • A Slack workspace + ability to install a custom Slack app.
  • Arenza Pro account or higher (webhooks are gated to Pro). Enable webhooks at https://app.arenza.ai/settings/notifications.
  • A free Vercel / Railway / Fly account (any will host this for $0).

One-click deploy path

The fastest way: clone the repo, click the Vercel deploy button, fill 4 env vars (ARENZA_TOKEN, SLACK_BOT_TOKEN, SLACK_DEFAULT_CHANNEL, ARENZA_WEBHOOK_SECRET), copy the resulting URL, paste into Arenza's webhook settings, install the Slack app via the included manifest. End-to-end: ~15 minutes.

Architecture

[Arenza event: "wrong_claim.detected"]
   ↓ POST {brand_id, finding_id, severity, llm, prompt, verbatim_quote, ts, signature}
[Express handler: /webhook]
   ↓ verify HMAC signature against ARENZA_WEBHOOK_SECRET
[Lookup channel for brand_id from brand-channel-map.json]
   ↓
[Format Slack Block Kit message — severity color + verbatim block + open-in-arenza button]
   ↓
[Slack Web API: chat.postMessage]

Customization recipes

  • Severity threshold: change MIN_SEVERITY env var to "critical" if your team only wants the most urgent.
  • Daily summary mode: instead of per-event alerts, batch the day's findings into one 9am post.
  • Mention-rate alerts (not just wrong claims): subscribe to "share_of_voice.changed" events with delta threshold.
  • Multi-tenant for agency: the brand → channel map can come from a database; supports 1000+ brands without code changes.

Companion repo

https://github.com/arenza-ai/arenza-slack-alerts — full source (Express + TypeScript + Slack Block Kit), Slack app manifest, vercel.json, .env.example, and step-by-step README.

Related guides

  • n8n + Arenza for weekly automation: https://arenza.ai/guides/n8n-geo-automation-weekly-digest
  • Complete agency guide to GEO with Arenza: https://arenza.ai/guides/arenza-for-seo-agencies-complete-guide-2026
  • Claude Desktop + Arenza MCP walkthrough: https://arenza.ai/guides/claude-desktop-arenza-mcp-walkthrough-2026