# Integrations — Slack & Telegram notifiers

Source: https://docs.externa.qiick.io/docs/integrations

Externa can fan out **human-readable** alerts to **Slack** (incoming webhook) and/or **Telegram** (bot `sendMessage`) for the same domain events as [outbound webhooks](/docs/webhooks). This is **outbound only** — Externa is not a Slack or Telegram chat backend.

> **Related**
> [Project settings](/docs/project-settings) · [Outbound webhooks](/docs/webhooks) · [Operations (queue worker)](/docs/operations) · [Security checklist](/docs/security-checklist)

## Configure

1. Admin → **Settings** → **Project**
2. Under **Outbound notifiers (Slack & Telegram)**:
   - **Slack:** paste an [Incoming Webhook](https://api.slack.com/messaging/webhooks) URL, save, then **Send Slack test**
   - **Telegram:** create a bot via [@BotFather](https://t.me/BotFather), add the bot to your channel/group, set **Chat ID** and **bot token**, save, then **Send Telegram test**

Leave fields empty to disable each channel. Telegram requires **both** chat ID and token.

The bot token must be the BotFather format (`123456:ABC…`), not the bot username. **Send Telegram test** runs synchronously and shows the Bot API error (for example `HTTP 404 — Not Found`) if the token or chat ID is wrong. The bot token is stored encrypted.

> Delivery uses `DeliverSlackOutboundNotifierJob` and `DeliverTelegramOutboundNotifierJob`. Run a queue worker (`composer run dev` locally, or `php artisan queue:work` in production). See [Operations](/docs/operations).

## Events

Notifiers subscribe to the same event bus as outbound webhooks (see the webhook [event catalog](/docs/webhooks#event-types-v1)). Under **Notify on these events**, choose which types fan out to Slack/Telegram; unchecked types stay silent there. Outbound webhooks are **not** filtered by this list. Bulk imports still use `OutboundWebhookDispatcher::withoutWebhooks()`, which suppresses notifier fan-out as well. **Send test** (`ping`) always works.

Messages are short human summaries (headline, description, item/file title when known, collection name + slug, approval status, actor, timestamp, admin deep link) — not full record dumps. Outbound webhook JSON payloads stay minimal (ids/slug only).

## Privacy

When enabled, event metadata leaves your self-hosted Externa instance and is processed by Slack or Telegram under their terms. Review provider policies before enabling in regulated environments.
