Собственная демонстрационная разработка для портфолио. Бот собирает заявку за четыре вопроса: услуга, имя, условный контакт и комментарий. Рабочая демонстрация в Telegram: @ImmortalRemLeadDemoBot. Используйте только вымышленные данные.
Разработал сценарий на JavaScript / Node.js: четыре вопроса, отмена через /cancel, раздельное состояние диалогов и подтверждение после успешной отправки заявки менеджеру. Добавлены ограничения длины ответов, частоты и срока незавершённой заявки.
Бот размещён на отдельном сайте Beget и принимает обновления через HTTPS webhook с проверкой секретного заголовка. SQLite сохраняет незавершённый диалог после перезапуска приложения, учитывает повторные обновления и согласует работу нескольких процессов. Конфигурация и база расположены вне публичной папки.
При временной ошибке отправки вопроса Telegram может повторить обновление: уже принятый ответ не записывается второй раз. Неопределённая отправка заявки менеджеру требует явного /retry с тем же номером и может дать дубль. Подключения к рабочей CRM в этом демо нет.
21 октября 2026 года проверен полный сценарий в реальном Telegram: четыре ответа собраны, тестовая заявка получена в чате менеджера, затем пользователю отправлено подтверждение. Это подтверждение отправки, не прочтения человеком. После перезапуска приложения между вопросами первый ответ сохранился, диалог продолжился. Команда /cancel также проверена.
Новый скриншот показывает реальную переписку и тестовую заявку с вымышленными данными; отдельная иллюстрация показывает схему.
Локально на Node.js 22 пройдены 40 автоматических проверок: диалог, HTTP endpoint, повторная доставка, изоляция, SQLite, два процесса с общей базой, перезапуск и сбои отправки. Подключение к CRM и дополнительные сценарии оцениваются отдельно.