Чат — это сущность клиента: у него один чат в 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 %} в тот момент, когда у чата уже открыта сессия, произойдёт переоткрытие: текущая сессия закроется, и вместо неё откроется новая.

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

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