# Як налаштувати збагачення webhook (опційно)

Збагачення webhook дозволяє **перед створенням діалогу** доповнити дані дзвінка з зовнішньої системи — наприклад, отримати email оператора з телефонії та автоматично призначити діалог, або визначити тематику дзвінка (Онлайн / Оффлайн).

Функція **не обов’язкова**: без неї дзвінки зберігаються як раніше, лише з полів webhook провайдера.

## Передумови

- Налаштований [канал телефонії](/uk/telephony/how-to/configure-telephony-channel.md) і робочий webhook
- У **Конструкторі сценаріїв → Action Jail** створена або доступна action, яку підключить адміністратор (часто готує команда впровадження)
- Для Ringostat — **Auth-key** і **Project id** з кабінету Ringostat (**Налаштування → Інтеграція → Ringostat API**), якщо action звертається до API Ringostat — див. [Налаштувати Ringostat](/uk/telephony/how-to/configure-ringostat.md#де-взяти-auth-key-і-project-id-ringostat-api)

## Коли знадобиться

- Потрібно **автоматично призначати оператора** за email з телефонії, а не вручну
- Потрібно **розкладати дзвінки по темах** (наприклад, «Телефонія_Онлайн» / «Телефонія_Оффлайн») за статусом лінії
- У webhook провайдера **немає** email оператора або теми — їх треба підтягнути окремим запитом

## Основні елементи інтерфейсу

- **Action збагачення webhook** — поле в формі каналу телефонії; вибір action з Action Jail (ім’я починається з `action_`)
- **Дія при помилці enrich** — вибір поведінки, якщо action збагачення webhook завершилася помилкою
- **Автоматична транскрипція** — параметр каналу, який запускає транскрипцію запису після призначення оператора
- **Action Jail** — місце, де зберігається логіка збагачення та параметри (наприклад, API-ключ Ringostat)
- **Тест action** — перевірка в Action Jail на зразкових даних дзвінка перед підключенням до каналу

## Крок 1: Підготувати action в Action Jail

1. Перейдіть у **Конструктор сценаріїв → Action Jail**
2. Створіть або відкрийте action, яку вам передав впровадник (наприклад, для Ringostat — action з параметрами API)
3. Заповніть **параметри** action:
   - для Ringostat — **Auth-key** і **Project id** з розділу **Ringostat API** у кабінеті Ringostat (детально в [інструкції Ringostat](/uk/telephony/how-to/configure-ringostat.md#де-взяти-auth-key-і-project-id-ringostat-api))
   - інші параметри — згідно з інструкцією впровадження
4. Запустіть **тест** action:
   - увімкніть режим з повним станом (Full state) або передайте JSON з блоком `telephony`, як у реальному webhook
   - переконайтеся, що тест завершується успішно

> Якщо action ще немає — зверніться до команди впровадження ConnectiveOne. Складні інтеграції (кілька систем, нестандартні поля webhook) налаштовуються разом із ними.

## Крок 2: Прив’язати action до каналу

1. Відкрийте **Налаштування → Боти → [ваш бот] → Телефонія**
2. Створіть канал або відкрийте існуючий
3. У полі **Action збагачення webhook** оберіть потрібну action зі списку
4. Якщо в каналі увімкнена **Автоматична транскрипція**, виберіть **Дія при помилці enrich**:
   - **Не призначати і не запускати автотранскрипцію** — використовуйте, якщо при помилці enrich діалог має залишитися без призначення, а транскрипцію потрібно пропустити
   - **Призначити адміністратора і запустити автотранскрипцію** — використовуйте, якщо навіть при помилці enrich дзвінок має потрапити на оператора за замовчуванням і пройти автотранскрипцію. За замовчуванням це користувач з ID `1` (root admin); якщо на вашому інстансі головний адміністратор має інший ID, команда впровадження може змінити значення instance-налаштування `telephony_autotranscribe_default_operator_id`.
5. Збережіть канал

Якщо поле порожнє — збагачення **вимкнене**, обробка дзвінка лише за даними webhook.

## Крок 3: Перевірити на реальному дзвінку

Після збереження зробіть тестовий або реальний завершений дзвінок:

| Що перевірити | Очікуваний результат |
|---------------|----------------------|
| Діалог створено | Дзвінок у Операторській панелі навіть якщо збагачення не вдалося |
| Оператор призначений | У діалозі є учасник-оператор, якщо action повернула email, що збігається з користувачем у ConnectiveOne |
| Помилка збагачення без призначення | Якщо вибрано **Не призначати і не запускати автотранскрипцію**, діалог створено без оператора, а **Автоматична транскрипція** не запускається |
| Помилка збагачення з адміністратором | Якщо вибрано **Призначити адміністратора і запустити автотранскрипцію**, діалог призначено оператору за замовчуванням (за замовчуванням ID `1`), після чого може з’явитися транскрипція |
| Тематика | У діалозі встановлена тема, якщо action повернула alias існуючої теми |
| Помилка збагачення | Діалог є; у стрічці може з’явитися службове повідомлення про невдале збагачення — дзвінок не втрачається |

## Типові проблеми

| Симптом | Що перевірити |
|---------|----------------|
| Оператор не призначився | Email у телефонії збігається з email користувача в ConnectiveOne; користувач активний |
| Тема не встановилась | Теми з потрібними alias створені в налаштуваннях; alias у action написаний так само |
| Тест action OK, реальний дзвінок — ні | У webhook інші назви полів — оновіть field mapping у Advanced Config |
| Діалог є, але без «збагачених» полів | Перевірте логіку action і параметри API; помилка не блокує створення діалогу |
| Помилка авторизації Ringostat API | **Auth-key** і **Project id** скопійовані з **Налаштування → Інтеграція → Ringostat API**, без зайвих пробілів |

## Пов’язані статті

- [Налаштувати канал телефонії](/uk/telephony/how-to/configure-telephony-channel.md)
- [Налаштувати Ringostat](/uk/telephony/how-to/configure-ringostat.md)
- [Протестувати webhook](/uk/telephony/how-to/test-telephony-webhook.md)
- [Що таке інтеграція телефонії](/uk/telephony/explanation/what-is-telephony-integration.md)
