# Про авторозподіл діалогів між операторами

Авторозподіл діалогів дозволяє автоматично призначати діалоги операторам у статусі, який дозволяє працювати з діалогами. Система враховує різні критерії для справедливого розподілу навантаження та ефективного використання ресурсів операторів.

## Контекст і проблема

У багатьох випадках потрібно справедливо розподіляти діалоги між операторами:
- Велика кількість вхідних запитів потребує швидкої обробки
- Різні оператори мають різні навички та навантаження
- Потрібна справедлива розподіл навантаження
- Оптимізація часу відповіді на запити клієнтів

Авторозподіл вирішує цю задачу, дозволяючи системі автоматично призначати діалоги операторам з урахуванням різних критеріїв.

## Основні концепції

### Критерії вибору оператора

Визначення оператора, якому буде призначено діалог, відбувається з урахуванням:
- Статусу оператора (онлайн)
- Ліміту діалогів за каналом (налаштування)
- Ліміту діалогів загального (налаштування)
- Методу автоматичного розподілу (налаштування)

### Методи автоматичного розподілу

**За замовчуванням:**
- Враховує кількість діалогів у оператора
- Враховує час закриття останнього діалогу
- Новий діалог розподіляється на оператора з найменшою кількістю діалогів

**За кількістю діалогів:**
- Враховує тільки кількість діалогів у оператора
- Новий діалог розподіляється на оператора з найменшою кількістю діалогів

**Відповідно до дати останнього діалогу:**
- Враховує час призначення останнього діалогу оператора
- Новий діалог розподіляється на оператора, який раніше за всіх почав останній діалог

## Варіанти підходів

### Різні методи розподілу

**За замовчуванням:**
- ✅ Плюси: Враховує кілька факторів, справедливий розподіл
- ❌ Мінуси: Може бути складнішим для розуміння

**За кількістю діалогів:**
- ✅ Плюси: Простота, зрозумілість
- ❌ Мінуси: Не враховує час останнього діалогу

**Відповідно до дати останнього діалогу:**
- ✅ Плюси: Рівномірний розподіл за часом
- ❌ Мінуси: Не враховує кількість діалогів

**Чому використовуємо різні методи:**
Різні методи підходять для різних сценаріїв та потреб клієнтів, дозволяючи обрати найкращий варіант для конкретної ситуації.

## Прийняті рішення

### Авторозподіл за вагою

Вага вказує на важливість діалогу в черзі: чим більша вага — тим раніше він розподілиться на оператора. Вага може бути вказана:
- У темах в операторській панелі
- При підключенні через параметр `weight` (має більш високий пріоритет)

### Ліміти по діалогам

Завдяки можливості встановлення лімітів на операторів для кожного каналу можна оптимізувати роботу команди:
- **Загальний ліміт (`max_dialogs`):** Максимальна кількість одночасних діалогів
- **Ліміт за каналом (`channels_quota`):** Додаткові обмеження на кількість діалогів з конкретних каналів

**Примітка:** Якщо потрібне суворіше дотримання лімітів операторів під високим навантаженням, зверніться до адміністратора: у налаштуваннях інстансу для вашого розгортання може бути доступне посилене контролювання квот, щоб оператори не перевищували встановлені обмеження.

### Авторозподіл тікетів

Система підтримує автоматичне розподілення тікетів між операторами, аналогічно до розподілу діалогів, з урахуванням навичок операторів (skill groups) та їх поточної завантаженості.

## Наслідки для користувачів і імплементації

### Для інтеграторів

При налаштуванні авторозподілу важливо:

1. **Вибрати метод розподілу** — залежно від потреб та пріоритетів
2. **Налаштувати ліміти** — для кожного оператора окремо
3. **Встановити вагу** — для пріоритезації важливих діалогів
4. **Налаштувати тікети** — якщо потрібен авторозподіл тікетів

### Типові помилки

**Помилка:** Діалоги розподіляються несправедливо  
**Проблема:** Неправильно обрано метод розподілу або не налаштовані ліміти  
**Рішення:** Перевірити метод розподілу та налаштувати ліміти для операторів

**Помилка:** Важливі діалоги не обробляються першими  
**Проблема:** Не встановлено вагу для важливих діалогів  
**Рішення:** Додати вагу в темах або при підключенні через параметр `weight`

**Помилка:** Оператори перевантажені  
**Проблема:** Не встановлено ліміти або вони занадто високі  
**Рішення:** Налаштувати ліміти для операторів відповідно до їх можливостей

## Пов'язані документи

- **Explanation:** [Автоматичне підключення вільного оператора](/uk/operatorline/explanation/auto-connect-free-operator.md) — налаштування автоматичного підключення
- **Explanation:** [Підключення чату з оператором](/uk/operatorline/explanation/connect-chat-to-operator.md) — налаштування підключення до оператора

