{% extends "admin_base.html" %} {% import "macros/admin_crud_list.html" as crud %} {% block page_title %}Telegram Bots{% endblock %} {% block extra_head %} {% include "partials/workspace_ui_head.html" %} {% endblock %} {% block admin_content %}

Maximum bots for this tenant: {{ bot_count }} / {{ max_bots }} (change under plugin settings). Other plugins consume inbound traffic via telegram.message and reply with telegram.send including bot_id.

  1. Create a bot in Telegram with @BotFather (/newbot) — note the @username and token.
  2. Add the bot here with that token — the webhook is registered automatically (use the row action only if you need to re-register after a domain change).
  3. Open the bot’s Telegram link (shown in the Telegram column, e.g. t.me/YourBot) and send any message (e.g. /start or hello).
  4. That chat appears under Active Chats and in Send test message → Recipient.
  5. New chats start as Pending when approval is required (plugin settings / per-bot): review the Conversation below, then Approve or Block. Only approved chats reach other plugins via telegram.message.
  6. With Self-enrollment on (plugin settings), unlinked chats get a one-time link to /plugins/telegram/enroll. Completing it while signed in creates a row under Linked users.
{{ crud::shell_open(config_url="/plugins/telegram/assets/admin/bots_list.json", mount_id="telegram-bots-list", custom_mount=true) }}
Loading bots…
{{ crud::shell_close() }}

Send test message

People and groups that have messaged the selected bot. New chats appear after they send any message.

{{ crud::shell_open(config_url="/plugins/telegram/assets/admin/chats_list.json", mount_id="telegram-chats-list") }}
Loading chats…
{{ crud::shell_close() }}

Conversation

Consolidated inbound + outbound messages for one chat. Open via the action on any chat row, or pick a chat below.

No conversation selected.

{% endblock %} {% block scripts %} {% endblock %}