Жизненный цикл диалога
Как диалоги проходят путь от создания до закрытия.
Новый диалог
Когда пользователь отправляет первое сообщение, создаётся новый диалог со статусом open и обработчиком bot — ИИ отвечает автоматически, используя вашу базу знаний, кастомные ответы и контекст продукта. status отслеживает жизненный цикл (open, snoozed, resolved, archived), а handler — кто отвечает следующим (bot, awaiting_human, teammate, team); эскалация переключает обработчик на awaiting_human, а назначение — на teammate/team, при этом статус остаётся open.
Эскалация
Эскалация происходит тремя способами: (1) пользователь нажимает кнопку «Позвать оператора» в виджете, (2) пользователь пишет фразу вроде «мне нужен человек» или «позовите оператора», либо (3) ИИ понимает, что не может помочь, и предлагает обратиться в поддержку. После эскалации бот перестаёт генерировать ответы ИИ. Последующие сообщения сохраняются и пересылаются команде поддержки. Виджет показывает баннер «Ожидание оператора».
Поддержка оператором
Операторы поддержки отвечают из раздела «Диалоги». Пользователь видит ответы в виджете. Операторы могут добавлять внутренние заметки, видимые только команде. При эскалации диалог попадает в очередь «Нужен человек», автоматически назначается вашей команде поддержки, а участники получают уведомление по email.
Закрытие и новая сессия
Когда оператор нажимает «Закрыть» (или срабатывает автозакрытие после неактивности), диалог переходит в статус resolved. Если пользователь отправит новое сообщение после закрытия, автоматически открывается диалог-продолжение, связанный с предыдущим (в инбоксе показывается как «Continued from #N»). Контекст, например язык, переносится, а посетитель видит один непрерывный чат. Если закрытым диалогом занимался оператор, продолжение возвращается вашей команде, а не ИИ; иначе его подхватывает ИИ.
Snoozed и Archived
Помимо open и resolved, диалог может быть ещё в двух состояниях:
Snoozed
Оператор может отложить (припарковать) диалог через POST /conversations/:id/snooze. Он автоматически возвращается в open, когда клиент присылает новое сообщение или когда диалог переназначается; ответ оператора тоже снимает отложенность. Теги и смена приоритета отложенность не снимают.
Archived
Archived — терминальное состояние «только чтение»: все изменяющие эндпоинты возвращают 409 Conflict. Как и закрытый, архивный диалог больше не удерживает сессию канала, поэтому новое сообщение клиента начинает совершенно новый диалог.