> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Telegram-бот школы

> Подключение собственного Telegram-бота, авторизация учеников и автоматические приглашения в каналы и чаты групп

Школа может подключить **собственного Telegram-бота**, чтобы авторизовать учеников через Telegram
и автоматически добавлять их в закрытые каналы и чаты учебных групп. Бот работает от имени вашей
школы (со своим именем и токеном), а не от общего сервисного бота платформы.

## Что умеет бот

* Авторизация и привязка Telegram-аккаунта ученика к профилю на платформе.
* Автоматическая рассылка персональных приглашений в Telegram-канал и чат учебной группы.
* Отправка приветственного сообщения при выдаче пригласительной ссылки.
* Требование привязать Telegram как условие перед оплатой (опционально).

## Подключение бота

Токен и имя бота настраиваются один раз на уровне школы, после чего используются во всех группах.

<Steps>
  <Step title="Создайте бота в @BotFather">
    В Telegram откройте <a href="https://t.me/BotFather">@BotFather</a> и создайте нового бота.
    BotFather выдаст **токен** и **имя** (username) бота.
  </Step>

  <Step title="Укажите домен школы в настройках бота">
    В @BotFather откройте: Бот → Настройки → Домен и укажите домен вашей школы. Это нужно для
    работы кнопки авторизации через Telegram.
  </Step>

  <Step title="Внесите токен и имя в админку">
    Перейдите в **«Моя школа» → «Настройки регистрации»** (раздел авторизации через Telegram) и
    заполните поля **«Токен бота»** и **«Имя бота»** (username без символа `@`, например `my_bot`).
    Сохраните.
  </Step>
</Steps>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/marketing/school-tg-bot-token.png" alt="Форма подключения Telegram-бота школы: поля токена и имени бота" />

<Warning>
  Пока токен бота школы не указан, интеграция с Telegram в настройках групп не работает — в разделе
  коммуникации группы показывается предупреждение «Не установлен токен Telegram-бота школы».
  Токен хранится в защищённом поле и вводится по образцу из BotFather.
</Warning>

## Привязка Telegram учеником

После подключения бота ученик может привязать свой Telegram-аккаунт к профилю. На странице привязки
отображается кнопка входа через Telegram (виджет `telegram-widget.js`), которая использует имя
вашего бота. После подтверждения аккаунт ученика связывается с профилем, а `tgId` сохраняется.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/marketing/user-connect-telegram.png" alt="Кнопка «Подключить Telegram» в настройках профиля ученика" />

Привязку можно отвязать в настройках — платформа запросит подтверждение перед отвязкой.

## Каналы и чаты учебных групп

Каждую учебную группу можно связать с Telegram-каналом и/или групповым чатом. Настройки находятся
в разделе группы: **«Настройки группы» → «Коммуникация»**.

### Идентификаторы канала и чата

| Поле                                       | Назначение                                                 |
| ------------------------------------------ | ---------------------------------------------------------- |
| **ID канала в Telegram** (`tgChannelId`)   | Числовой ID Telegram-канала группы (например, `-12345678`) |
| **ID группы в Telegram** (`tgGroupChatId`) | Числовой ID группового чата (например, `-12345678`)        |

Бот школы должен быть добавлен администратором в этот канал/чат, чтобы иметь право приглашать
участников.

### Автоматические приглашения

Когда группа связана с Telegram, бот рассылает участникам с привязанным Telegram персональные
ссылки-приглашения в канал и чат. Платформа отслеживает статус для каждого участника:

| Статус                           | Что означает                                     |
| -------------------------------- | ------------------------------------------------ |
| Ссылка не отправлена             | Участнику ещё не отправлено приглашение          |
| Ссылка отправлена                | Приглашение уже отправлено                       |
| Telegram не привязан             | У участника не привязан Telegram-аккаунт         |
| Отправлена ссылка на прошлый чат | Приглашение относилось к предыдущему чату группы |

Если есть участники с привязанным Telegram, которым ещё не отправлено приглашение, в настройках
коммуникации появляется блок **«Пропущенные приглашения в Telegram»** с кнопкой
**«Разослать приглашения»** и счётчиком таких участников. Бот отправит каждому личное сообщение
с персональными ссылками.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/marketing/group-tg-invites.png" alt="Раздел коммуникации группы с кнопкой массовой рассылки приглашений в Telegram" />

### Дополнительные настройки

В расширенных настройках коммуникации доступны:

* **Приветственное сообщение** (`tgChatInviteText`) — текст, который бот отправляет вместе с
  пригласительной ссылкой. Поддерживается Markdown (V2), до 500 символов.
* **Запрашивать Telegram перед оплатой** (`tgIdRequiredOnEnrollment`) — если включено, подключение
  Telegram становится условием для перехода к оплате. У цены группы за это отвечает режим
  подключения `Required`.

<Note>
  Внутри платформы у группы также есть собственные чат и канал в разделе сообщений
  («Чат в мессенджере» и «Канал в мессенджере») — они работают независимо от Telegram и
  управляются теми же переключателями в разделе коммуникации.
</Note>

## Сценарии использования

<Card title="Закрытый канал курса">
  Свяжите группу курса с приватным Telegram-каналом. После покупки ученик привязывает Telegram и
  автоматически получает от бота приглашение — доступ выдаётся без ручной работы.
</Card>

<Card title="Обязательная привязка перед оплатой">
  Включите «Запрашивать Telegram перед оплатой», чтобы гарантировать: у каждого покупателя есть
  привязанный Telegram и его можно добавить в чат сразу после оплаты.
</Card>

<Card title="Догоняющая рассылка">
  Если часть учеников подключила Telegram позже, воспользуйтесь кнопкой «Разослать приглашения»,
  чтобы бот отправил приглашения всем, кто их ещё не получил.
</Card>
