Про інтеграцію ConnectiveOne з Corezoid через операторську панель
Інтеграція ConnectiveOne з Corezoid дозволяє користувачам, які пишуть у Corezoid-бота, підключатися до живого оператора через ConnectiveOne, а всі повідомлення від оператора повертати назад у Corezoid. Це створює гібридне рішення, де Corezoid обробляє автоматизацію, а ConnectiveOne надає операторську підтримку.
Контекст і проблема
У багатьох випадках потрібно поєднати автоматизацію Corezoid з живим оператором:
- Corezoid обробляє початкові запити та автоматизацію
- При потребі оператора запит передається в ConnectiveOne
- Оператор відповідає через ConnectiveOne, а повідомлення повертаються в Corezoid
Ця інтеграція вирішує задачу поєднання автоматизації та живих операторів у єдиному workflow.
Основні концепції
Архітектура взаємодії
Інтеграція працює через два сценарії ConnectiveOne:
Сценарій #1 (на custom_channel):
- Приймає вхідний запит від Corezoid
- Відкриває чат в операторській панелі ConnectiveOne
- Налаштовує
event_webhook_urlдля пересилання подій
Сценарій #2 (для подій з операторки):
- Отримує події з операторської панелі через webhook
- Обробляє події через Action Jail
- Надсилає дані назад у Corezoid через Corezoid API
Параметр event_webhook_url
Параметр event_webhook_url в action operator_panel__connect_to_operator_with_msg дозволяє вказати URL іншого бота, куди будуть надсилатися всі події з операторської панелі (повідомлення від оператора, клієнта, системні події).
Варіанти підходів
Пряма інтеграція vs через webhook
Пряма інтеграція:
- ✅ Плюси: Простіша реалізація
- ❌ Мінуси: Менша гнучкість, складніше масштабування
Через webhook (рекомендовано):
- ✅ Плюси: Гнучкість, виділення логіки, легко переробити без зміни інтеграцій
- ❌ Мінуси: Складніша початкова налаштування
Чому використовуємо webhook: Це дозволяє виділити логіку обробки подій в окремий сценарій та легко адаптувати під різні зовнішні системи без зміни основного сценарію.
Прийняті рішення
Використання Action Jail для обробки подій
Action Jail дозволяє обробляти різні типи подій:
message_from_operator— повідомлення від оператораmessage_from_client— повідомлення від клієнтаmessage_system— системні події
Збереження original_call_node_body
Для callback в Corezoid зберігається original_call_node_body, який використовується для повернення контролю в Corezoid після обробки події.
Наслідки для користувачів і імплементації
Для інтеграторів
При налаштуванні інтеграції важливо:
- Налаштувати два сценарії — один для прийому запитів, інший для обробки подій
- Створити Action Jail — для обробки різних типів подій та відправки в Corezoid
- Налаштувати event_webhook_url — вказати URL другого бота для пересилання подій
- Обробити помилки — додати retry логіку та fallback механізми
Типові помилки
Помилка: Події не надходять у другий бот
Проблема: Неправильно налаштований event_webhook_url
Рішення: Перевірити URL та доступність другого бота
Помилка: Дані не повертаються в Corezoid
Проблема: Не налаштований Action Jail або неправильний URL Corezoid API
Рішення: Перевірити Action Jail та URL Corezoid API
Помилка: Втрачається контекст діалогу
Проблема: Не зберігається original_call_node_body
Рішення: Додати збереження та використання original_call_node_body для callback
Переваги такого підходу
- Гнучкість: можна підключити будь-яку зовнішню систему, не лише Corezoid
- Виділення логіки: операторські події не перевантажують основний сценарій
- Відокремленість: легко переробити лише обробку jail'а без зміни в інтеграціях
Пов'язані документи
- Explanation: Підключення чату з оператором — налаштування webhook через параметр
event_webhook_url - How-to: Створити action в Action Jail — як створити власні action