Yesterday

Как мы собрали умного AI-помощника в Telegram на n8n: архитектура, интеграции и нейросети

Архитектура решения

Для создания AI-помощника мы выбрали платформу автоматизации n8n, которая позволяет визуально проектировать сложные сценарии без написания кода с нуля. Решение состоит из двух связанных воркфлоу: первый отвечает за создание и поддержку базы знаний о компании, второй — за всё взаимодействие с пользователями через Telegram.​

В качестве AI-движка используется GPT-4o mini от OpenAI — она обрабатывает сообщения пользователей, определяет их намерения и генерирует ответы на вопросы. Для работы базы знаний дополнительно подключена модель эмбеддингов OpenAI третьей версии, которая преобразует текстовые документы в векторный формат для быстрого семантического поиска.​

База знаний

Первый воркфлоу обрабатывает структурированные файлы с информацией о компании — услугах, процессах, ценах, кейсах. Загруженный документ сохраняется, затем через модель эмбеддингов преобразуется в векторную базу данных, по которой бот может искать релевантные фрагменты для ответа. Для контроля качества в воркфлоу встроен внутренний чат, где можно протестировать, насколько точно бот находит нужную информацию, ещё до подключения к основному боту.​

Логика работы бота

Главный воркфлоу с разветвлениями для разных сценариев

Основной воркфлоу запускается, когда пользователь пишет в Telegram: специальная нода-слушатель перехватывает как текстовые сообщения, так и нажатия на inline-кнопки. Первым делом система проверяет, не находится ли пользователь в процессе оформления заявки — для этого используется внутренняя таблица со статусами.​

Если активной заявки нет, GPT-4o mini анализирует сообщение и определяет намерение: человек задаёт вопрос, хочет оформить заявку или написал что-то непонятное. В зависимости от результата сценарий разветвляется через switch-ноду на три пути.​

Ветка вопросов-ответов: подключается AI-агент с доступом к базе знаний. Агент получает системный промпт с инструкциями, как отвечать и где искать информацию, затем ищет релевантные куски в векторной базе через эмбеддинги и формирует ответ пользователю.​

Пример работы AI-агента с базой знаний

Ветка оформления заявки: многошаговый сценарий из пяти этапов — тип проекта, стадия проекта, срочность, номер телефона и финальное подтверждение. На первых трёх шагах бот предлагает кнопки для быстрого выбора, но пользователь может ввести ответ текстом — JS-нода извлекает данные из callback или сообщения, сопоставляет с внутренним справочником и сохраняет в формате JSON. После каждого шага таблица со статусами обновляется, чтобы при разрыве сессии можно было продолжить с нужного места.​

Для запроса телефона используется встроенная в Telegram кнопка «Поделиться контактом», которая создала техническую сложность: такая кнопка не inline и остаётся видимой в клавиатуре после нажатия. Решили отправкой промежуточного сообщения «Формирую вашу заявку…» со специальным флагом, который скрывает клавиатуру. После ввода телефона бот выводит сводку всех данных заявки с двумя кнопками: «Отправить» и «Начать заново».​

Процесс оформления заявки: от выбора типа до подтверждения

При подтверждении данные отправляются в CRM-систему Planfix через webhook в формате JSON — внутри системы настроен парсинг и автоматическое создание задачи. Статус заявки обновляется на «завершено», пользователь получает сообщение об успешной отправке. Если пользователь нажимает «Начать заново», запись в таблице удаляется, и процесс можно повторить с чистого листа.​

Интеграции и хранение данных

Все данные распределены по трём точкам: векторная база знаний хранится локально в n8n, статусы и шаги заявок — в облачной таблице, готовые заявки уходят в Planfix через webhook без прямого API-подключения. Такой подход позволил избежать сложных POST-запросов и составных JSON-структур. Контекст диалогов не сохраняется между сессиями — модель помнит только текущую беседу в рамках одного взаимодействия.​

Роль нейросетей в разработке

Ключевой особенностью проекта стало активное использование AI-ассистента Claude Sonnet на этапе разработки. Модель помогала проектировать логику воркфлоу, писала и отлаживала JS-ноды, предлагала варианты решения технических проблем. Самым сложным кейсом оказалось именно скрытие клавиатуры после кнопки «Поделиться контактом» — здесь пришлось несколько раз переделывать логику с помощью нейросети, пока не нашли рабочий вариант. Ещё одной проблемой была перезапись данных в таблице статусов при обработке вопросов — решили через хранение состояния в JSON и аккуратное обновление всей строки после каждого шага.

Часть диалога с Claude Sonnet по решению проблемы со скрытием клавиатуры после запроса телефона

Посмотреть нашего умного AI-помощника в Telegram можно по ссылке https://t.me/catafotgpt1_bot