---
title: "Messaging"
description: "Deliver investigation findings and trigger investigations from Slack, Discord, Telegram, WhatsApp, or Twilio SMS."
---

OpenSRE can deliver investigation findings — and accept investigation triggers — through five messaging platforms. Pick the one that matches where your team already responds to incidents.

## Pick a platform

| Platform | Best for | Trigger investigations from chat? | Configured by | Setup time |
|---|---|---|---|---|
| [**Slack**](/messaging/slack) | Teams already paged in Slack channels | ❌ delivery only (incoming webhook) | `opensre integrations setup slack` | ~5 min |
| [**Discord**](/messaging/discord) | Communities and teams using Discord servers | ✅ `/investigate` slash command in any channel the bot is in | `opensre onboard` or `opensre integrations setup discord` | ~10 min |
| [**Telegram**](/messaging/telegram) | Mobile-first and on-call rotations | ✅ DM text chat via `opensre gateway start` | `opensre onboard` or `opensre integrations setup telegram` | ~5 min |
| [**WhatsApp**](/messaging/whatsapp) | Mobile alerting via Twilio WhatsApp | ❌ delivery only | `opensre integrations setup whatsapp` | ~5 min |
| [**Twilio SMS**](/messaging/twilio-sms) | SMS paging via Twilio (separate from WhatsApp) | ❌ delivery only | `opensre integrations setup twilio` | ~5 min |

If you're not sure, start with Slack — it has the simplest setup. Pick Discord if you want chat-driven investigations with threaded follow-ups. Pick WhatsApp or Twilio SMS when your team already pages via Twilio.

You can configure more than one. Each is independent and uses its own credentials.

## What every guide covers

Each platform guide walks you through:

1. **Prerequisites** — what you need before you start (workspace/server admin rights, a phone number for Telegram, a Twilio account for WhatsApp, etc.).
2. **Create the bot/app** — the platform-side setup (BotFather, Discord Developer Portal, Slack App).
3. **Credentials** — the exact tokens, IDs, and keys to copy.
4. **OpenSRE wizard** — the `opensre onboard` flow, what it asks for, and what it writes to `.env`.
5. **Verify** — how to confirm delivery is working.
6. **Troubleshooting** — common failures and how to read the error.

---

## Common environment variables

Discord and Telegram credentials can also be set directly in `.env` instead of (or alongside) the CLI configuration:

```bash
# Slack — read as a fallback when no Slack entry exists in
# ~/.opensre/integrations.json
SLACK_WEBHOOK_URL=

# Discord
DISCORD_BOT_TOKEN=
DISCORD_APPLICATION_ID=
DISCORD_PUBLIC_KEY=
DISCORD_DEFAULT_CHANNEL_ID=

# Telegram
TELEGRAM_BOT_TOKEN=
TELEGRAM_DEFAULT_CHAT_ID=

# WhatsApp (Twilio)
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_WHATSAPP_FROM=
WHATSAPP_DEFAULT_TO=

# Twilio SMS (shares TWILIO_ACCOUNT_SID / TWILIO_AUTH_TOKEN)
TWILIO_SMS_FROM=
TWILIO_SMS_MESSAGING_SERVICE_SID=
TWILIO_SMS_DEFAULT_TO=
```

After editing `.env`, run `opensre integrations verify <service>` (e.g. `opensre integrations verify telegram`, `opensre integrations verify whatsapp`, or `opensre integrations verify twilio`) to confirm the credentials work. Note that `opensre doctor` only inspects the integrations store (`~/.opensre/integrations.json`), so it does **not** detect env-var-only configurations like Telegram, WhatsApp, Twilio SMS, or Slack-via-`SLACK_WEBHOOK_URL`.

---

## Re-running the wizard

You can re-run the Discord wizard at any time to update credentials:

```bash
opensre onboard
```

Existing values are pre-populated, so you can press Enter to keep what you have. Slack, WhatsApp, and Twilio SMS use `opensre integrations setup slack`, `opensre integrations setup whatsapp`, and `opensre integrations setup twilio`. Telegram does not currently have a wizard step that persists credentials — use `.env` for Telegram (see [#1481](https://github.com/Tracer-Cloud/opensre/issues/1481)).
