# Маршрутизация чатов между операторами и ботами

Обращения, поступающие в систему, могут обрабатываться операторами (т. е. сотрудниками технической поддержки клиента) или ботами. Логика распределения чатов между операторами подробно описана в статье об [алгоритмах распределения чатов](https://webim.ru/kb/for-admins/chat-assignment-modes.html). Несмотря на то, что каждый создаваемый бот всегда привязывается к учётной записи оператора, которую рекомендуется создавать для каждого бота отдельно (см. статью [Добавление бота](https://webim.ru/kb/bots/add-new-bot.html)), есть ряд особенностей, влияющих на распределение чата на бот либо на "живого" оператора.

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

Статус бота изменяется на [странице редактирования бота](https://webim.ru/kb/bots/add-new-bot.html) администратором, а оператор [изменяет свой статус](https://webim.ru/kb/for-agents/agent-gui/select-status.html) вручную либо может переводиться в другой статус автоматически при определённых обстоятельствах (в частности, из статуса *Онлайн* в *Невидимку* при бездействии в течение определённого времени).

График работы влияет только на «живых» операторов и не меняет статус бота (даже если бот привязан к учётной записи оператора). Статус бота устанавливается вручную на странице редактирования бота.

## Рекомендованные настройки ботов и отделов

Для корректной маршрутизации обращений между ботами и операторами при создании и настройке ботов рекомендуется придерживаться следующих рекомендаций:

  * При создании бота необходимо выделять для него отдельную учётную запись оператора, под которой не будут сидеть живые операторы.

  * Настоятельно рекомендуется всегда создавать отдел для бота (при этом в отделе могут состоять и живые операторы).

  * При подключении нескольких ботов рекомендуется помещать их в разные отделы из-за [особенностей маршрутизации чатов между несколькими ботами](https://webim.ru/kb/for-admins/routing-chats-between-agents-and-bots.html#routing-between-several-bots).

  * Для того, чтобы бот в принципе мог брать на себя обращения, установите ему статус *Онлайн* или *Невидимка*; если нужно, чтобы бот перестал брать на себя обращения вообще, переведите его в статус *Офлайн*.

## Маршрутизация новых обращений

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

| Статусы         | Оператор *Онлайн*                | Оператор *Невидимка* и другие[^1]                                                                            | Оператор *Офлайн*                                                                                            |
|-----------------|----------------------------------|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| Бот *Онлайн*    | Чат будет назначен на бот.      | Чат будет назначен на бот.                                                                                  | Чат будет назначен на бот.                                                                                  |
| Бот *Невидимка* | Чат будет назначен на бот.      | Чат будет назначен на бот.                                                                                  | Чат будет назначен на бот.                                                                                  |
| Бот *Офлайн*    | Чат будет назначен на оператора. | Чат не будет распределён (будет считаться [офлайн-обращением](https://webim.ru/kb/for-agents/work-with-offline-requests.html)). | Чат не будет распределён (будет считаться [офлайн-обращением](https://webim.ru/kb/for-agents/work-with-offline-requests.html)). |

Если необходимо, чтобы обращения распределялись только на живых операторов, нужно перевести бот в статус *Офлайн*.

## Маршрутизация чатов при наличии нескольких ботов { #routing-between-several-bots }

Как следует из матрицы выше, если бот находится не в статусе *Офлайн*, то он всегда берёт на себя все чаты, соответствующие его [отделу](https://webim.ru/kb/for-admins/dept.html).

В случае, если чат одновременно может быть назначен на нескольких ботов (например, когда есть несколько ботов в отделе в статусах *Онлайн* и/или *Невидимка*), то на маршрутизацию чатов между ними будет влиять следующее:

  * Порядок сортировки бота, который задаётся при [добавлении/редактировании бота](https://webim.ru/kb/bots/add-new-bot.html): чем меньшее число указано для бота, тем выше его приоритет. Соответственно, все чаты будут распределяться на бот с наивысшим приоритетом.

  * Если бот с приоритетным значением порядка сортировки не отвечает или выдаёт ошибку, чаты будут распределяться на следующий по порядку сортировки бот в статусе *Онлайн* или *Невидимка*.

При включённом выборе отдела посетителем, если есть несколько ботов *Онлайн* или в Невидимке при условии, что они находятся в разных отделах, чат распределяется на тот бот, который находится в отделе, выбранном посетителем.

Для маршрутизации чатов тип бота ([сценарный бот](https://webim.ru/kb/bots/scenario-bot.html) или "умный" бот, подключаемый через [API Умного Бота](https://webim.ru/kb/bots/smart-bot/v-2-0.html)) значения не имеет.

При этом, если чат был распределён на бот, он может быть в дальнейшем перенаправлен другому боту — например, от сценарного (кнопочного) к умному.

Рекомендуется не добавлять несколько ботов в один отдел, чтобы в одном отделе было не более одного бота.

## Повторная маршрутизация обращений

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

Если чат был назначен на бот, а затем снят всего и впоследствии снова попал в общую очередь, повторно назначен на бот чат **не будет**.

Также при осуществлении [перенаправления чата](https://webim.ru/kb/for-agents/online-work-with-visitors/redirect-dialog.html) на отдел даже при условии наличия в этом отделе ботов, готовых обрабатывать обращения, чат будет назначен на живого оператора, а не на бот. Повторно чат может быть назначен на бот только целенаправленно (т. е. непосредственно на оператора, к которому прикреплён бот).

## Общая схема маршрутизации обращений между отделами и ботами

Описанные выше принципы маршрутизации изображены на схеме.

![Настройка маршрутизации чатов между операторами и ботами](https://webim.ru/kb/img/for-admins/routing-chats-between-agents-and-bots/routing-chats-between-agents-and-bots.svg)

[^1]: В соответствие со статьёй о [статусах оператора](https://webim.ru/kb/for-agents/agent-gui/select-status.html) функционально статусы *Невидимка*, *Обед* и *Личный перерыв*, *Технический перерыв*, *На проведении инструктажа*, *На встрече*, *Короткий перерыв* равноценны с точки зрения логики распределения чатов и отличаются только названием, но не поведением сервиса. Соответственно, в данном столбце таблицы описывается поведение сервиса в отношении операторов в любом из данных статусов.

---

Источник: https://webim.ru/kb/for-admins/routing-chats-between-agents-and-bots.html
