Skip to main content

Обзор

Бот отправляет 35+ типов уведомлений в админские Telegram-чаты. Уведомления маршрутизируются по топикам внутри супергруппы — каждый тип событий можно направить в отдельный топик.

Настройка чатов

Основной чат уведомлений

# Включить уведомления (по умолчанию выключено)
ADMIN_NOTIFICATIONS_ENABLED=true

# ID супергруппы для уведомлений
ADMIN_NOTIFICATIONS_CHAT_ID=-1001234567890

# ID топика для общих уведомлений (опционально)
ADMIN_NOTIFICATIONS_TOPIC_ID=123

Специализированные топики

Каждый тип событий можно направить в свой топик. Если специальный топик не указан — уведомления уходят в ADMIN_NOTIFICATIONS_TOPIC_ID.
ПеременнаяНазначениеФоллбэк
ADMIN_NOTIFICATIONS_TOPIC_IDОбщие уведомленияGeneral (без топика)
ADMIN_NOTIFICATIONS_TICKET_TOPIC_IDТикеты поддержкиADMIN_NOTIFICATIONS_TOPIC_ID
ADMIN_NOTIFICATIONS_NALOG_TOPIC_IDОчередь чеков NaloGOADMIN_NOTIFICATIONS_TOPIC_ID
SUSPICIOUS_NOTIFICATIONS_TOPIC_IDАномалии трафикаADMIN_NOTIFICATIONS_TOPIC_ID
REFERRAL_WITHDRAWAL_NOTIFICATIONS_TOPIC_IDЗапросы на вывод средствADMIN_NOTIFICATIONS_TOPIC_ID

Чат отчётов

ADMIN_REPORTS_ENABLED=true
ADMIN_REPORTS_CHAT_ID=-1001234567890
ADMIN_REPORTS_TOPIC_ID=456
ADMIN_REPORTS_SEND_TIME=09:00
Если ADMIN_REPORTS_CHAT_ID не указан — отчёты отправляются в ADMIN_NOTIFICATIONS_CHAT_ID.

Чат бэкапов

BACKUP_SEND_CHAT_ID=-1001234567890
BACKUP_SEND_TOPIC_ID=789

Чат логов

LOG_ROTATION_ENABLED=true
LOG_ROTATION_SEND_TO_TELEGRAM=true
LOG_ROTATION_CHAT_ID=-1001234567890
LOG_ROTATION_TOPIC_ID=101
Если LOG_ROTATION_CHAT_ID не указан — логи отправляются в BACKUP_SEND_CHAT_ID.

Финансовые уведомления

Пополнение баланса

Отправляется при каждом успешном платеже через любую платёжную систему. Содержимое:
  • Пользователь (имя, ID, username)
  • Статус: первое или повторное пополнение
  • Промогруппа (если есть)
  • Сумма и способ оплаты
  • Баланс до → после
  • Статус подписки (триал/активна/неактивна)
  • Реферер (если есть)
  • Технические детали: ID транзакции, внешний ID, UUID чека

Покупка подписки

Отправляется при покупке, продлении, конверсии из триала или смене тарифа. Заголовок меняется в зависимости от типа:
  • Первая покупка → «Покупка подписки»
  • Повторная → «Продление подписки»
  • Из триала → «Конверсия из триала»
  • Смена тарифа → «Смена тарифа»
Содержимое:
  • Пользователь, тариф, способ оплаты, сумма
  • Период, дата окончания, трафик, устройства, серверы
  • Баланс после покупки, реферер, ID транзакции

Продление подписки

Отправляется при явном продлении существующей подписки. Содержимое:
  • Пользователь, промогруппа с деталями скидок
  • Сумма, способ оплаты, ID транзакции
  • Добавленные дни, старая → новая дата окончания
  • Текущие параметры: трафик, устройства, серверы

Докупка трафика/устройств/серверов

Отправляется при покупке дополнений к подписке. Заголовок: «Докупка трафика» / «Докупка устройств» / «Смена серверов» Содержимое:
  • Пользователь, тариф
  • Изменение: старое → новое значение
  • Стоимость, дата окончания подписки, баланс

Подписки и триалы

Активация триала

Отправляется при активации пробной подписки. Содержимое:
  • Пользователь, статус (новый/существующий)
  • Промогруппа, тариф (если тарифный режим)
  • Параметры триала: длительность, трафик, устройства, сервер
  • Оплата за активацию (если платный триал)
  • Дата окончания, реферер

Промо и маркетинг

Активация промокода

Содержимое:
  • Пользователь, промогруппа
  • Код, тип (деньги / дни подписки / триал), использований
  • Бонус (сумма или дни), срок действия
  • Баланс до → после, эффект

Переход по рекламной кампании

Отправляется при клике по deep-ссылке кампании. Содержимое:
  • Кампания: название, ID, стартовый параметр
  • Пользователь, статус (новый/существующий)
  • Промогруппа, бонус кампании (баланс или подписка)

Смена промогруппы

Отправляется при автоматической (по лояльности) или ручной смене промогруппы. Содержимое:
  • Пользователь
  • Новая группа с деталями скидок
  • Предыдущая группа (если была)
  • Инициатор (админ или «Автоматически»), причина

Поддержка

Новый тикет

Отправляется в топик ADMIN_NOTIFICATIONS_TICKET_TOPIC_ID. Содержимое: информация о пользователе, тема тикета, превью сообщения, кнопки для ответа.

Ответ на тикет

Отправляется при ответе пользователя на существующий тикет.

Напоминание о SLA

Автоматическая проверка каждые SUPPORT_TICKET_SLA_CHECK_INTERVAL_SECONDS (по умолчанию 60 сек). Если тикет без ответа дольше SUPPORT_TICKET_SLA_MINUTES (по умолчанию 5 мин) — отправляется напоминание.
SUPPORT_TICKET_SLA_ENABLED=true
SUPPORT_TICKET_SLA_MINUTES=5
SUPPORT_TICKET_SLA_CHECK_INTERVAL_SECONDS=60
SUPPORT_TICKET_SLA_REMINDER_COOLDOWN_MINUTES=15
Кулдаун между напоминаниями по одному тикету: SUPPORT_TICKET_SLA_REMINDER_COOLDOWN_MINUTES.
Уведомления о тикетах можно включить/выключить без перезапуска через настройки поддержки в админ-панели.

Партнёры и выводы

Заявка на партнёрство

Содержимое:
  • Пользователь
  • Данные заявки: название компании, Telegram-канал, сайт, описание, ожидаемые рефералы

Запрос на вывод средств

Отправляется в два места:
  1. Основной топик уведомлений
  2. Специальный топик REFERRAL_WITHDRAWAL_NOTIFICATIONS_TOPIC_ID (если настроен)
Содержимое:
  • Пользователь, сумма вывода, текущий баланс, реквизиты

Мониторинг и система

Статус панели RemnaWave

Отправляется при изменении доступности панели.
СтатусОписание
OnlineURL, время ответа, аптайм, пользователи онлайн
OfflineURL, ошибка, количество последовательных ошибок
DegradedСписок проблем (до 3)
MaintenanceПричина, ожидаемое время

Режим обслуживания

Отправляется при включении/выключении техработ.
СобытиеОписание
ВключениеПричина, время, автоматическое или ручное
ВыключениеВремя, длительность окна обслуживания
API онлайнURL, время ответа, предыдущее количество ошибок
API оффлайнURL, номер попытки, текст ошибки
Мониторинг запущенИнтервал проверки, порог ошибок
Мониторинг остановлен

Аномалии трафика

Отправляется в топик SUSPICIOUS_NOTIFICATIONS_TOPIC_ID.
TRAFFIC_MONITORING_ENABLED=true

# Быстрая проверка (каждые N минут)
TRAFFIC_FAST_CHECK_ENABLED=true
TRAFFIC_FAST_CHECK_INTERVAL_MINUTES=5

# Ежедневная проверка
TRAFFIC_DAILY_CHECK_ENABLED=true

# Кулдаун между уведомлениями по одному пользователю
TRAFFIC_NOTIFICATION_COOLDOWN_MINUTES=60
Максимум 10 уведомлений за одну проверку. Кулдаун на пользователя предотвращает спам.

Массовая блокировка

Отправляется когда админ выполняет массовую блокировку пользователей. Содержимое: имя админа, количество заблокированных, не найденных, ошибок, процент успеха.

Обновления бота

Доступно обновление

Бот проверяет GitHub раз в час. При обнаружении новой версии: Содержимое:
  • Тип: релиз / pre-release / dev build
  • Версии: текущая → новая (со ссылкой на GitHub)
  • Дата релиза, changelog
  • Количество доступных обновлений

Ошибка проверки обновлений

Если GitHub API недоступен — уведомление с ошибкой и информацией о повторной попытке через 1 час.

Запуск и крэши

Запуск бота

Отправляется один раз при успешном старте. Содержимое:
  • Версия бота
  • Статистика: пользователи, активные подписки, общий баланс, открытые тикеты
  • Статус панели RemnaWave
  • Кнопки: GitHub, комьюнити, поддержка

Крэш-репорт

Отправляется при фатальной ошибке запуска (webhook, БД, Redis, RemnaWave, авторизация). Содержимое:
  • Тип и текст ошибки
  • Рекомендации по исправлению (зависят от типа ошибки)
  • Прикреплённый файл crash_report_{timestamp}.txt с полным traceback

Ошибки в хендлерах

Необработанные исключения автоматически отправляются в админ-чат. Содержимое: файл error_report_{timestamp}.txt с traceback, контекстом хендлера и информацией о пользователе.
Отчёты об ошибках отправляются даже если ADMIN_NOTIFICATIONS_ENABLED=false — достаточно указать ADMIN_NOTIFICATIONS_CHAT_ID. Частота ограничена буфером (макс. 10 ошибок) и кулдауном.

Автоматические отчёты

Ежедневный отчёт

Отправляется автоматически в ADMIN_REPORTS_SEND_TIME (московское время).
ADMIN_REPORTS_ENABLED=true
ADMIN_REPORTS_CHAT_ID=-1001234567890
ADMIN_REPORTS_TOPIC_ID=456
ADMIN_REPORTS_SEND_TIME=09:00
Содержимое:
  • Новые регистрации
  • Активации триалов
  • Конверсии триал → платная подписка
  • Покупки подписок
  • Сумма пополнений и платежей за подписки
  • Тикеты поддержки (открытые/закрытые)
  • Метрики активности пользователей
  • Топ рефереров

Еженедельный и ежемесячный отчёты

Формируются по запросу через админ-панель. Те же метрики, агрегированные за 7 или 30 дней.

Бэкапы

Уведомление о бэкапе

Отправляется после каждого автобэкапа (успех или ошибка).
РезультатСодержимое
УспехРазмер файла, длительность
ОшибкаДетали ошибки
ВосстановлениеУспех/ошибка восстановления

Файл бэкапа

Сам файл бэкапа отправляется в отдельный чат BACKUP_SEND_CHAT_ID.
BACKUP_SEND_CHAT_ID=-1001234567890
BACKUP_SEND_TOPIC_ID=789

# Интервал автобэкапов
BACKUP_INTERVAL_HOURS=24
BACKUP_TIME=03:00
Файл может быть защищён паролем (ZIP). Подпись содержит метаданные бэкапа.

Ротация логов

Ежедневно в LOG_ROTATION_TIME архивируются лог-файлы (bot.log, info.log, warning.log, error.log, payments.log) и отправляются в чат.
LOG_ROTATION_ENABLED=true
LOG_ROTATION_SEND_TO_TELEGRAM=true
LOG_ROTATION_TIME=04:00
LOG_ROTATION_CHAT_ID=-1001234567890
LOG_ROTATION_TOPIC_ID=101
Файл: tar.gz архив с подписью, содержащей список логов и их размеры.

RemnaWave Webhook-события

При настроенном RemnaWave webhook бот получает и пересылает в админ-чат события панели:

Ноды

СобытиеОписание
node.createdНовая нода зарегистрирована
node.modifiedКонфигурация ноды изменена
node.enabled / node.disabledНода включена/выключена
node.deletedНода удалена
node.connection_lostПотеря связи с нодой
node.connection_restoredСвязь восстановлена
node.traffic_notifyПорог трафика ноды

Сервисы

СобытиеОписание
service.panel_startedПанель запущена/перезапущена
service.login_attempt_failedНеудачная попытка входа в панель
service.login_attempt_successУспешный вход в панель
service.subpage_config_changedИзменение конфига страницы подписки

Биллинг нод (CRM)

СобытиеОписание
Оплата через 7 днейНапоминание о предстоящей оплате
Оплата через 48 часовСрочное напоминание
Оплата через 24 часаКритическое напоминание
Оплата сегодняОплата в день платежа
Просрочка 24ч / 48ч / 7 днейУведомления о просрочке

Статус очереди фискальных чеков отправляется в топик ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID. Кулдаун: 1 час между уведомлениями. Содержимое: статус очереди, количество ошибочных чеков, детали ошибок.

Конкурсы

Ежедневная сводка по конкурсу

Отправляется ежедневно во время активного реферального конкурса. Содержимое: текущие позиции участников, топ рефереров, количество рефералов.

Итоги конкурса

Отправляется при завершении конкурса. Содержимое: финальные результаты, победители, общее количество рефералов.

Сводная таблица

УведомлениеЧатТопикФлагЧастота
Пополнение балансаNOTIFICATIONSTOPICENABLEDСобытие
Покупка подпискиNOTIFICATIONSTOPICENABLEDСобытие
Продление подпискиNOTIFICATIONSTOPICENABLEDСобытие
Докупка трафика/устройствNOTIFICATIONSTOPICENABLEDСобытие
Активация триалаNOTIFICATIONSTOPICENABLEDСобытие
Активация промокодаNOTIFICATIONSTOPICENABLEDСобытие
Переход по кампанииNOTIFICATIONSTOPICENABLEDСобытие
Смена промогруппыNOTIFICATIONSTOPICENABLEDСобытие
Заявка на партнёрствоNOTIFICATIONSTOPICENABLEDСобытие
Запрос на выводNOTIFICATIONSWITHDRAWAL_TOPICENABLEDСобытие
Массовая блокировкаNOTIFICATIONSTOPICENABLEDСобытие
Новый тикетNOTIFICATIONSTICKET_TOPICENABLED + runtimeСобытие
Ответ на тикетNOTIFICATIONSTICKET_TOPICENABLED + runtimeСобытие
Напоминание SLANOTIFICATIONSTICKET_TOPICSLA_ENABLEDИнтервал
Аномалии трафикаNOTIFICATIONSSUSPICIOUS_TOPICChat IDИнтервал
Статус панелиNOTIFICATIONSTOPICENABLEDСобытие
Режим обслуживанияNOTIFICATIONSTOPICENABLEDСобытие
Доступно обновлениеNOTIFICATIONSTOPICENABLEDЕжечасно
Ошибка обновленияNOTIFICATIONSTOPICENABLEDЕжечасно
Запуск ботаNOTIFICATIONSENABLEDПри старте
Крэш-репортNOTIFICATIONSENABLEDПри крэше
Ошибки хендлеровNOTIFICATIONSChat IDThrottled
Очередь NaloGONOTIFICATIONSNALOG_TOPICENABLED1ч кулдаун
RemnaWave webhook (12 типов)NOTIFICATIONSTOPICENABLEDСобытие
Сводка конкурсаNOTIFICATIONSTOPICКонкурс активенЕжедневно
Итоги конкурсаNOTIFICATIONSTOPICКонкурс активенПри завершении
Ежедневный отчётREPORTSREPORTS_TOPICREPORTS_ENABLEDЕжедневно
Файл бэкапаBACKUPBACKUP_TOPICBACKUP_CHAT setПо расписанию
Статус бэкапаNOTIFICATIONSTOPICENABLEDПо расписанию
Архив логовLOG_ROTATIONLOG_TOPICLOG_ENABLEDЕжедневно
Бот не должен быть администратором в чате с топиками — иначе он будет отвечать на сообщения. Достаточно добавить бота как обычного участника. Для топиков нужна супергруппа с включёнными топиками.