The Telegram package supports proactive message tools and an optional chat gateway. The gateway accepts admitted text or audio messages and returns assistant replies in the originating chat.

## Create the bot

Use [@BotFather](https://t.me/BotFather) to create a bot and copy the token in the form `123456:ABC-...`. Enter it in Marketplace and store it only in the connector.

One bot token can have only one active `getUpdates` poller. Stop any previous bot process before enabling the [Pneum.ai](/content/site-root.html) chat gateway; competing pollers produce Telegram `409 Conflict` errors.

## Allow chats

Add numeric chat IDs or `@channelusernames` to the allowlist. Every proactive tool checks its `chat_id` against that boundary before calling Telegram.

Read tools retrieve allowed-chat metadata and draft text. Write tools send text or a photo URL and require connector writes.

## Enable the chat interface

Choose direct-message access: disabled, immutable-user allowlist, or open. Open DMs are rate limited per user. In groups, optionally require the bot’s `@username`.

The gateway registers `/help`, `/new`, `/model`, `/models`, `/voice`, `/voices`, and `/ai`. Approval cards use inline Approve and Deny buttons with the same platform-user authorization as `/ai` commands.

To receive ordinary group messages, disable BotFather privacy mode with `/setprivacy`. If privacy mode remains enabled, use mentions and commands instead.

## Audio behavior

Inbound audio messages are accepted by the current gateway. Other inbound media types can be skipped; use proactive photo sending or the main workspace for unsupported attachments.

## Verify

Test a direct message, an allowed group mention, a disallowed chat, an approval decision, and one proactive send. If the gateway remains unhealthy, validate the token with BotFather and check for a second poller before changing network settings.
