# Про перерозподіл чатів з оператора

Перерозподіл чатів дозволяє автоматично перерозподілити чати з оператора на інших доступних операторів у випадку форс-мажорних обставин, таких як вимкнення світла, технічні збої або інші ситуації, коли оператор не може обробити діалоги.

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

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

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

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

### Процес перерозподілу

**Створення процесу:**
1. Створити нову секцію бота
2. Обов'язково проставити галочку **"Використовувати як процес"**
3. Налаштувати сценарій процесу

**Налаштування сценарію процесу:**
1. Сповіщення користувачу про передачу іншому оператору
2. Дія `setOperatorStatusToOffline` для переведення оператора в статус Offline
3. Дія `goto_alias` для переходу на alias перерозподілу

**Налаштування основного сценарію:**
- Прописати alias для перерозподілу
- Додати авторозподілення з'єднання з оператором
- Вказати вагу (параметр `weight`) для пріоритезації

### Запуск процесу

Процес запускається вручну:
1. Обрати потрібного оператора в операторській панелі
2. Натиснути ПКМ (права кнопка миші)
3. Вибрати **"Запустити процес"**
4. Обрати потрібний процес та запустити його

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

### Перерозподіл через процес vs ручний перерозподіл

**Перерозподіл через процес:**
- ✅ Плюси: Автоматизація, стандартизація, можливість запуску для груп операторів
- ❌ Мінуси: Потрібна попередня налаштування

**Ручний перерозподіл:**
- ✅ Плюси: Гнучкість, контроль
- ❌ Мінуси: Повільність, потребує ручного втручання

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

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

### Використання ваги для пріоритезації

При перерозподілі важливо вказати вагу (параметр `weight`) для пріоритезації чатів, які не змогли продовжити спілкування з оператором. Чим більше значення ваги, тим вищий пріоритет при розподілі.

### Переведення оператора в статус Offline

Дія `setOperatorStatusToOffline` переводить оператора в статус Offline, щоб наступні чати не розподілялися на нього, допоки у нього не відновиться зв'язок.

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

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

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

1. **Створити процес** — з обов'язковою галочкою "Використовувати як процес"
2. **Налаштувати сценарій процесу** — з повідомленням, `setOperatorStatusToOffline` та `goto_alias`
3. **Налаштувати основний сценарій** — з alias та вагою для перерозподілу
4. **Протестувати процес** — перевірити коректність роботи

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

**Помилка:** Процес не запускається  
**Проблема:** Не проставлено галочку "Використовувати як процес"  
**Рішення:** Перевірити налаштування секції та проставити галочку

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

**Помилка:** Оператор продовжує отримувати нові чати  
**Проблема:** Не виконано `setOperatorStatusToOffline` або неправильно налаштовано  
**Рішення:** Перевірити виконання `setOperatorStatusToOffline` та його налаштування

## Приклади використання

### Конфігурація goto_alias

```json
{
  "alias": "redistribute_chats"
}
```

### Конфігурація з вагою

```json
{
  "auto_connect_operator": true,
  "subject_alias": "support",
  "weight": 1000
}
```

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

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

