Use Case 3: Передача на оператора зі сценарію
Рівень: базовий · Модулі: Scenario Builder, Settings → Operator Panel · Action: operator_panel__connect_to_operator_with_msg
Необхідні права та доступ
| Що потрібно | Де в меню | Навіщо |
|---|---|---|
| Scenario Builder | Меню → Scenario Builder | Connect-нода в сценарії |
| Settings → Operator Panel → Теми | Налаштування → Операторська панель → Теми | Тема з alias для subject_alias |
| Settings → Operator Panel → Групи навичок | Налаштування → Операторська панель → Групи навичок | Skill group теми для auto_connect_operator |
Якщо розділу Теми немає в меню — перевірте права облікового запису або зверніться до підтримки ConnectiveOne.
Бізнес-контекст
Після меню (або FAQ) клієнт натискає «Поговорити з оператором». Якщо вільних операторів немає — клієнт отримує ваше повідомлення про очікування (edge limit), а не тишу. Після закриття чату або таймауту сценарій може продовжитися через alias (підготовка до CSAT у Use Case 7b).
Очікуваний результат
- Edge
success→ connect виконано (перевірка в Runs). - Edge
limit→ клієнт отримує ваше повідомлення про очікування. - Edge
error→ зрозуміле повідомлення про помилку (не тиша). subject_aliasузгоджений з темою в Settings; тема прив'язана до skill group з операторами.- Задано
chat_closed_alias(заготовка entrypoint) і розуміння таймерів неактивності / очікування оператора.
Архітектура flow
MessageKeyboard («Оператор») → Action (operator_panel__connect_to_operator_with_msg)
├─ success → MessageKeyboard «Оператор підключився»
├─ limit → MessageKeyboard «Зараз усі зайняті. Очікуйте…»
└─ error → «Не вдалося підключити. Спробуйте пізніше»
Після закриття чату (оператором) → chat_closed_alias → (напр. секція «Дякуємо» / заготовка для UC-7b)
Зв'язок з іншими налаштуваннями
| Що | Навіщо |
|---|---|
Тема (subject_alias) |
Маршрутизація діалогу в правильну чергу / папку OP |
| Skill group теми | Звідки auto_connect_operator бере вільного оператора |
| Оператор у skill group | Інакше limit або success без живого оператора |
| Alias після close / timeout | Продовження сценарію після життєвих подій чату |
→ Налаштувати теми · Налаштувати групи навичок
Покрокова реалізація
Крок 0. Тема, skill group і оператор (якщо ще немає)
Settings → Operator Panel → Теми → створіть тему для навчання:
| Поле | Приклад |
|---|---|
| Назва | Training Support |
| alias | training_support |
| Skill group | Training Support SG (прив'яжіть існуючу або створіть нову) |
Settings → Operator Panel → Групи навичок — переконайтеся, що в групі теми є хоча б один тестовий оператор (для E2E).
Запишіть alias теми — він піде в subject_alias connect-ноди.
Крок 1. MessageKeyboard — кнопка ескалації
| Параметр | Значення | Навіщо |
|---|---|---|
| Текст | «Потрібен оператор?» | |
| Кнопка | «Поговорити з оператором» · payload operator |
Запуск connect |
| Output Variable | (опційно) | Достатньо edge кнопки |
Edges: кнопка operator → Action connect.
Крок 2. Action — operator_panel__connect_to_operator_with_msg
Що робить action: створює чат-кімнату в Operator Panel, призначає тему, намагається підключити оператора, повертає подію за результатом.
| node_params | Рівень | Значення (приклад) | Навіщо |
|---|---|---|---|
subject_alias |
must | training_support |
Маршрутизація в тему / чергу |
auto_connect_operator |
must | true |
Вільний оператор з skill group теми; інакше limit |
chat_closed_alias |
should | training_chat_closed |
Після закриття оператором → entrypoint (UC-7b: CSAT) |
custom_timeout_time |
should | 30 |
Таймаут неактивності діалогу (хв); спрацьовує chat_closed_by_timeout_alias |
connection_timeout_time |
should | 120 |
Секунди очікування оператора → connection_timeout_alias |
customTextToOperator |
nice | «Клієнт з навчального бота» | Контекст для оператора в OP |
add_button |
nice | false |
На навчанні не ускладнюємо UI чату |
Пов'язані alias (за потреби): chat_closed_by_timeout_alias, connection_timeout_alias, chat_closed_by_client_alias — деталі в довіднику action.
Заготовка entrypoint: створіть секцію з точкою входу training_chat_closed і простим MessageKeyboard «Дякуємо за звернення» — у Use Case 7b заміните на CSAT.
Edges (обов'язково мінімум success + limit + error):
| Edge | Коли | Куди | Навіщо |
|---|---|---|---|
success |
Чат створено, клієнт підключений | MessageKeyboard «Вас підключено до оператора» | Клієнт знає, що діалог у OP |
limit |
Немає вільних операторів | MessageKeyboard «Зараз усі оператори зайняті…» | Ваш текст черги |
error |
Помилка створення чату | «Не вдалося підключити…» | Failsafe (Use Case 9) |
banned (якщо є) |
Клієнт у бані | Повідомлення про блокування | Рідко на навчанні, але edge краще підключити |
Крок 3. MessageKeyboard після limit
| Параметр | Приклад |
|---|---|
| Текст | «Зараз усі оператори зайняті. Ми відповімо найближчим часом — зачекайте в цьому чаті.» |
Без цієї ноди клієнт часто бачить тишу після limit.
Крок 4. Тест у Runs
- Runs / preview: натиснути «Оператор» → перевірити, який edge спрацював (
success,limitабоerror). - Переконатися, що після edge
limitклієнт бачить ваше повідомлення (не тиша). - Якщо завжди
error— перевіритиsubject_alias, тему та skill group у Settings. - У trace / constants перевірити, що
chat_closed_aliasзаписано (якщо задано).
Опційно (E2E): якщо на інстансі є тестовий оператор і канал — перевірте, що діалог потрапив у тему з відповідним alias. Це не обов'язковий критерій завершення Use Case 3.
Повідомлення про чергу: текст формує інтегратор у ноді після limit. Для навчання достатньо статичного зрозумілого тексту.
Критерії приймання (self-check Runs)
Типові помилки
| Симптом | Причина | Що зробити |
|---|---|---|
Завжди error |
Невірний subject_alias або теми немає |
Створити тему, звірити alias |
| Тиша після connect | Немає MessageKeyboard після limit |
Додати текст очікування |
| Діалог не в тій темі | Alias не збігається | Звірити Settings і node_params |
success, але оператор не бачить |
Немає операторів у skill group теми | Додати оператора в skill group теми |
| Після close сценарій не продовжується | Немає chat_closed_alias або entrypoint |
Задати alias + секція з entry |
| Закриття по неактивності «нічого не робить» | Не задано chat_closed_by_timeout_alias |
Див. повний довідник connect action |