Skip to main content

Обзор

Система поддержки работает в трёх режимах, задаваемых переменной SUPPORT_SYSTEM_MODE: Режим переключается без перезапуска бота из админ-панели.

Тикеты для пользователей

Создание тикета

  1. Пользователь нажимает “Поддержка” в главном меню
  2. Выбирает “Создать тикет”
  3. Вводит заголовок (5-255 символов)
  4. Вводит описание (10-500 символов) или отправляет фото с подписью
  5. Тикет создаётся со статусом open и приоритетом normal
  6. Администратор получает уведомление
У пользователя может быть только один активный тикет (открытый или отвеченный). Для создания нового необходимо закрыть текущий.

Просмотр тикетов

  • Мои тикеты — список открытых/отвеченных тикетов с пагинацией (10 на страницу)
  • Закрытые тикеты — отдельная вкладка с историей
  • Детальный просмотр с историей сообщений (разбивка по 3500 символов на страницу)
  • Кнопка “Вложения” для просмотра фото (отправляются как медиагруппа)

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

  • Текст 5-400 символов или фото с подписью
  • При ответе пользователя статус меняется на open
  • Антиспам: 1 сообщение в 2 секунды, подавление дублей после создания (6 сек)

Закрытие тикета

Пользователь может закрыть свой тикет в любой момент. История сообщений сохраняется (только чтение).

Статусы и приоритеты

Статусы тикетов

Приоритеты

Администрирование тикетов

Просмотр

  • Два раздела: Открытые (open + answered) и Закрытые
  • Список с пагинацией (10 на страницу)
  • Каждый тикет показывает: статус, приоритет, имя пользователя, username, Telegram ID
  • Детальный просмотр с историей сообщений и ссылками на профиль пользователя

Действия администратора

Все действия записываются в журнал аудита (support_audit_logs).

SLA-система

SLA-мониторинг проверяет тикеты без ответа администратора и отправляет уведомления при нарушении.

Как работает

  1. Фоновая задача проверяет тикеты через заданный интервал
  2. Если тикет со статусом open не получил ответа дольше, чем SLA_MINUTES — отправляется уведомление
  3. Повторные напоминания отправляются с учётом cooldown
  4. При ответе пользователя таймер SLA сбрасывается

Настройка

Все параметры SLA можно менять в реальном времени из админ-панели бота или через Cabinet API без перезапуска.

Модераторы

Модераторы — обычные пользователи с ограниченным доступом к тикетам. Управление модераторами доступно из раздела настроек поддержки в админ-панели.

Возможности модераторов

  • Просмотр всех тикетов (открытых и закрытых)
  • Ответ на тикеты
  • Закрытие тикетов (единичное и массовое)
  • Блокировка/разблокировка пользователей
  • Просмотр вложений
Все действия модераторов логируются в журнал аудита с пометкой is_moderator=True.

Управление

  • Добавить модератора — указать Telegram ID
  • Удалить модератора — указать Telegram ID
  • Список модераторов — показать всех
Модераторы получают отдельную точку входа в интерфейсе бота (кнопка “Тикеты” в панели модератора).

Вложения

Поддерживаются фотографии:
  • Пользователи могут прикрепить фото при создании тикета или в ответе
  • Администраторы могут отправить фото в ответе
  • Фото хранятся как Telegram file_id
  • Просмотр через кнопку “Вложения” — отправляются медиагруппой (до 10 фото)

Мультимедиа-галерея

В одном сообщении тикета можно отправить до 10 вложений (фото, документы). Вложения группируются в медиагруппу и отображаются как галерея:
  • Пользователь отправляет несколько фото или файлов одним сообщением (медиагруппой Telegram)
  • Все вложения из медиагруппы привязываются к одному сообщению тикета
  • При просмотре вложения отображаются как единая галерея
  • Максимум 10 вложений на одно сообщение (ограничение Telegram API)

Уведомления

Тикет-система использует 4 канала уведомлений:

Защита от злоупотреблений

  • Один активный тикет — нельзя создать новый при наличии открытого
  • Глобальная блокировка — заблокированный в любом тикете пользователь не может создавать новые
  • Rate limiting — 1 сообщение в 2 секунды (через Redis)
  • Защита от дублей — проверка FSM-состояния + подавление на 6 секунд после создания
  • Автоудаление сообщений — пользовательские сообщения удаляются через 2 секунды для чистоты чата

Настройки поддержки

Основные переменные

Настройки из админ-панели (без перезапуска)

Уведомления

Cabinet и Web API

Тикет-система полностью доступна через Cabinet (веб-интерфейс) и Web API:
  • Пользователи: создание тикетов, ответы, просмотр уведомлений (текст до 4000 символов)
  • Администраторы: просмотр всех тикетов, ответы, смена статуса/приоритета, статистика
  • Web API: полный доступ через токен (статус, приоритет, блокировки, ответы, медиа)