Notifications
After each conversation, Feedbot analyzes it: summary, category, priority, lead score and any product issues. Notification rules decide what gets sent where.
Channels
Section titled “Channels”| Channel | Setup |
|---|---|
| Telegram | Connect the Feedbot bot to a chat or group in Settings → Notifications. |
| Add one or more addresses. | |
| Slack | Paste an Incoming Webhook URL. |
| Discord | Paste a channel webhook URL. |
| Webhook | Any HTTPS URL. Use it for Zapier, Make, n8n or your CRM. |
Webhooks are available on the Business plan. Check the pricing page for channel availability on each plan.
Examples of rules you can set per bot:
- every new hot lead → Telegram, right away;
- conversations where the visitor asked for a human → Telegram and email;
- urgent issues (priority ≥ 4) → Slack;
- a weekly report → email.
Webhook payload
Section titled “Webhook payload”Feedbot sends a POST with a JSON body. Events:
conversation.analyzedlead.createdhuman.requested
{ "event": "lead.created", "botId": "5521cdf1-…", "conversationId": "…", "createdAt": "2026-09-27T10:00:00Z", "data": { "name": "Ann", "email": "ann@example.com", "score": 82, "summary": "Team of 5, wants Pro yearly" }}Verify the signature
Section titled “Verify the signature”Each request has an X-Feedbot-Signature header: the HMAC-SHA256 of the raw body with your webhook secret, as hex.
import { createHmac, timingSafeEqual } from "node:crypto";
export function isValidSignature(rawBody: string, signature: string, secret: string) { const expected = createHmac("sha256", secret).update(rawBody).digest("hex"); return expected.length === signature.length && timingSafeEqual(Buffer.from(expected), Buffer.from(signature));}