Чат-бот приёма заявок в мессенджере MAX: заявка с чертежами, срочный вопрос, чат менеджеров, админ-панель. NestJS, React
Заказчик - производство изделий из акрила и оргстекла на заказ. Заявки приходили вразнобой: звонки, почта, мессенджеры; чертежи терялись, контакты переспрашивали. Нужен был чат-бот в мессенджере MAX как единый вход, который собирает всё в одном диалоге и передаёт менеджерам. По требованию заказчика бот не консультирует по технике: собирает контакты и файлы и передаёт человеку.
Сделал бота, чат менеджеров и админ-панель на Node.js и TypeScript: сервер на NestJS с Prisma и SQLite, панель на React. Три сценария: заявка на расчёт (пять вопросов, до 10 файлов по 20 МБ, шаг согласия по 152-ФЗ, номер заявки), срочный вопрос за три шага, статус заказа по номеру или почте. Бот знает рабочие часы и честно предупреждает в нерабочее время. Заявка уходит в групповой чат карточкой с кнопкой «Взять в работу», файлы приходят вложениями, по невзятым заявкам бот напоминает. В панели: список с поиском и фильтрами, карточка с историей и примечаниями, статусы, выгрузка в Excel и редактор 19 фраз бота, которые заказчик правит сам без разработчика. Под капотом: сырой MAX Bot API, сертификат российского УЦ, двухшаговая загрузка файлов, webhook и long polling за одним интерфейсом, очередь событий по пользователям, форма из конфига. Сервер в России, systemd, nginx, Let's Encrypt.
Бот в бою с августа 2026, от заказа до запуска - полторы недели. 3 900 строк сервера, 900 панели, 52 автотеста. Дальше - перенос в Telegram на той же базе. Скриншоты сделаны на тестовой базе с выдуманными данными.