# Логика обработки чатов

В данной статье собраны ответы на вопросы, связанные с логикой обработки чатов.

**Вопрос**: Что значит "диалог закрыт окончательно"?
> **Ответ**: Смотрите статью [закрытие диалогов](https://webim.ru/kb/for-admins/closing-dialogs.html).

**Вопрос**: Какие особенности у настройки `auto_assign_to_last_chat_operator`?
> **Ответ**: Данная настройка автоназначений работает только с живыми операторами (не ботами) и не имеет срока давности. То есть если от пользователя ранее уже поступали обращения, то новое обращение будет автоматически назначено на того же оператора, что и предыдущее, вне зависимости от того, как давно было совершено последнее обращение пользователя. Более подробно ознакомиться с настройками автоназначений можно в [данной статье](https://webim.ru/kb/for-admins/queues.html).

**Вопрос**: Почему не работает автоназначение?
> **Ответ**: Проверьте, включено ли автоназначение в настройках сервиса. Если данная настройка включена, рекомендуем сравнить цифры общего автоназначения и у конкретных операторов. В случае, если всё настроено корректно, но проблема не решена, Вы можете обратиться в нашу [техническую поддержку](mailto:support@webim.ru).

**Вопрос**: Почему автоназначение превышает свой лимит?
> **Ответ**:  На лимит автоназначений влияет статус диалога, находящегося на операторе. В параметре `chat_states_for_count_per_operator` указано, в каких состояниях диалог считается находящимся на операторе. Подробнее с работой данного параметра Вы можете ознакомиться в [данном материале](https://webim.ru/kb/for-admins/queues.html).

**Вопрос**: Почему диалог поступил в очередь позже, а распределился раньше?
> **Ответ**: Распределение работает по времени создания диалога, а не по времени попадания в очередь. Диалог, у которого время создания раньше, распределится раньше.

**Вопрос**: Как сделать, чтобы диалог не закрывался по тайм-аут автозакрытия чата с момента последней активности?
> **Ответ**: Данный тайм-аут отключить невозможно. Вы можете выставить для него очень большое значение, чтобы автозакрытие чата происходило с большой задержкой, но помните, что число незакрытых диалогов влияет на производительность системы.

**Вопрос**: Не грузится статистика за текущий день. Это ошибка?
> **Ответ**: Стандартным временем расчёта статистики является 15 секунд. Если у Вашего аккаунта большая история сообщений, то статистика не успевает рассчитаться за этот период. Данное поведение не является ошибкой. В конце дня будет запущен скрипт препроцессинга статистических данных за прошедшие сутки, что позволит отразить статистику любого объёма за прошедший день.

**Вопрос**: Не отображается статистика за прошедший день.
> **Ответ**: Данная проблема может быть вызвана тем, что скрипт препроцессинга статистических данных за прошедшие сутки не обработал их. Вы можете обратиться в [техническую поддержку](mailto:support@webim.ru), чтобы она запустила скрипт препроцессинга данных вручную.

**Вопрос**: Почему диалог не закрывается по тайм-ауту автозакрытия чата с момента последней активности?
> **Ответ**: Тайм-аут автозакрытия чата с момента последней активности применяется только для чатов в статусах *В диалоге*, *Приглашён* и *Закрыт пользователем*. Если диалог находится в статусе *В очереди*, на него не распространяется тайм-аут автозакрытия чата с момента последней активности. В статусе *В очереди* диалог находится в следующих случаях:
>
> * Если пользователь задал вопрос, но ему никто не ответил. В таком случае диалог не находится ни на одном из операторов.
>
> * Если пользователь задал вопрос, ему ответил оператор, но затем диалог был переведён на другого оператора, и новый оператор не ответил. В таком случае диалог также не находится ни на одном из операторов.

**Вопрос**: Чаты назначаются неравномерно: один оператор нагружен чатами больше, чем остальные.
> **Ответ**: В таком случае проверьте, корректно ли Вы настроили [параметры автоназначения](https://webim.ru/kb/for-admins/queues.html). Кроме того, оператор может самостоятельно брать себе обращения сверх лимитов.

**Вопрос**: Портят ли офлайн-обращения показатели качества?
> **Ответ**: Нет, они рассчитываются как офлайн и не влияют на показатели качества в онлайн-категории.

**Вопрос**: Почему оператор поговорил с посетителем, потом они молчали, но чат не закрылся, а перешёл позже на другого оператора?
> **Ответ**: Вероятно, незакрытые чаты возвращались в общую очередь раньше, чем выходило время, по которому закрываются неактивные чаты. Обращение в этом случае считалось не обработанным до конца. Поэтому чат всё время до нового назначения висел незакрытым.

**Вопрос**: Какие состояния может принимать диалог?
> **Ответ**: Диалог может принимать следующие состояния:
>
> * *В очереди*
>  
> * *Ожидание оператора*
>  
> * *В диалоге*
>  
> * *Закрыто*
>  
> * *Загружается*
>  
> * *Приглашён*
>  
> * *В диалоге (обновлён)*
>  
> * *Перенаправлен*
>
> Подробнее о жизненном цикле чата см. [здесь](https://webim.ru/kb/dev/basic-objects/life-of-chat.html).

**Вопрос**: Если пользователь сначала вёл диалог без авторизации, а потом авторизовался, — история привяжется?
> **Ответ**: Привяжется история одного последнего неавторизованного чата, если он не закрыт на момент авторизации.

**Вопрос**: Что происходит при нажатии на крестик в правом верхнем углу чата?
> **Ответ**: Происходит вызов метода `webim.api.chat.close()`, который фактически не закрывает, а сворачивает чат. Чат как объект не перестаёт существовать. С ним ничего не происходит, виджет сворачивается только визуально и может быть возобновлён в любой момент.

**Вопрос**: Что считается активностью (для тайм-аута автозакрытия чата с момента последней активности)?
> **Ответ**: Активностью считаются следующие действия пользователей:
>
> * смена состояния или оператора диалога;
>
> * посетитель или оператор набирают сообщение;
>
> * сообщение с одним из следующих [Kinds](https://webim.ru/kb/dev/basic-objects/message-types.html): `OPERATOR_BUSY`, `VISITOR`, `FILE_VISITOR`, `CONTACTS`, `FORM_RESPONSE`, `OPERATOR`, `FILE_OPERATOR`, `CONT_REQ`.

**Вопрос**: Почему неожиданно закрылся диалог?
> **Ответ**: Такое поведение возможно, если авторизованный пользователь ведёт диалог с одного устройства (сессия 1), а на другом устройстве он начинает чат как аноним, а потом авторизуется (сессия 2), — тогда сессия 1 удаляется, а чат в ней закрывается с событием `session.delete`.

---

Источник: https://webim.ru/kb/faq/chat-processing-logic.html
