Створює чат у Operator Panel і підключає клієнта до оператора. Параметри задаються в JSON-конфігурації ноди (або у полях Node Inspector). Усі параметри опціональні, якщо не зазначено інше.
System ID: action_operator_panel__connect_to_operator_with_msg
У сценарії також: operator_panel__connect_to_operator_with_msg
Концепція ноди в Scenario Builder: Живий оператор у діалозі.
Короткий рядок у каталозі: Довідник actions — Operator Panel.
Після виконання action повертає одну з гілок. Кожну потрібно з’єднати з наступними нодами.
| Подія | Коли виникає |
|---|
| success | Чат створено (типовий успіх, якщо на ноді немає окремих гілок queue / connected) |
| connected | Оператор уже підключений / чат у статусі processed — лише якщо на ноді є вихід connected |
| queue | Чат у черзі або режим очікування (continue, status: "queue") — лише якщо на ноді є вихід queue |
| banned | Користувач у активному бані; клієнту може піти текст причини бану |
| limit | Увімкнено auto_connect_operator, але вільного оператора не знайдено |
| error | Не вдалося створити чат або інший збій |
Якщо на ноді немає виходів queue / connected, успішний результат завжди йде в success (навіть коли чат фактично в черзі).
Кнопки add_button / add_return_button — це UI чату, а не події (гілки) сценарію.
| Параметр | Тип | Опис |
|---|
subject_alias | string | Alias теми звернення. Підтримує плейсхолдери ({{...}}). Тема має існувати й не бути видаленою. |
auto_connect_operator | boolean | true — перед створенням чату перевіряє вільних операторів за skill group теми (з урахуванням лімітів діалогів). Якщо нікого немає — подія limit, чат не створюється. false або відсутній — чат створюється без автопризначення. |
assigned_operator | string / number | ID оператора (op_user). Працює лише разом з auto_connect_operator: true. Підтримує плейсхолдери. |
continue | boolean | true — клієнт може продовжувати сценарій під час очікування (стан wait); гілка зазвичай success (або queue, якщо є). |
status | string | Початковий внутрішній статус чату: new, processed, queue, closed. Без нагальної потреби не змінюйте. |
status_name | string | Користувацький статус чату (якщо такого статусу немає — не встановиться). Підтримує плейсхолдери. |
chat_title | string | Заголовок чату в панелі оператора. Підтримує плейсхолдери, напр. "Чат підтримки - {{{user_name}}}". |
weight | number | Вага (пріоритет) діалогу. Якщо не задано — береться вага теми. |
tag_ids | array | ID тегів для чату. Підтримує плейсхолдери в елементах масиву; неіснуючі ID ігноруються. |
history_by_phone | boolean | Шукати історію клієнта за номером телефону (навіть з інших каналів / chat_id). |
history_count | number | Скільки останніх кроків клієнта в боті передати оператору. 0 або відсутній — історію не надсилати. |
enable_transition_on_chat_close | boolean | Якщо вимкнено — при закритті чату не виконується перехід за alias. |
process_bot_id | number | ID бота, процеси якого можна використовувати при підключенні. |
type | string | Тип чат-кімнати (наприклад ticket, fast_line, group). Якщо не задано — визначається автоматично. |
instagram_room_type | string / null | Для Instagram: direct — звичайний 1:1 чат; інакше (null / comment) — кімната під тред. Працює для коментарів до поста, mentions і відповідей на Stories. |
| Параметр | Тип | Опис |
|---|
customTextToOperator | string | Технічне повідомлення лише для оператора. Підтримує плейсхолдери. |
parse_mode | boolean | true — обробити customTextToOperator як Markdown/HTML. |
| Параметр | Тип | Опис |
|---|
waiting_message | object | Локалізовані тексти очікування: ключі — коди мов (uk, en, …). Підтримує плейсхолдери в значеннях. |
waiting_message_time | number | Через скільки секунд показати waiting_message. Типово 300. |
{
"waiting_message": {
"en": "Please wait, connecting you to an operator...",
"uk": "Будь ласка, зачекайте, з'єднуємо вас з оператором..."
},
"waiting_message_time": 60
}
| Параметр | Тип | Опис |
|---|
add_return_button | boolean | Кнопка «Повернутися назад». Текст — константа return_button_text. |
alias_return_scenario | string | Alias блоку сценарію при натисканні кнопки повернення. |
add_button | boolean | Кнопка виходу з чату на повідомленнях оператора/системи. Текст — константа close_chat_button_text. |
Alias зберігаються в константи стану й спрацьовують після життєвих подій чату (не замінюють гілки success/limit/…).
| Параметр | Константа стану | Коли спрацьовує |
|---|
chat_closed_by_client_alias | alias_closed_by_client | Клієнт закрив чат кнопкою |
chat_closed_alias | alias_chat_closed | Оператор закрив чат (текст клієнту — chat_closed_by_operator) |
chat_closed_by_timeout_alias | alias_chat_closed_by_timeout | Закриття через неактивність (текст — chat_closed_by_timeout) |
connection_timeout_alias | alias_connection_timeout | Не дочекалися підключення оператора |
alias_on_operator_connected | alias_operator_connected | Оператор підключився до чату (для сценаріїв з чергою / cascade) |
alias_return_scenario | alias_return_scenario | Кнопка повернення |
| Параметр | Одиниця | Опис |
|---|
custom_timeout_time | хвилини | Таймаут неактивності саме для цього діалогу (перекриває глобальне налаштування). |
connection_timeout_time | секунди | Скільки чекати підключення оператора, перш ніж закрити діалог. |
transfer_timeout | секунди | Скільки чекати прийняття ручної передачі чату іншому оператору (типово ~120). |
| Параметр | Тип | Опис |
|---|
event_webhook_url | string | URL для подій чату в реальному часі. Див. налаштування webhook. |
fastline_operator | boolean | true — підключити Fast Line як оператора (чат у режимі очікування з AI). |
copilot_bot_id | number / string | ID ШІ-бота (Copilot) для чату. Якщо не вказано — система може підставити Copilot за пріоритетом налаштувань. У каналі copilot Copilot не підключається повторно. |
| Поведінка | Коли |
|---|
Тип group, заголовок з назви діалогу | Вхідне повідомлення з групового чату (is_group) |
Тип fast_line, статус processed | fastline_operator: true |
Повідомлення prev_step оператору | У віджеті є константа prev_step (редирект) |
| Facebook Ads first message у чаті | Увімкнений відповідний feature flag і є дані першого Ads-повідомлення |
| Instagram story-room або comment-room | Канал Instagram + відповідний тип події, якщо instagram_room_type ≠ direct |
| Параметр | Тип | Опис |
|---|
client_extra_data | object | Додаткові поля клієнта (плейсхолдери в значеннях). Можуть впливати на email/phone/ім’я. |
chatroom_extra_data | object | Додаткові поля чат-кімнати (плейсхолдери в значеннях). |
{
"client_extra_data": {
"level": "{{user_level}}",
"vip": "{{is_vip}}"
},
"chatroom_extra_data": {
"product": "{{product_name}}",
"order_id": "{{order_id}}"
}
}
{
"subject_alias": "support",
"event_webhook_url": "https://example.com/chat_events",
"auto_connect_operator": true,
"assigned_operator": "42",
"continue": false,
"add_button": true,
"add_return_button": true,
"alias_return_scenario": "return_point",
"transfer_timeout": 30,
"history_count": 5,
"history_by_phone": true,
"customTextToOperator": "Користувач має проблеми з {{{feature}}}.",
"parse_mode": false,
"chat_closed_alias": "chat_closed_flow",
"chat_closed_by_timeout_alias": "timeout_flow",
"connection_timeout_alias": "connection_lost",
"chat_closed_by_client_alias": "client_closed",
"waiting_message": {
"en": "Please wait, connecting you to an operator...",
"uk": "Будь ласка, зачекайте, з'єднуємо вас з оператором..."
},
"waiting_message_time": 60,
"connection_timeout_time": 600,
"custom_timeout_time": 20,
"chatroom_extra_data": {
"product": "{{product_name}}",
"order_id": "{{order_id}}"
},
"copilot_bot_id": "345",
"client_extra_data": {
"level": "{{user_level}}",
"vip": "{{is_vip}}"
},
"chat_title": "Support Chat - {{{user_name}}}",
"status": "queue",
"status_name": "Узято в роботу",
"weight": 50,
"tag_ids": [1, 2],
"enable_transition_on_chat_close": true
}
Тексти беруться з констант бота для поточної мови (lang_code). Повний довідник (з типовими формулюваннями): Стандартні константи бота (Operator Panel).
| Константа | Призначення |
|---|
chat_created_msg | Повідомлення при створенні діалогу |
chat_operator_connected | Оператор приєднався (додаються роль і ім’я) |
auto_connected | Текст при автопідключенні оператора (якщо немає — часто chat_created_msg) |
chat_closed_by_operator | Чат закрито оператором |
chat_closed_by_timeout | Чат закрито по таймауту |
op_role_supervisor | Назва ролі «Супервізор» |
op_role_operator | Назва ролі «Оператор» |
op_role_admin | Назва ролі «Адміністратор» |
close_chat_button_text | Текст кнопки завершення розмови |
return_button_text | Текст кнопки повернення |
close_chat_command | Команда закриття чату (якщо задана разом з add_button) |