Исходная ситуация: внутренняя IT-служба компании принимает обращения сотрудников через общий чат и почту. Из-за этого теряются детали, дублируются заявки и нет единой статистики. Есть Jira Service Management (Cloud) как Service Desk, аутентификация сотрудников через корпоративный SSO (Azure AD). Хотим, чтобы сотрудники создавали обращения через Telegram-бота, а заявки автоматически попадали в JSM с корректной категорией, приоритетом и маршрутизацией. Техническая среда и ограничения: Telegram Bot API. Jira Service Management Cloud REST API. Azure AD для проверки принадлежности пользователя к домену. Развёртывание в Docker в нашей инфраструктуре (Linux VM). Ограничение: у бота не должно быть постоянного хранения персональных данных, допускается хранение минимального набора (Telegram user id, хэш-идентификатор сотрудника, токены только в зашифрованном виде или не хранить вовсе). Логи должны быть без содержимого обращений (только технические события и идентификаторы). Язык общения бота - RU. Что должен делать бот: 1) Авторизация - пользователь привязывает Telegram к корпоративной учётке через безопасный flow: бот выдаёт ссылку на короткоживущий токен, пользователь проходит login в Azure AD, после чего бот получает подтверждение и разрешает работу. 2) Создание заявки - диалог собирает обязательные поля: тип запроса (инцидент, доступы, оборудование, ПО), краткое описание, подробности, критичность, затронутый сервис из списка, вложения (скриншоты). 3) Автоклассификация - на основе ключевых слов/шаблонов (настраиваемая таблица правил) предлагает категорию/компонент и очередь (request type) в JSM, пользователь подтверждает или меняет. 4) Создание тикета в JSM - формирует request с нужными custom fields, прикрепляет файлы, возвращает номер и ссылку. 5) Статус и комментарии - по команде показывает последние 5 заявок пользователя, текущий статус, умеет отправлять комментарий в тикет и получать уведомления о смене статуса/комментарии в Telegram (webhook от JSM или периодический опрос с дедупликацией). 6) Антидубли - перед созданием тикета бот делает быстрый поиск похожих открытых заявок пользователя за последние 7 дней (по ключевым словам/сервису) и предлагает привязаться к существующей. Ожидаемый результат: репозиторий с исходным кодом (предпочтительно Python 3.11+ или Node.js 20+), Dockerfile и docker-compose для запуска, конфигурация через переменные окружения, миграция/инициализация правил классификации, инструкция по установке и эксплуатации (RU), минимальный набор автотестов на ключевые сценарии, настроенный webhook режим Telegram. Критерии приёмки (измеримые): 1) Новый пользователь без привязки не может создавать заявки, после успешной авторизации может. 2) Создание инцидента с вложением приводит к появлению заявки в JSM с заполненными полями и прикреплённым файлом, бот возвращает корректный request key. 3) Уведомление о смене статуса в JSM приходит в Telegram не позднее 2 минут (в тестовой среде). 4) В логах нет текста обращений и персональных данных кроме технических идентификаторов. 5) Перезапуск контейнера не ломает работу бота и не требует ручных действий для восстановления webhook/подписок. Этапность: сначала прототип диалога и создание тикета, затем SSO-привязка, затем уведомления и комментарии, затем антидубли и правила классификации, затем упаковка в Docker и документация. Доступы: дадим тестовый проект JSM, тестовый Azure AD app registration, токен Telegram бота и список полей/очередей JSM.