Канал поддержки в MAX: AI-первая линия и бесшовная передача оператору

Веб Штурм
  • MAX
  • поддержка
  • AI
  • RAG
  • Chatwoot
  • LightRAG
  • 152fz
  • чат-бот

Мы построили клиентскую поддержку в мессенджере MAX по принципу «открытых линий»: AI-ассистент на RAG отвечает первым из выделенной базы знаний (с ссылками «Подробнее» на источники и жёстким запретом обещать цены и сроки), а при неуверенности, просьбе клиента или нажатии кнопки «Соединить с оператором» диалог бесшовно уходит живому оператору в операторский инбокс Chatwoot. Получается замкнутая петля клиент ↔ AI ↔ оператор: ответ оператора возвращается клиенту прямо в MAX, и переписка продолжается в обе стороны с сохранением контекста и истории. Канал работает в двух режимах — изолированный 1

с сохранением контекста входа и рассылки (публичный канал + адресный bot-broadcast по opt-in), а на случай недоступности основного канала есть резервный мост через Telegram. 152-ФЗ соблюдён за счёт self-host в РФ-периметре и изоляции клиентской базы знаний. Ниже — инженерные решения и компромиссы.

Проблема: типовые вопросы съедают время, а контекст теряется

Клиентская поддержка через мессенджер обычно упирается в две крайности. Либо это живой оператор на каждый вопрос — дорого, и большинство обращений типовые («как получить документ», «какие форматы поддерживаются»). Либо это примитивный бот по кнопкам, который бесит клиента и не отвечает на свободный вопрос.

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

Нам была нужна схема, где AI снимает типовые вопросы, контекст входа не теряется, а сложные случаи попадают живому человеку без разрыва диалога — то есть аналог «открытых линий», но на отечественном мессенджере и со своей AI-первой линией.

Режим 1: изолированный диалог с AI-первой линией и эскалацией

Сквозной путь — от клика на сайте до ответа оператора, и для клиента это один непрерывный диалог, без видимых «переключений систем».

Замкнутая петля режима 1: посетитель нажимает кнопку в MAX на сайте, переходит в мессенджер с сохранённым контекстом страницы, бот принимает обращение, AI-первая линия отвечает из базы знаний со ссылками «Подробнее» на источники; если вопрос закрыт — клиент получает ответ с источниками, если AI не нашёл ответа, клиент просит человека или нажимает «Соединить с оператором» — эскалация на оператора, который видит историю и контекст в едином инбоксе, и его ответ возвращается клиенту в MAX; клиент пишет снова — оператор отвечает снова, диалог двусторонний

Точка входа с сохранением контекста

Кнопка «в MAX» на сайте ведёт не напрямую в мессенджер, а через серверный редирект, который сохраняет контекст страницы (что читал посетитель, какая аудитория, какой тип призыва) и фиксирует сам факт перехода как событие конверсии. Дальше открывается deep-link бота с привязкой к этому переходу — так бот с первого сообщения «знает», откуда пришёл клиент.

Это тот же подход, что мы используем для кнопки «Обсудить»: подписанный серверным ключом контекст-токен страницы плюс идентификатор перехода. Контекст сайта и контекст диалога в MAX сшиваются в одну воронку.

AI-первая линия на RAG с guardrails

На входящее сообщение клиента бот делает RAG-запрос к выделенной базе знаний поддержки (отдельный, изолированный инстанс LightRAG). Принципиально важны два ограничения:

  • Ответ — только из контекста базы знаний, а не из общих знаний языковой модели. Если в базе нет ответа — модель не импровизирует.
  • Не обещать цены и сроки. Это жёсткое правило в промпте: коммерческие обязательства даёт только человек.

К ответу AI прикладывает ссылки «Подробнее» на страницы сайта, из которых он этот ответ собрал, — клиент видит источники и может прочитать первоисточник целиком. Это и проверяемость ответа, и мягкий возврат на сайт.

База знаний поддержки изолирована от внутренних данных компании — клиентский ассистент физически не может процитировать то, что не предназначено для клиентов. Это не настройка фильтра, а архитектурная граница: отдельный инстанс с отдельным набором документов.

Бесшовная эскалация и замкнутая петля «клиент ↔ AI ↔ оператор»

Эскалация срабатывает в трёх случаях: AI не нашёл ответ в базе, клиент явно просит человека или нажимает кнопку «Соединить с оператором». Диалог уходит в Chatwoot CE (self-host) — полноценный операторский инбокс — через API-канал. Оператор видит всю историю и контекст входа, отвечает из единого интерфейса, и его ответ автоматически возвращается клиенту в MAX.

Ключевое здесь — петля замыкается: клиент пишет следующий вопрос в том же чате MAX, сообщение снова доходит до оператора, оператор отвечает — и так сколько угодно итераций. Это не «передал и забыл», а полноценный двусторонний диалог с сохранением контекста и истории. Для клиента всё происходит в одном окне MAX: сначала отвечает AI, потом подключается человек, и переключения он не замечает.

Здесь мы приняли важное решение: не строить свою админку операторов. Chatwoot из коробки даёт назначения, шаблоны ответов, часы работы, оценку удовлетворённости (CSAT). Писать это самим — недели работы и постоянная поддержка. Готовый инструмент закрывает задачу лучше, а интеграция сводится к одному адаптеру «MAX ↔ Chatwoot».

Дополнительно есть резервный канал через Telegram: оператор может вести те же клиентские диалоги MAX прямо из Telegram, а клиенту по-прежнему отвечает MAX. Это альтернативный операторский фронт для того же диалога — подробнее в статье «Telegram-мост для оператора».

Режим 2: рассылки с opt-in

Второй режим — про сообщения «многим сразу»: анонсы, новости, акции. Здесь два формата, и оба построены вокруг согласия.

Поток режима 2: когда нужно сообщить аудитории анонс или акцию, выбирается тип рассылки; публично всем — через канал MAX один-ко-многим; адресно подписчикам — через рассылку бота, но только при наличии согласия opt-in, иначе сообщение не отправляется по 152-ФЗ; команда stop даёт мгновенную отписку

  • Публичный канал MAX — один-ко-многим, для открытых анонсов.
  • Адресная рассылка через бота — только подписчикам, давшим согласие (opt-in). Команда /stop мгновенно отписывает, согласие учитывается в базе.

Этот контур мы строили под принцип минимизации данных 152-ФЗ: адресное сообщение уходит, только если есть явное согласие, и отписка работает в один шаг.

Единая воронка: сравнение каналов

Поскольку точка входа в MAX и веб-форма используют один и тот же механизм фиксации перехода, мы можем сравнивать каналы между собой: какой контент чаще приводит обращение через форму, а какой — через мессенджер; где конверсия в реальный лид выше. Лид-кэп в боте (запрос телефона) превращает диалог в измеримое обращение, привязанное к исходной странице.

Это даёт ответ на вопрос «что вообще работает» не на уровне ощущений, а по данным — и без зарубежных трекеров.

152-ФЗ и приватность

Контур приватности заложен в саму архитектуру, а не прикручен сверху:

  • MAX — серверы в РФ. Клиентский диалог не уходит за рубеж.
  • Self-host в нашем периметре. Операторский инбокс и база знаний развёрнуты на своей инфраструктуре, а не в зарубежном облаке.
  • Изоляция клиентской базы знаний. Ассистент поддержки отвечает только из предназначенных клиентам материалов.
  • Рассылки только по opt-in, отписка по /stop, учёт согласия — принцип минимизации данных.

Что мы из этого вынесли

  • AI-первая линия имеет ценность только с guardrails. Без правила «отвечай лишь из базы и не обещай цен/сроков» бот быстро начнёт фантазировать — и подорвёт доверие сильнее, чем его отсутствие. Эскалация при незнании — фича, а не слабость.
  • Замкнутая петля важнее одноразовой эскалации. «Передал оператору и забыл» — это не диалог. Ценность даёт именно двусторонняя петля: ответ оператора возвращается в MAX, клиент пишет дальше, оператор отвечает снова — с полной историей и контекстом, в одном окне для клиента.
  • Источники в ответе AI повышают доверие. Ссылки «Подробнее» делают ответ проверяемым и мягко возвращают клиента на сайт — это лучше «голого» ответа без ссылок.
  • Готовый операторский инбокс лучше своей админки. Chatwoot закрыл CSAT, шаблоны и часы работы из коробки. Мы потратили силы на адаптер «MAX ↔ инбокс», а не на велосипед.
  • Изоляция базы знаний — архитектурное, а не настроечное решение. Отдельный инстанс надёжнее любого фильтра: клиентский ассистент не имеет доступа к внутренним данным в принципе.
  • Один контекст-токен на все каналы. Сшивка сайта и мессенджера в одну воронку дала сравнение каналов почти бесплатно — потому что точка входа единая.

Ссылки

Если вам нужен клиентский канал поддержки с AI-первой линией и живым оператором — напишите нам, обсудим, как это устроить под ваш стек и требования 152-ФЗ.

Часто задаваемые вопросы

Почему MAX, а не Telegram или WhatsApp для канала поддержки?
MAX — отечественный мессенджер с серверами в РФ, что критично для 152-ФЗ: персональные данные клиентов не покидают периметр. Telegram остаётся опциональным резервным мостом для оператора, но основной клиентский канал — MAX, чтобы не зависеть от зарубежной инфраструктуры в сценариях с персональными данными.
Как AI-ассистент не выдумывает цены и сроки?
Ответ строится только из контекста выделенной базы знаний (RAG), а не из общих знаний модели. Guardrails запрещают обещать цены и сроки: если данных в базе нет или клиент явно просит человека — бот эскалирует диалог оператору, а не импровизирует. База знаний поддержки изолирована от внутренних данных компании.
Что происходит при передаче диалога оператору?
Эскалация срабатывает в трёх случаях: AI не нашёл ответ в базе, клиент просит человека или нажимает кнопку «Соединить с оператором». Диалог уходит в операторский инбокс Chatwoot через API-канал. Оператор видит всю историю переписки и контекст входа, отвечает из единого интерфейса — ответ автоматически возвращается клиенту в MAX. Клиент пишет дальше в том же чате, оператор отвечает снова: это полноценный двусторонний диалог, для клиента — один непрерывный разговор без «переключения систем».
Чем это отличается от обычного чат-бота на сайте?
Три отличия: (1) точка входа сохраняет контекст страницы — бот знает, что читал посетитель перед обращением; (2) AI-первая линия снимает типовые вопросы без оператора; (3) бесшовная эскалация в полноценный операторский инбокс с CSAT, шаблонами и часами работы. Это ближе к «открытым линиям» Bitrix24, чем к виджету «напишите нам».
Как работают рассылки и не нарушают ли они 152-ФЗ?
Два формата: публичный канал MAX (один-ко-многим) и адресная рассылка через бота строго по opt-in. Адресные сообщения уходят только подписчикам, давшим согласие, а команда /stop мгновенно отписывает. Согласие учитывается в базе — это соответствует принципу минимизации данных 152-ФЗ.