Техническое задание
Telegram-бот службы поддержки клиентов
1. Цель проекта
Разработать Telegram-бота, который является основным каналом связи с поддержкой,
обеспечивает:
• приём обращений пользователей,
• автоматические ответы вне рабочего времени на базе базы знаний (RAG через
n8n),
• передачу диалога операторам в рабочее время,
• хранение истории обращений,
• работу операторов через Telegram без отдельной веб-панели
2. Роли в системе
1. Пользователь — клиент, обращающийся в поддержку
2. Оператор поддержки — заранее добавленные Telegram-пользователи (X человек),
которые:
• получают обращения,
• отвечают через Telegram,
• видят историю кейса
3.Администратор (опционально) — управляет настройками бота и операторами
3. Рабочее время поддержки
• Рабочие часы задаются в конфигурации бота (дни недели, время, часовой пояс)
• Бот автоматически определяет, находится ли текущее время:
• в рабочем периоде
• или вне рабочего времени
4. Поведение бота при старте
При команде /start бот:
1. Приветствует пользователя Картинкой с лого
2. Сообщает, что является официальным способом связи с поддержкой
3. В зависимости от времени:
• В рабочее время
«Поддержка сейчас на связи. Обычно мы отвечаем в течение 5–30 минут.»
• В нерабочее время
«Поддержка работает с {график}. Сейчас нерабочее время, но я постараюсь помочь
автоматически.»
5. Приём и обработка сообщений
• Бот принимает текстовые сообщения (опционально: файлы и изображения)
• Для каждого обращения создаётся кейс (тикет) с уникальным ID
• Фиксируются:
• Telegram user_id
• имя / username
• дата и время
• статус кейса
6. Логика в рабочее время
1. Сообщение пользователя:
• сохраняется в истории кейса
• пересылается всем операторам поддержки, кто первый взял кейс командой
/take, за тем кейс и закрепляется. Ответы остальных уже не уходят о чем бот
должен сообщать “Оператор @username уже назначен” до тех пор пока не
сработает SLA.
2. Ответ оператора:
• осуществляется реплаем на сообщение бота
• автоматически доставляется пользователю от имени бота
3. Статусы кейса:
• open
• in_progress
• lost_operator
• resolved
Закрытие кейса производится оператором вручную (командой) либо автоматически после
заданного периода неактивности после ответа оператора или бота.
7. Логика в нерабочее время (автоматическая
помощь)
1. Сообщение пользователя:
• сохраняется в кейсе
• передаётся в n8n workflow
2. n8n:
• использует RAG (Vector DB + LLM)
• формирует ответ на основе базы знаний
3. Бот отправляет пользователю ответ и задаёт вопрос:
«Этот ответ помог решить вопрос?»
Кнопки: Да / Нет
Если выбрано Да кейс закрывается, если выбрано Нет Бот спрашивает “Хотите
попробовать еще раз или оставить ваше сообщение человеку, чтобы он ответил в рабочее
время?” Кнопки Попробовать еще раз и Человек. Если выбрано Попробовать еще раз идем
на шаг 1. Если выбрано человек на остальные сообщения бот отвечает “Спасибо, человек
ответит вам в {график}”.
4. Обработка ответа пользователя:
• вся история кейса передаётся операторам, когда начинается рабочее время
8. История кейсов
Для каждого кейса хранится полная история:
• пользователь
• все сообщения пользователя
• автоответы (с пометкой)
• ответы операторов (с пометкой кто username в тг)
• временные метки
• финальный статус
История:
• привязана к пользователю
• доступна операторам
• хранится в базе данных
9. Команды для операторов
• /take — взять кейс в работу
• /close — закрыть кейс
• /history — показать историю обращений пользователя
• /note — внутренняя заметка (не видна пользователю)
10. Автоматический SLA
Если назначенный оператор не ответил в рабочее время:
• 30 минут → напоминание оператору
• 2 часа → эскалация (другому оператору) куйс снова надо взять. (статус
Опубликован 11.02.2026 в 13:29