Чат-сессия: что это и чем отличается от чата

Чат — это сущность клиента: у него один чат в Telegram, один в VK, ещё один в другом мессенджере, и живёт этот чат постоянно. Чат-сессия — это отдельный эпизод общения клиента с оператором внутри чата. Внутри одного чата со временем может быть много чат-сессий, но не параллельно — в моменте открыта максимум одна.

Чат vs чат-сессия

ЧатЧат-сессия
Что этоклиент в конкретном мессенджереэпизод общения с оператором внутри чата
Сколько живётпостоянно, пока клиент существует в системеот открытия до закрытия
Сколько может бытьодин на пару «клиент + мессенджер»много последовательно (не параллельно)
Кто/что общается с клиентомбот (сценарий)оператор

Когда возникает чат-сессия

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

Изначально сессия привязана к какой-то команде операторов — например, к стандартной команде «Нераспределённые», если явно не указано иное. Дальше, в зависимости от настроек команды, сессия автоматически или вручную назначается на конкретного оператора.

В настройках команды в блоке «Автоматические сценарии для команды» можно выбрать один из режимов: «Не использовать» (операторы разбирают сессии из очереди вручную), «По нагрузке» или «Round robin» (сессии распределяются автоматически). Для автораспределения дополнительно можно задать «Максимальное количество открытых чат-сессий у оператора» — лимит, после которого новые сессии ждут в очереди, пока оператор не освободится.

Что меняется, пока сессия открыта

  • Не срабатывает автоматическое распознавание сценариев по сообщениям пользователя (интенты/произвольное сообщение) — то есть бот не пытается автоматически что-то ответить поверх общения с оператором. При этом кнопками (например, ведущими в конкретные узлы) пользователь пользоваться может — если он нажмёт кнопку, сценарий по ней сработает как обычно.
  • По умолчанию в открытую чат-сессию не отправляются пуш-рассылки.

Свойства чат-сессии

У каждой чат-сессии есть набор свойств:

СвойствоОписание
Чатк какому чату (клиенту в конкретном мессенджере) привязана сессия
Командакоманда операторов, на которую назначена сессия
Операторконкретный оператор, на которого назначена сессия
Тематема обращения — выбирается из фиксированного списка
Категория закрытияпричина закрытия — тоже из фиксированного списка
Оценкаоценка от 1 до 5, если запрашивалась и была получена
Статус«Открыта» или «Закрыта»
Дата открытия / закрытиякогда сессия была открыта и когда закрыта

Тема чат-сессии

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

Категория закрытия

Тоже фиксированный список, который задаётся в настройках проекта. В отличие от темы, категорию закрытия можно задать только в момент закрытия чат-сессии.

Оценка чат-сессии

По умолчанию для запроса оценки есть системный узел: он спрашивает клиента, как прошло общение, и даёт на выбор 5 кнопок — от 1 до 5. По нажатию кнопки (или по истечении срока ожидания ответа) чат-сессия закрывается, а оценка (если клиент её поставил) записывается в аналитику.

Список чат-сессий

Все чат-сессии можно посмотреть на отдельной странице: my.fstrk.io/clients/sessions/. Оттуда же удобно быстро просматривать, что происходило внутри конкретной сессии — это полезно для мониторинга качества работы операторов.

Список можно отфильтровать по оператору, команде, статусу, теме закрытия, дате открытия/закрытия, типу оператора и отдельно — по сессиям робота-стажёра. В таблице по каждой сессии видно пользователя, канал, статус, команду, оператора, тему закрытия, оценку, кто назначен оператором, дату закрытия и интеграцию.

Как открыть чат-сессию

Есть два способа.

Вручную — оператор нажимает специальную кнопку в интерфейсе чата.

Автоматически из сценария — с помощью тега

{% chat.enable %}
. У тега есть необязательные параметры team и operator.

Открыть сессию на конкретную команду:

{# Старт новой сессии в чат-центре с командой "Поддержка" #}
{% chat.enable team="Поддержка" %}

Открыть сессию сразу на конкретного оператора:

{# Старт новой сессии в чат-центре с конкретным оператором #}
{% chat.enable operator="operator_1@example.com" %}

Если не указывать никаких дополнительных параметров, сессия откроется на стандартную команду «Нераспределённые».

Если вызвать

{% chat.enable %}
в тот момент, когда у чата уже открыта сессия, произойдёт переоткрытие: текущая сессия закроется, и вместо неё откроется новая.

Как закрыть чат-сессию

Есть четыре способа.

  1. Оператор закрывает вручную — специальной кнопкой в интерфейсе чата. Это самый частый сценарий: диалог завершён, оператор закрывает сессию сам.
  2. Из сценария тегом
    {% chat.disable %}
  3. Автоматически узлом запроса оценки — после ответа клиента (или по истечении времени ожидания) сессия закрывается сама.
  4. Автоматически по неактивности — в настройках команды есть три отдельных переключателя: «Закрыть, если нет сообщений в сессии» (не активны ни оператор, ни пользователь заданное время), «Закрыть, если пользователь не отвечает» и «Закрыть, если оператор не отвечает». По умолчанию все три выключены.

Что происходит после закрытия

По умолчанию — ничего. Именно поэтому в сообщении-отбивке (там, где говорим клиенту, что оператор скоро подключится) обычно сразу дают кнопку, чтобы после закрытия сессии пользователь мог самостоятельно вернуться в меню бота.

Также в настройках команды можно указать конкретный узел, в который будет отправляться пользователь после закрытия сессии, назначенной на эту команду. Если узел не указан, поле изначально пустое, и оператор при закрытии может выбрать нужный узел сам.

Итог

Чат — это постоянная сущность клиента в конкретном мессенджере, а чат-сессия — временный эпизод общения этого клиента с оператором внутри чата, с собственным набором свойств (команда, оператор, тема, категория закрытия, оценка, статус, даты). Открыть сессию можно вручную или тегом

{% chat.enable %}
закрыть — вручную, или тегом
{% chat.disable %}
или автоматически по истечению определенного времени неактивности. Пока сессия открыта, автоматика бота по интентам и произвольным сообщениям не срабатывает и пуши не приходят, а после закрытия пользователя стоит сознательно возвращать в сценарий — либо кнопкой в отбивке, либо узлом, настроенным на уровне команды.