Раньше
Сценарий чатбота
- Ответы генерировались внутри n8n
- Короткая память диалога
- Контакт определялся в последнем сообщении
- AI-сводка отправлялась по email
- Мало информации после передачи заявки
Кейс Geoekoproekt
Полезная консультация, понятное ТЗ и надёжная передача заявки в одном диалоге.
С чего начали
Версия на n8n отвечала по документам компании и отправляла сводку на почту, когда замечала контактные данные. Для прототипа этого было достаточно.
Запрос по инженерным изысканиям редко состоит из одного вопроса. Специалисту важно знать, что строят, где находится объект, какие работы могут потребоваться и какой информации не хватает. Приложение также должно сохранить заявку при ошибке почты и оставить её доступной после окончания диалога.
Пользователь должен получить пользу до того, как бот попросит номер телефона.
Мы перестали расширять сценарий. Консультацию, сбор заявки, доставку и отчётность спроектировали как единый продукт.
Помощник проводит первую консультацию, не превращая её в длинную форму.
Посетитель описывает дом, участок, нужные изыскания или проблему привычным языком.
Помощник определяет вероятную услугу и спрашивает только следующий недостающий параметр.
Место, тип здания, размеры, стадия проекта и открытые вопросы превращаются в структурированные данные.
После проверки телефона или email приложение создаёт заявку и передаёт команде полный контекст.
Сценарий чатбота
Цифровой продукт для консультаций
Каждый диалог хотя бы с одним сообщением посетителя появляется в закрытой админке. Команда видит переписку, параметры объекта, нужную услугу, статус контакта и результат доставки.
На снимке показаны локальные тестовые диалоги. Цифры не являются производственными показателями.
Страницы компании отвечают на вопросы об услугах и контактах. Утверждённые технические документы помогают с инженерными вопросами. Старые цены, внутренние расчёты и сомнительные материалы не попадают в публичные ответы.
После изменения сайта служба синхронизации получает подписанное уведомление и заново читает публичную страницу. Чат не использует устаревшую копию сайта.
Если письмо не доставлено, заявка остаётся в приложении, а служба доставки может повторить попытку.
Повторная отправка возвращает существующую заявку и не создаёт ещё одно уведомление.
Неполный телефон или кадастровый номер не будут приняты за номер телефона.
Приложение хранит заявку локально и может повторить отправку после временной ошибки провайдера.
n8n помог проверить, будут ли люди пользоваться помощником. Следующей версии понадобились надёжное состояние, понятный контроль данных, автоматические тесты, защита и интерфейс, спроектированный вокруг консультации.
Собственное приложение упростило контроль этих частей. Теперь основной продукт не зависит от визуального сценария.
Geo Chat работает как Docker-приложение на Node.js 22 и Express. SQLite в режиме WAL хранит сессии, сообщения, профили объектов, заявки, задания доставки и продуктовые события. SQLite FTS5 выполняет локальный полнотекстовый поиск по сайту и утверждённым документам.
Доступ к сессиям защищён подписанными HMAC-токенами. Публичные точки входа проверяют источник, частоту и размер запросов, а также попытки prompt injection. Подписанный webhook Drupal и ежедневная сверка sitemap поддерживают знания в актуальном состоянии.
Виджет написан на чистом JavaScript и CSS, поэтому основному сайту нужен один тег script. AI-сервис, ключи, хранилище и службы доставки работают на отдельном сервере.
Ваша автоматизация становится продуктом для клиентов?