Slack, Discord & Telegram Alerts Setup

PingPing alerts you the moment a check fails. You can route those alerts to email, SMS (via Vonage), Slack, Discord, Telegram, or a webhook of your own. Every channel is included on every plan - there is no per-channel upcharge.

This page covers the three most-requested chat integrations. For email it is on by default; for SMS see the SMS notifications FAQ; for custom integrations see Webhooks.

Slack

PingPing posts alerts to a Slack channel through an incoming webhook. Setup takes about a minute.

  1. In Slack, open the workspace you want alerts in. Visit https://api.slack.com/apps and click Create New AppFrom scratch. Name it “PingPing” and select your workspace.
  2. Enable Incoming Webhooks in the app settings, then Add New Webhook to Workspace. Pick the channel (for example #alerts) and copy the webhook URL Slack gives you (it starts with https://hooks.slack.com/services/).
  3. In PingPing, open Account → Notification channels → Slack, paste the webhook URL, and click Test to confirm. A test message appears in the chosen Slack channel.
  4. Attach the channel to the monitors you care about from Websites → [your site] → Notifications.

Alerts post with the monitor name, the failure reason, the verifying region, and a direct link back to the PingPing dashboard for that monitor.

Discord

Discord uses the same incoming-webhook model as Slack.

  1. In Discord, open the server and channel where alerts should appear. Click the channel settings cog → IntegrationsWebhooksNew Webhook. Give it a name and copy the webhook URL (it starts with https://discord.com/api/webhooks/).
  2. In PingPing, open Account → Notification channels → Discord, paste the webhook URL, and click Test. A test alert appears in the Discord channel.
  3. Attach the channel to the monitors you want alerts for in Websites → [your site] → Notifications.

PingPing formats Discord alerts as rich embeds with color-coded status (red for down, green for recovered) so they stand out in chat.

Telegram

Telegram uses a bot rather than a webhook URL.

  1. In Telegram, message @BotFather, send /newbot, and follow the prompts. BotFather replies with an HTTP API token that looks like 123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Copy it.
  2. Create or pick the chat where alerts should land. For a personal chat, just message your new bot once. For a group, add the bot to the group and send any message so the bot can see it.
  3. Get the chat id. Open https://api.telegram.org/bot<TOKEN>/getUpdates in a browser (substitute your token). Find the "chat":{"id":...} value in the response - that is the chat id you need.
  4. In PingPing, open Account → Notification channels → Telegram, paste the bot token and chat id, click Test. The test alert lands in Telegram.
  5. Attach the channel to your monitors in Websites → [your site] → Notifications.

If you regenerate the bot token in BotFather, update the value in PingPing too - otherwise alerts will silently fail.

Mixing channels per severity

A common setup is to send every alert to Slack or Discord for visibility, then send only confirmed outages to SMS or Telegram so your phone does not buzz on every transient blip. You can attach multiple channels per monitor; PingPing fires them in parallel as soon as a downtime is confirmed by the second-region check.

When alerts do not arrive

  • Test from the channel settings first. The Test button in PingPing bypasses the monitor logic and sends a synthetic alert. If that does not arrive, the integration itself is broken.
  • Check the webhook URL or token. Slack and Discord webhooks can be revoked from their respective UIs; Telegram tokens change if you regenerate them in BotFather.
  • Confirm the channel is attached to the monitor, not just configured at the account level.
  • Check IP whitelisting if you have any in front of Slack or Discord proxies. PingPing’s outbound IPs are the same ones listed in this FAQ.

If you need PingPing to alert into a tool we do not natively integrate with (PagerDuty, Opsgenie, an internal incident tool), use Webhooks and route from there.