ИИ-агент поддержки на сайте: бот отвечает по вашим материалам, менеджер подхватывает сложное

Менеджеры по сто раз в неделю отвечают на одни и те же вопросы: сколько стоит, как записаться, до скольки работаете. Бот на готовых сценариях ломается на первом вопросе не по сценарию, а бот «просто на нейросети» уверенно придумывает цены. Ниже связка из трёх шагов, где бот отвечает только по материалам вашего сайта, а всё, с чем он не справляется, передаёт живому человеку в общий inbox.
Менеджеры по сто раз в неделю отвечают на одни и те же вопросы: сколько стоит, как записаться, до скольки работаете. Бот на готовых сценариях ломается на первом вопросе не по сценарию, а бот «просто на нейросети» уверенно придумывает цены. Ниже связка из трёх шагов, где бот отвечает только по материалам вашего сайта, а всё, с чем он не справляется, передаёт живому человеку в общий inbox.
Если читать некогда: пять пунктов
- Бот знает только то, что вы ему дали. Сначала краулер обходит сайт и собирает тексты страниц, потом они загружаются в векторную базу. Это и есть его память.
- Мозг собран на n8n из готового шаблона: четыре сценария. Один отвечает на вопросы, три следят за базой знаний: добавляют, обновляют и удаляют документы без перезапуска.
- Окно на сайте и передачу оператору даёт Chatwoot — свой аналог Intercom на вашем сервере. Туда же приходят Telegram, WhatsApp и почта.
- В связке Chatwoot и n8n есть две ловушки. Бот получает собственные ответы как новые события и начинает разговаривать сам с собой. После передачи оператору он продолжает получать сообщения. Обе ловушки закрываются двумя фильтрами.
- Начинать надо со второго шага. Импортируйте шаблон, положите две-три страницы вручную и проверьте качество ответов. Краулер и виджет подключайте, когда ответы вас устроят.
Почему обычные чат-боты не работают
У бизнеса, который получает заявки с сайта, обычно одна из трёх картин.
Виджет с формой «оставьте заявку». Клиент пишет вопрос в 23:40, ответ получает утром. К утру он уже написал конкурентам.
Бот на кнопках и сценариях. Хорошо, пока клиент нажимает кнопки. Стоит ему написать «а у вас можно с собакой крупной породы в субботу после шести» — сценарий заканчивается.
Бот, подключённый к нейросети без базы знаний. Отвечает на всё, бойко и вежливо. И называет цену, которой у вас никогда не было, потому что модель собирает правдоподобный ответ, а не правильный.
Нужен четвёртый вариант: бот, который отвечает свободно, как человек, но только по вашим материалам, а когда в материалах ответа нет — честно говорит об этом и зовёт менеджера.
Это называется RAG (Retrieval-Augmented Generation, генерация с поиском): прежде чем ответить, бот ищет в вашей базе подходящие фрагменты и отвечает, опираясь на них.
Кто я и что здесь моего
Я три года занимаюсь автоматизацией бизнеса, за это время автоматизировал больше ста компаний. Специализируюсь на RAG-агентах и сценариях для CRM, мессенджеров и маркетплейсов, веду на платформе блок по n8n и RAG-агентам.
Связки вроде этой я собираю регулярно, и чаще всего проблемы не в самой нейросети, а в стыках: откуда бот берёт знания, как они обновляются и что происходит, когда бот не справился. Поэтому ниже я разобрал каждый из трёх инструментов изнутри: что он делает на самом деле, что для него нужно и где он ломается.
Как устроена связка целиком
Три части, и у каждой своя роль:
| Часть | Что делает | Инструмент |
|---|---|---|
| Знания | собирает тексты сайта и держит их в векторной базе в актуальном виде | краулер + сценарии загрузки на n8n |
| Мозг | принимает вопрос, ищет ответ в базе, формулирует, решает, звать ли человека | RAG-агент на n8n |
| Окно и человек | виджет на сайте, общий inbox для менеджеров, передача диалога | Chatwoot |
Путь одного сообщения: клиент пишет в виджет → Chatwoot отправляет событие в n8n → агент ищет в базе и отвечает → ответ уходит обратно в Chatwoot и появляется у клиента. Если агент решил, что нужен человек, — диалог переходит в очередь менеджеров.
Шаг 1. Знания: обходим сайт и собираем базу
Карточка краулера «сайт → база знаний для ИИ» →
Как он работает
Краулер запускает браузер без окна, открывает стартовую страницу и дальше действует по вашим правилам:
- стартовый адрес — главная страница раздела или файл
sitemap.xml; если указать карту сайта, краулер пройдёт по всем страницам из неё; - шаблон ссылок — по каким адресам идти дальше, например только
/uslugi/и/faq/; - исключения — куда не ходить: корзина, личный кабинет, блог пятилетней давности;
- CSS-селектор — из какой части страницы брать текст. Это важная настройка: без неё в базу попадут меню, футер и cookie-баннер с каждой страницы, и бот будет цитировать вам ваш же футер;
- лимиты — максимум страниц, максимум токенов или мегабайт в итоговом файле.
На выходе один JSON-файл: по каждой странице заголовок, адрес и текст.
Что понадобится
- Node.js 16 или новее;
- браузер для обхода ставится автоматически при установке зависимостей;
- ваш сайт и правила обхода. Если обходите не свой сайт, соблюдайте его условия использования.
Промпт для Claude Code
«Возьми open-source проект по ссылке из этой карточки: https://ru.aiskills.team/open-source/gpt-crawler-turn-any-website-into-an-ai-knowledge-base. Склонируй репозиторий, настрой конфиг на обход сайта [URL] с ограничением на разделы [услуги, FAQ, цены, контакты]. Подбери CSS-селектор основного контента, чтобы меню, футер и баннеры не попали в текст. Запусти и сохрани результат в knowledge/site.json. Потом разбей файл на отдельные документы по страницам — один документ на страницу, в начале каждого заголовок и адрес страницы — для загрузки в векторную БД.»
Куда класть документы. Шаблон из Шага 2 берёт знания из папки Google Диска: положили файл — он сам загрузился в базу. Поэтому документы из краулера просто выкладываются в эту папку. Изменился сайт — перезапускаете краулер и заменяете файлы, а сценарий обновления сам заменит старую версию в базе.
Шаг 2. Мозг: RAG-бот на n8n с управлением базой знаний
Карточка шаблона «RAG-чатбот с управлением базой знаний» →
Это главный шаг и самый ценный шаблон в связке. Большинство RAG-шаблонов умеют отвечать, но не умеют обновлять базу: документ изменился, а бот продолжает цитировать старую цену. Здесь управление базой собрано полностью. Я разобрал все четыре сценария по узлам.
Что внутри
Сценарий 1 — ответы клиентам.
- Вход — узел чата n8n (Chat Trigger) в публичном режиме: у него есть собственная страница чата, на которой удобно тестировать.
- ИИ-агент на модели OpenAI с памятью диалога на 12 последних сообщений: клиент может уточнять, и бот помнит, о чём шла речь.
- Инструмент поиска по векторной базе Pinecone: агент сам решает, когда идти в базу.
- Инструмент записи в Google Таблицу: когда клиент спросил про часы работы или услуги, бот просит имя, телефон или почту и записывает заявку вместе с тем, чем человек интересовался.
Сценарий 2 — добавление документов. Срабатывает, когда в папке Google Диска появляется новый файл: скачивает его, режет на фрагменты, превращает в векторы и загружает в Pinecone с пометками — идентификатор документа, название, источник, версия. Документ записывается в таблицу-реестр, на почту приходит уведомление.
Сценарий 3 — обновление. Срабатывает, когда файл в папке изменился. Порядок аккуратный: сначала загружается и проверяется новая версия, и только потом удаляются фрагменты старой. Между шагами — паузы, проверки и повторные попытки, а в конце письмо об успехе, предупреждении или ошибке. Так документ не пропадает из базы посреди обновления.
Сценарий 4 — удаление. Сверяет папку Диска с реестром и удаляет из базы фрагменты файлов, которых в папке больше нет. В шаблоне он запускается вручную — его стоит поставить на расписание, например раз в сутки.
Что понадобится
- n8n — свой сервер или облачный аккаунт;
- ключ OpenAI — для ответов и для векторов;
- Pinecone — векторная база. В карточке упомянут и Qdrant, но шаблон собран именно на Pinecone. Перейти на Qdrant можно, но придётся заменить узлы векторной базы и запросы удаления — это работа для Claude Code, а не одна галочка;
- Google Диск, Google Таблицы, Gmail — источник документов, реестр с заявками и уведомления.
Настройка по шагам
- Импортируйте четыре JSON-файла в n8n.
- Подключите свои доступы: OpenAI, Pinecone, Google Диск, Таблицы, Gmail.
- Создайте отдельный доступ типа Header Auth для запросов к Pinecone: имя
Api-Key, значение — ваш ключ Pinecone. - Замените заглушки в сценариях: имя и адрес индекса Pinecone, ID папки на Диске, ID двух таблиц, адрес почты для уведомлений.
- Создайте две таблицы.
Реестр документов: document_id, document_name, namespace, source, status, last_synced_at, file_modified_time, chunks_count, active_version_id.
Заявки: name, phone, email, interested in.
- Прогоните каждый сценарий вручную и только потом включайте триггеры.
Системный промпт нужно переписать полностью
Шаблон сделан для груминг-салона: в промпте зашито название салона, и он написан по-английски. Вот основа под ваш бизнес:
«Ты — консультант компании [название], [чем занимается, город].
Отвечай только на основе базы знаний: перед каждым ответом ищи в ней. Если ответа в базе нет — не придумывай, скажи: "Уточню у менеджера" и добавь в конец ответа метку [ОПЕРАТОР].
Никогда не называй цены, сроки, адреса и условия, которых нет в базе знаний.
Отвечай коротко: два-четыре предложения, на языке клиента, без канцелярита.
Если клиент просит человека, оператора, менеджера, недоволен или пишет о жалобе, возврате, оплате — ответь "Передаю менеджеру" и добавь метку [ОПЕРАТОР].
Когда клиент спросил про услугу, цену или запись, попроси имя и телефон и сохрани их в таблицу заявок вместе с тем, чем он интересовался.»
Метка [ОПЕРАТОР] понадобится в Шаге 3: по ней n8n поймёт, что диалог пора передать человеку, и вырежет её из ответа клиенту.
Как проверить качество, прежде чем идти дальше
Это и есть план на сегодня. Положите в папку Диска две-три страницы вручную — услуги, цены, FAQ. Откройте страницу чата из первого сценария и задайте двадцать вопросов, которые клиенты действительно задают. Их проще всего взять из переписки менеджеров за последний месяц.
Проверяйте каждый ответ по трём пунктам:
- ответ верный — сверьте с сайтом;
- ответа нет в базе — бот честно сказал «уточню у менеджера», а не придумал;
- вопрос с подвохом — например, про услугу, которой у вас нет: бот не согласился её оказать.
Если хотя бы один ответ выдуман, правьте промпт и документы, а не переходите к виджету. Виджет к плохому боту только быстрее покажет клиентам, что бот плохой.
Шаг 3. Окно и человек: виджет и общий inbox в Chatwoot
Карточка Chatwoot — омниканальной поддержки на своём сервере →
Chatwoot — open-source аналог Intercom и Zendesk. Виджет на сайт, общий inbox для команды, а в тот же inbox подключаются Telegram, WhatsApp, почта, Instagram и другие каналы. Менеджеры видят все диалоги в одном окне, с историей клиента, метками, заготовками ответов и внутренними заметками.
В описании на карточке не сказано, как именно подключать к нему своего бота. Я разобрался по исходному коду, и механика такая.
Как Chatwoot работает с внешним ботом
1. Бот регистрируется в настройках. В разделе «Настройки → Боты» создаётся бот: имя и адрес вебхука, куда Chatwoot будет отправлять события. Бот получает свой токен доступа.
2. Бот подключается к источнику. В настройках inbox (например, виджета сайта) на вкладке «Конфигурация бота» выбирается этот бот.
3. Новые диалоги начинаются в статусе «ожидает» (pending). Пока бот подключён, каждый новый разговор сначала достаётся боту, и в очередь менеджеров он не попадает.
4. Chatwoot отправляет события на вебхук. На каждое сообщение приходит POST-запрос: текст, тип сообщения (входящее или исходящее), номер диалога, номер аккаунта, данные отправителя.
5. Бот отвечает через API Chatwoot — запросом на добавление сообщения в диалог, с токеном бота в заголовке api_access_token.
6. Передача человеку — смена статуса диалога на «открыт» (open). Это отдельный запрос к API. Диалог уходит в общую очередь, менеджеры видят его с полной историей переписки с ботом.
Две ловушки, на которых спотыкаются все
Ловушка первая: бот разговаривает сам с собой. Chatwoot присылает на вебхук событие о каждом новом сообщении в диалоге, включая ответы самого бота. Если n8n отвечает на всё подряд, бот получает свой ответ, отвечает на него, снова получает — и так по кругу. Решение: первым узлом после вебхука пропускать только сообщения с типом incoming.
Ловушка вторая: бот не уходит после передачи. Бот подключён к inbox целиком, поэтому события по диалогу продолжают приходить ему и после того, как диалог передан менеджеру. Без проверки бот будет влезать в разговор менеджера с клиентом. Решение: отвечать, только если статус диалога pending.
Что поменять в шаблоне n8n
Узел чата из шаблона рассчитан на собственную страницу чата n8n. Для Chatwoot нужен обычный вход через вебхук. Схема первого сценария становится такой:
- Вебхук — принимает события Chatwoot.
- Фильтр — тип сообщения
incoming, статус диалогаpending, сообщение не приватное. - ИИ-агент — тот же, что в шаблоне, с памятью по номеру диалога, чтобы разговоры разных клиентов не смешивались.
- Проверка метки — есть ли в ответе
[ОПЕРАТОР]. - Ответ клиенту — запрос к API Chatwoot с текстом без метки.
- Передача — если метка была, ещё один запрос: статус диалога
open.
Про «низкую уверенность»
Модель не выдаёт честную цифру уверенности в ответе. На практике «не уверен» собирается из трёх признаков: поиск по базе не нашёл подходящих фрагментов, клиент прямо попросил человека или недоволен, тема из списка «только человек» — оплата, возврат, жалоба. Все три уже заложены в промпт из Шага 2 через метку. Этого достаточно, чтобы бот отдавал человеку то, что должен.
Что понадобится для Chatwoot
- Свой сервер с доменом и HTTPS. Chatwoot разворачивается в Docker из четырёх частей: само приложение, обработчик фоновых задач, база PostgreSQL и Redis. Это не самый маленький сервер — требования к памяти уточните в документации проекта.
- Переменные окружения — почта для уведомлений, адрес сайта, ключи каналов. Без них часть функций работать не будет, о чём авторы прямо предупреждают.
- Лицензия. Основной код открытый, а папка с корпоративными функциями лицензируется отдельно. Встроенный ИИ-агент самого Chatwoot относится к их собственному продукту, поэтому мы и подключаем своего бота на n8n.
Промпт для Claude Code
«Возьми open-source проект по ссылке из этой карточки: https://ru.aiskills.team/open-source/chatwoot-omnichannel-customer-support. Склонируй репозиторий, изучи README и документацию по развёртыванию и разверни Chatwoot на моём сервере через Docker с доменом [домен] и HTTPS. Создай inbox типа Website и получи скрипт виджета. Затем создай агент-бота в настройках, укажи вебхук моего n8n [адрес], подключи бота к этому inbox. Измени первый сценарий RAG-чатбота в n8n: вместо узла чата — вебхук; фильтр — только входящие сообщения, только диалоги в статусе pending, без приватных заметок; память агента — по номеру диалога; ответ клиенту — через API Chatwoot с токеном бота; если в ответе агента есть метка [ОПЕРАТОР], убрать её из текста и перевести диалог в статус open. Проверь три сценария: обычный вопрос, вопрос, которого нет в базе, и просьба позвать оператора.»
Виджет на сайт. Inbox типа Website выдаёт короткий скрипт, который вставляется перед закрывающим тегом </body> на всех страницах. Тот же бот подключается и к другим источникам, например к Telegram: клиент пишет туда, где ему удобно, а бот и менеджеры работают в одном окне.
В каком порядке собирать
Сегодня — Шаг 2. Импорт шаблона, две-три страницы вручную, двадцать вопросов на проверку. Это вечер, и после него вы знаете главное: устраивают ли вас ответы.
Когда ответы хорошие — Шаг 1. Краулер заполняет базу целиком, проверяете ещё раз на тех же двадцати вопросах плюс десяти новых.
Последним — Шаг 3. Chatwoot, виджет, передача человеку. Перед запуском на сайт — неделя в тихом режиме: бот отвечает, менеджер читает все диалоги и отмечает ошибки.
После запуска раз в неделю просматривайте диалоги, переданные человеку. Каждый такой диалог — либо пробел в базе знаний, который закрывается одним документом, либо тема, которую правильно оставить людям.
Сколько это стоит и где здесь деньги
Расходы на работу: сервер под n8n и Chatwoot (можно один), оплата модели OpenAI по токенам, тариф Pinecone. Шаблон и open-source части ничего не стоят сверх доступа к ним.
Как это продаётся. Для бизнеса это не «бот», а ответ клиенту в 23:40, а не утром, и менеджеры, которые занимаются сложными клиентами, а не часами работы. В ленте заказов, по которой мы собирали прайс, бот под ключ стоит $100–3 000, ассистент под отдел — $240–1 200. Разброс большой, потому что «бот» бывает и на кнопках, и вот такой: с базой знаний, обновлением и передачей человеку. Это рынок, а не обещание дохода.
Отдельный доход — сопровождение. Сайт меняется, цены меняются, появляются новые вопросы. Те, кто собирает автоматизации, сами говорят, что сценарии ломаются «раз в две недели». Внедрили связку — дальше ежемесячная поддержка: обновлять базу, разбирать переданные диалоги, дорабатывать промпт. Это повторяющийся доход, а не разовая сделка.
Если хотите собрать это со мной по шагам
В курсе «Автоматизации в n8n» у меня есть отдельный блок уроков про RAG-агентов. Там всё, что в этой статье уложено в три шага, показано на экране — от пустого n8n до бота, который отвечает по вашим документам.
Что разбираем в уроках:
- n8n на своём сервере. Как поставить его через Docker и не зависеть от облачных лимитов.
- API и вебхуки. Как подключить сервис, даже если готовой кнопки для него в n8n нет.
- Документы в память бота. Как нарезать толстый PDF на фрагменты, превратить их в векторы и сложить в Pinecone, Chroma или Qdrant.
- Точные ответы. Как настроить поиск, чтобы бот находил нужный кусок, и как сделать, чтобы он помнил длинный диалог.
- Надёжность. Как один сценарий-спасатель ловит ошибки во всех автоматизациях и присылает уведомление, а вы узнаёте о сбое раньше клиента.
Если какой-то шаг из статьи показался сложным — в уроках он разобран медленно и с примерами. Курс открыт на тарифе N8N и в Full.
Что взять на платформе
Шаблон RAG-чатбота — карточка. Шаблоны n8n и Make скачиваются с тарифа Creator, а также Make, N8N и Full.
Краулер и Chatwoot — в каталоге Open Source. Описания видны всем, ссылки на репозитории открываются с тарифа Creator.
Уроки по RAG-агентам — курс «Автоматизации в n8n», тариф N8N или Full (что внутри — в разделе выше).
Похожие шаблоны — в каталоге больше 3 000 шаблонов автоматизаций: RAG-боты для WhatsApp, Bitrix24, на Qdrant. Если нужен не сайт, а другой канал, начните с них.
Регистрация бесплатная и открывает три дня Basic. Шаблоны в Basic не входят, но за эти дни вы увидите все описания и каталог целиком и поймёте, какой тариф нужен под вашу задачу.
С чего начать сегодня
Выпишите двадцать вопросов, которые ваши менеджеры — или менеджеры вашего клиента — слышат чаще всего. Это займёт пятнадцать минут и пригодится на каждом шаге: по ним вы проверите бота до запуска, после краулера и после подключения виджета.
Если у вас есть знакомый владелец бизнеса, у которого менеджеры тонут в одинаковых вопросах, перешлите ему эту статью.
Что почитать дальше
База знаний компании — как собрать документы, по которым бот будет отвечать.
Сколько стоит ассистент под отдел — как считать и продавать такие внедрения.
Make или n8n — почему эта связка собрана на n8n.
Три автоматизации, которые продаются — что ещё предложить бизнесу рядом с ботом.