Slack, Discord and Telegram
Besides phone push and the shared inbox, a project can post its alerts into a Slack channel, a Discord channel or a Telegram chat. A project can have up to five destinations. Only owners and admins can add or change them.
What is sent
By default each message has the event title, its priority, the channel name and a link to the event in PingLoom. The body is off by default. An owner or admin can switch Include the message body on for one destination, and PingLoom warns that the text then leaves PingLoom. The data fields are never sent. A decision card posts its question and an Answer in PingLoom link; there are no buttons in chat, so the answer is given in the app or on the web.
Note: Mentions are neutralised: @everyone, @here and @channel in an alert title or body will not notify anyone in the chat.
Slack
- Open api.slack.com/apps and create an app for your workspace, from scratch.
- Turn on Incoming Webhooks, choose Add New Webhook to Workspace and pick the channel.
- Copy the URL. It must start with
https://hooks.slack.com/services/. Paste it into Project settings, Chat destinations.
Discord
- Open the channel settings, then Integrations, then Webhooks.
- Choose New Webhook and copy the webhook URL.
- It looks like
https://discord.com/api/webhooks/<id>/<token>. Hostsdiscord.comanddiscordapp.comare accepted.
Telegram
- Message @BotFather, send
/newbotand follow the steps. It gives you a bot token. - Add the bot to your group, or as an admin of your channel. For a private chat, send the bot a message first.
- Find the chat ID: after sending a message, open
https://api.telegram.org/bot<token>/getUpdatesin a browser and readchat.id. Groups start with a minus sign. A public channel can use@channelname. - Paste the token and the chat ID. You never type a URL: PingLoom builds the request itself. Messages are sent as plain text.
Filters
Each destination has its own filters: the lowest priority to send (High only is the default), which channels (all, or a list of slugs), and whether decision cards are included. Use Send test message to check a destination. It sends a real message and shows what the service answered. Tests are limited to 5 per 10 minutes per destination.
Retries and switch-off
If the service answers 429 or a 5xx error, or does not answer, PingLoom retries after 30 seconds, 2 minutes, 10 minutes, 1 hour and 6 hours, and waits longer if the service sends a Retry-After value. After the sixth failure the message is given up. If the service answers 401, 403 or 404, the webhook or bot is gone or refused: PingLoom switches the destination off and shows why on the settings page. Create a new webhook, paste it into Edit and the destination switches back on.
Where PingLoom connects
PingLoom connects only to hooks.slack.com, discord.com, discordapp.com and api.telegram.org, over https. It resolves the host itself, refuses non-public addresses, connects to the address it checked, never follows redirects, uses a 3 second connect and 10 second total timeout, and reads at most 64 KB of the answer. Webhook URLs and bot tokens are stored encrypted and are never shown again or written to logs.