Send each call summary where your team already works—without jargon. Pick a channel below to see what it does and what you’ll set up in your dashboard.
Running the Restaurant Assistant? Integrations use the same channels; summaries still describe what happened on the call (orders, reservations, complaints) so the kitchen or manager can act fast.
After your AI handles a missed call, we can automatically send you a short summary of what happened. Integrations are the optional connections that deliver those summaries to Slack, your own website or app (via a secure webhook), or Telegram.
You manage everything under Dashboard → Integrations. You can turn delivery on or off without losing your settings, and you can add more than one connection if you use several channels.
You never need to write code inside Coverforme. For Slack and Telegram, you mostly copy a link or ID from the other product and paste it here. For a signed webhook, you—or a technical teammate—will paste your company’s HTTPS address and a shared secret so your systems know the message really came from us.
SMS sends each call summary as a text message to the number you choose— often your own mobile so you see missed-call context immediately. A default SMS connection is created from your verified business phone when your assistant finishes setup; you can add more SMS destinations if several people should get alerts.
What you’ll configure (in plain English)
- Friendly name: Helps you tell multiple SMS destinations apart (for example "Owner" vs "On-call manager").
- On or paused: Paused stops new texts without deleting the number you saved.
- Destination number: The handset that receives summaries, in full international format starting with
+(E.164).
Slack sends each call summary straight into a channel your team already checks—like your #front-desk or #missed-calls channel. Summaries use Slack’s formatted text (bold labels and clear sections) so they’re easy to scan—there is no raw JSON code block in the channel message.
What you’ll configure (in plain English)
- Friendly name: A label only you see (for example "Main reception") so you can tell connections apart.
- On or paused: Paused stops new summaries from being sent, but keeps your setup so you can turn it back on anytime.
- Webhook address: A special link Slack gives you. It tells Slack exactly which channel should receive our summaries. You create it once in Slack, then paste it into Coverforme.
A signed webhook sends each call summary to an address you choose—usually a secure URL your website or internal tool already exposes. That way your CRM, ticketing system, or custom dashboard can react automatically.
What you’ll configure (in plain English)
- Friendly name: Helps you remember which endpoint this is (for example "Production CRM hook").
- On or paused: Same idea as Slack—pause deliveries without deleting your work.
- HTTPS link: The web address where your system is ready to receive our JSON payload. It must start with
https://so traffic stays encrypted. - Signing secret: A shared password your developer configures on both sides. Each request we send includes a fingerprint made with that secret, so your server can confirm the message truly came from Coverforme—not from a random stranger on the internet.
What your developer looks for on each delivery
Yes—your server should read two HTTP headers we send on every POST (names are exact): X-Coverforme-Timestamp (Unix time in seconds, as a string) and X-Coverforme-Signature (starts with sha256= followed by a hex digest). Your developer recomputes the same digest from the raw JSON body plus that timestamp, using the signing secret you stored in Coverforme, and compares it in a timing-safe way to the header value.
The JSON body uses schemaVersion: 1. Besides the structured fields your automation already reads, we include renderedSummaryPlain—the same human-readable summary text we derive for other channels—so your UI or logs can show a friendly view without parsing vertical-specific JSON. The HMAC still covers the entire body string, including that field.
import { createHmac, timingSafeEqual } from "node:crypto";
// Example: Express-style handler — use your framework's way to read the *raw* body string.
const timestamp = String(req.headers["x-coverforme-timestamp"] ?? "");
const sigHeader = String(req.headers["x-coverforme-signature"] ?? "");
const rawBody = /* exact JSON string Coverforme POSTed, byte-for-byte */;
const expectedHex = createHmac("sha256", process.env.COVERFORME_SIGNING_SECRET)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const expected = Buffer.from(`sha256=${expectedHex}`, "utf8");
const received = Buffer.from(sigHeader, "utf8");
const ok =
sigHeader.length === expected.length && timingSafeEqual(expected, received);
// Reject the request if !ok or if timestamp is too old (replay protection — optional but recommended).The example above uses Node.js only for illustration. Any language or library that can do HMAC-SHA256 over the raw string timestamp + "." + rawBody, using your saved signing secret as the key, will work—you are not required to use node:crypto. The secret is not a special format to parse; treat it as the shared key bytes (typically the UTF-8 string you pasted in Coverforme).
Telegram drops summaries into a chat where your team already coordinates —great if you live in Telegram more than email or Slack. Messages use Telegram’s HTML formatting (for example bold section titles) so they stay readable on a small screen; very long summaries may be shortened at the end so they always fit Telegram’s size limit.
Add our bot to your group or channel in Telegram first. For a channel, promote the bot to administrator with permission to post messages so summaries can appear.
What you’ll configure (in plain English)
- Friendly name: Your own label so you recognize this connection in the list.
- On or paused: Pause if you’re testing or temporarily don’t want messages.
- Chat ID: Telegram’s id for your group or channel—often a negative number (many look like
-100…, but not always). Treat it as the mailing address for that chat. A simple way to read it: start a private chat with@userinfobotor@getidsbot, then forward one message from your channel or group into that chat (not add those bots inside your channel). Their reply includes the chat ID to paste into Coverforme. For public channels you can sometimes paste@YourChannelNameinstead of the long number.
You do not paste a bot token into Coverforme. You only need the chat ID after @coverforme_bot can post in the right place. Helper bots like @userinfobot are third-party tools—use them only if you are comfortable doing so.
