# Виды диалогов, пропущенные обращения и отказы

В этой статье описаны внутренние виды диалогов, которые Webim присваивает чатам, и то, как они связаны со статистикой **пропущенных обращений** и **отказов**.

## Что такое `threadkind`

У каждого диалога в базе хранится поле `chatthread.threadkind` — набор внутренних признаков (видов), которые характеризуют сценарий диалога.

Ключевые особенности:

  * `threadkind` — **множество значений** (в MySQL хранится как `SET(...)`).

  * Виды **выставляются автоматически** системой в процессе жизни диалога.

  * Виды используются в интерфейсе (фильтры/выборки) и в расчётах статистики.

!!! Note "N.B."
    Технически поле является множеством, но в типовой логике Webim большинство сценариев приводит к одному “основному” виду. Отдельно важно, что `offline` — **взаимоисключающий** сценарий: если диалог начался как офлайн-обращение, у него будет только `offline`.

## Список видов 

| Значение `threadkind`           | Смысл                                                                                                                                                                                               | Как обычно используется                                               |
|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| `chat`                          | Диалог переходил в активное общение и посетитель считался онлайн хотя бы в один момент в процессе общения.                                                                                          | “Обычный” онлайн-чат.                                                 |
| `offline`                       | Диалог начался как офлайн-обращение (когда нет операторов онлайн).                                                                                                                                  | Офлайн-обращения и отчёты по ним.                                     |
| `missed`                        | Посетитель не получил ответа и ушёл, а диалог затем был закрыт как **пропущенный** (подробные условия ниже).                                                                                        | Метрики “Пропущенные”.                                                |
| `bounce`                        | Посетитель ушёл из ожидания/закрыл диалог **до истечения тайм-аута отказа** — это считается **отказом**, а не пропуском. Также сюда относят “пустые” обращения без сообщений, закрытые посетителем. | Метрики “Отказы”, а также исключение “явных отказов” из ряда выборок. |
| `rejected_invitation`           | Диалог начался с авто-приглашения и был закрыт без сообщений посетителя.                                                                                                                            | Аналитика эффективности авто-приглашений.                             |
| `skip`                          | Служебная пометка “не учитывать” (ставится вручную/административно).                                                                                                                                | Исключение из истории/отчётов.                                        |

## Подробности по видам диалога

### `chat`

`chat` означает, что диалог дошёл до стадии реального общения.

Типовые признаки:

  * был переход в состояние общения (`chatting` / `chatting_with_robot` и т. п.);

  * посетитель считался **онлайн** хотя бы в один момент, пока диалог был в общении.

### `offline`

`offline` означает, что диалог **начался** как офлайн-обращение (оффлайн-форма/нет операторов онлайн и т. п.).

!!! Warning "Важно"
    Если диалог начался как офлайн-обращение, `threadkind` будет содержать **только** `offline` и не будет комбинироваться с `chat`/`missed`/`bounce`/`rejected_invitation`.

### `rejected_invitation`

`rejected_invitation` выставляется, когда:

  * диалог был в состоянии авто-приглашения (`invitation`);

  * посетитель так и не написал ни одного сообщения;

  * диалог закрылся.

### `skip`

`skip` — служебная пометка, что диалог **не должен участвовать** в аналитике и выборках.

Типовые случаи:

  * тестовые обращения при настройке;

  * служебные/ошибочные диалоги, которые нужно исключить из отчётов.

## Пропущенные обращения и отказы: `missed` и `bounce`

### Тайм-аут отказа

Ключевой параметр — `seconds_before_visitor_missed`, в интерфейсе он называется **Тайм-аут отказа** (см. **Меню → Настройки → Общие → Тайм-ауты и автосообщения**).

Логика такая:

  * если посетитель ушёл **раньше** тайм-аута отказа → это **отказ** (`bounce`);

  * если посетитель ждал **дольше** тайм-аута отказа и ушёл, не получив ответа → это **пропущенное** (`missed`).

### Как определяется отказ

`bounce` — это “явный отказ” со стороны посетителя. Типовые ситуации:

  * диалог стоял в очереди, посетитель ушёл/закрыл диалог **до истечения тайм-аута отказа**;

  * посетитель открыл чат, но **не отправил ни одного сообщения** и закрыл его, пока диалог ещё был в ожидании (такие “пустые” обращения также относятся к отказам).

### Как определяется пропущенное обращение

`missed` соответствует “пропущенному” в смысле статистики: посетитель не получил ответа и ушёл, а диалог был закрыт как пропущенный.

Логика работы:

  1. Посетитель инициировал обращение с сайта в момент, когда хотя бы один оператор был онлайн.

  1. Диалог попал в ожидание (очередь).

  1. Посетитель дождался **истечения тайм-аута отказа** и ушёл (стал офлайн) до того, как получил реакцию оператора.

  1. Посетитель **не вернулся** до окончательного закрытия диалога.

!!! Note "N.B."
    Если посетитель покинул сайт, пока диалог стоял в очереди, а оператор принял чат уже после ухода посетителя, такой диалог считается пропущенным.

### Важные нюансы “онлайн/офлайн”

При расчётах пропущенных обращений важно, как система трактует онлайн-статус:

  * “Онлайн” включает ситуацию, когда посетитель **закрыл окно чата**, но **остался на сайте**.

  * В каналах общения и в мобильных приложениях с push-токеном пропущенные обращения **не формируются** (посетители в них воспринимаются системой как находящиеся онлайн).

Подробная логика пропущенных обращений описана в статье: **[Пропущенные обращения](https://webim.ru/kb/for-analytics/statistics/missed.html)**.

## Влияние `threadkind` на статистику и отчёты

Виды диалогов обычно используются так:

  * `chat` — учитывается как онлайн-диалог/обработанный чат (в зависимости от отчёта).

  * `offline` — используется в отчётах по офлайн-обращениям.

  * `missed` — формирует метрики “Пропущенные”.

  * `bounce` — формирует метрики “Отказы” и часто исключается из метрик “нагрузки/обращений”.

  * `rejected_invitation` — статистика авто-приглашений.

  * `skip` — должен исключаться из отчётов/выборок.

  * `undefined` / `could not define` — встречаются только в старых данных.

!!! Note "N.B."
    В отдельных отчётах могут применяться дополнительные условия (например, по состояниям диалога или событиям истории), поэтому ориентируйтесь на описание конкретной метрики/отчёта.

---

Источник: https://webim.ru/kb/for-admins/dialog-kinds-and-missed-chats.html
