- Docs
- Guides
Integrations: Slack, status pages & CRMs
Get new conversations from your website posted to Slack, Discord or Telegram, so your team sees them where they already talk. Every notification has a link back to the conversation.
What gets posted
Connect chat apps in Settings → Integrations (workspace owners and admins). You can connect one, two or all three. Choose which events to send:
| Event | Default | Sent when |
|---|---|---|
| New conversation | On | A visitor sends the first message of a conversation. |
| New message | Off | A visitor sends any later message in an existing conversation. |
Only visitor messages are posted, including emailed replies when inbound email is set up. Your team's replies, internal notes and bot messages aren't. Each notification contains:
- a title such as “New conversation from Sam Rivera (Austin, United States)”. The location appears when it's known.
- the message text, shortened to 500 characters,
- a link that opens the conversation in your inbox,
- your workspace name, so you can tell workspaces apart if several post to one channel.
Privacy note: Message text and the visitor's name and location are sent to the chat service you connect. Mention that service in your privacy notice if you use this. See Security, privacy & GDPR.
Slack
Slack uses an incoming webhook, a private URL that posts into one channel.
- Create a Slack app. Go to
api.slack.com/apps, choose Create New App → From scratch, name it (for example “Website chat”) and pick your Slack workspace. - Turn on Incoming Webhooks. In the app's settings, open Incoming Webhooks and switch it on.
- Add a webhook to a channel. Click Add New Webhook to Workspace, choose the channel (such as
#support) and allow it. - Copy the webhook URL. It looks like
https://hooks.slack.com/services/T000/B000/XXXX. - Paste it in Settings → Integrations and save.
Slack messages include an Open in TalkingDot button. Webhook URLs from Slack Workflow Builder (/workflows/ or /triggers/) are accepted too.
Discord
- Open the channel's settings. In Discord, hover the channel and click the gear (Edit Channel). You need the Manage Webhooks permission.
- Create a webhook. Go to Integrations → Webhooks → New Webhook. Optionally rename it and set an avatar.
- Copy the webhook URL. It looks like
https://discord.com/api/webhooks/123456789012345678/abcDEF…. - Paste it in Settings → Integrations and save.
Discord posts appear as an embed whose title links to the conversation. Posts never ping @everyone or roles, even if a visitor types a mention.
Telegram
Telegram needs two values: a bot token and the chat ID to post to.
- Create a bot with @BotFather. In Telegram, open a chat with
@BotFather, send/newbotand follow the prompts. BotFather replies with a token like123456789:AAH…. Keep it secret. - Add the bot to your chat. For a group, add the bot as a member. For a channel, add it as an administrator that can post. For direct messages, open the bot and press Start.
- Find the chat ID. Send any message in the group (or to the bot), then open the URL below in your browser and look for
"chat":{"id":…}. Group IDs are negative numbers, such as-1001234567890. For a public channel you can use its@channelnameinstead. - Paste the token and chat ID in Settings → Integrations and save.
https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdatesAccepted formats
TalkingDot only sends to values in these formats. Anything else is ignored, which protects you from typos and look-alike addresses:
| Field | Must look like |
|---|---|
| Slack webhook URL | https://hooks.slack.com/services/… (or /workflows/…, /triggers/…) |
| Discord webhook URL | https://discord.com/api/webhooks/<id>/<token> (the older discordapp.com also works) |
| Telegram bot token | Digits, a colon, then the secret: 123456789:AAH… |
| Telegram chat ID | A number (negative for groups), or @channelname |
Troubleshooting
- Nothing arrives: check that the event is turned on (new messages are off by default), and test with a real message from the messenger on your site.
- Temporary failures (the chat service is down or rate-limits you) are retried a few times with growing delays.
- Telegram is silent: make sure the bot is still in the group and that the chat ID includes the minus sign.
- Slack or Discord stopped working: the webhook may have been deleted or the channel archived. Create a new webhook and paste the new URL.
- Treat webhook URLs and bot tokens like passwords. Anyone who has one can post to your channel. If one leaks, delete it in Slack, Discord or BotFather and create a new one.
Service status (UptimeRobot, HetrixTools, Statuspage, Instatus, Better Stack)
Connect one status source in Settings → Integrations → Service status. When something is wrong, visitors see a short notice in the messenger (“Partial outage: API”) with a link to your status page, and your team sees a bar at the top of the inbox. Optionally, people who start a chat during an incident get one automatic heads-up note.
- UptimeRobot needs a Read-only API key (Integrations & API → API). HetrixTools needs an API key (Dashboard → API Keys; the “v3 GET Uptime Monitors” scope is enough). Choose all monitors or just the customer-facing ones.
- Atlassian Statuspage, Instatus and Better Stack only need your public status page address — no key.
- We check every 2 minutes from our servers (never from visitors' browsers). For near-instant updates, paste your private instant-update URL into the provider's webhook settings; a ping only triggers a re-check, its content is never trusted.
- If the source stops answering, the last good result is shown for up to 30 minutes, then hidden.
CRM & email marketing (HubSpot, Pipedrive, Salesforce, Mailchimp, Brevo, Google Sheets)
Every lead with an email — from the chat, the pre-chat form, popups, chatbots, the API or added by your team — is sent to the tools you connect in Settings → Integrations → CRM & email marketing. We send email, first and last name, phone, company, city and country (plus where they came from and tags where the tool supports it).
- HubSpot: a service key (or private-app token) with the
crm.objects.contacts.readand.writescopes. Contacts are created or updated by email. - Pipedrive: your personal API token. People are found by email or created (with their organization), optionally with a new Lead.
- Salesforce: your Organization ID, using Web-to-Lead (no Salesforce app needed). Turn off “Require reCAPTCHA Verification” under Setup → Web-to-Lead. Web-to-Lead only creates leads (each person is sent once) and accepts up to 500 a day.
- Mailchimp: an API key and the audience; double opt-in is on by default. Brevo: an API key and, optionally, a list. People who opted out of emails in TalkingDot are not sent to email-marketing tools.
- Google Sheets: paste the small Apps Script we show you into your sheet and deploy it as a web app — one row per lead, updated in place.
Changes made within a few seconds are sent together. Temporary problems (timeouts, rate limits) are retried with growing delays; rejected contacts show the reason on the contact's profile, where you can retry. “Sync existing leads” sends the contacts you already have.
Everything else: API and webhooks
For other tools, such as a CRM, a help desk or a spreadsheet, use the developer features in Settings → API and Settings → Webhooks:
- Webhooks send signed JSON to your URL when conversations start, messages are sent, conversations are assigned, closed, reopened, rated or tagged, and when contacts are created, updated or deleted. Failed deliveries are retried.
- The REST API lets your own systems work with contacts and conversations using an API key.
You can connect automation tools that accept incoming webhooks, such as Zapier or Make, by pointing a TalkingDot webhook at the URL they give you. There's no dedicated app listing in those marketplaces, so you'll use their generic webhook trigger.