---
title: "Дія operator_panel__connect_to_operator_with_msg"
description: "Довідник параметрів, констант і подій дії Підключення до оператора (action_operator_panel__connect_to_operator_with_msg)."
---

# Дія `operator_panel__connect_to_operator_with_msg`

Створює чат у **Operator Panel** і підключає клієнта до оператора. Параметри задаються в JSON-конфігурації ноди (або у полях Node Inspector). Усі параметри опціональні, якщо не зазначено інше.

> **System ID:** `action_operator_panel__connect_to_operator_with_msg`  
> У сценарії також: `operator_panel__connect_to_operator_with_msg`

Концепція ноди в Scenario Builder: [Живий оператор у діалозі](/uk/scenariobuilder/explanation/connect-to-operator-node.md).  
Короткий рядок у каталозі: [Довідник actions — Operator Panel](/uk/actionjail/reference/actions-reference.md#operator-panel-4).

---

## Події (гілки сценарію)

Після виконання 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**. |

```json
{
  "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

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` | хвилини | Таймаут неактивності саме для цього діалогу (перекриває глобальне налаштування `chat_room_timeout`). |
| `connection_timeout_time` | **хвилини** | Скільки чекати підключення оператора, перш ніж закрити діалог. Має бути **меншим** за `custom_timeout_time`, інакше діалог закриється по неактивності і `connection_timeout_alias` не спрацює. |
| `transfer_timeout` | секунди | Скільки чекати прийняття ручної передачі чату іншому оператору (типово ~120). |

---

## Інтеграція та ШІ

| Параметр | Тип | Опис |
|----------|-----|------|
| `event_webhook_url` | string | URL для подій чату в реальному часі. Див. [налаштування webhook](/uk/integrations/how-to/webhook/configure-operator-panel-webhook.md). |
| `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 | Додаткові поля чат-кімнати (плейсхолдери в значеннях). |

```json
{
  "client_extra_data": {
    "level": "{{user_level}}",
    "vip": "{{is_vip}}"
  },
  "chatroom_extra_data": {
    "product": "{{product_name}}",
    "order_id": "{{order_id}}"
  }
}
```

---

## Приклад повної конфігурації

```json
{
  "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": 5,
  "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)](/uk/actionjail/reference/operator-panel-bot-constants.md).

| Константа | Призначення |
|-----------|-------------|
| `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`) |

---

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

- [Довідник actions](/uk/actionjail/reference/actions-reference.md)
- [Живий оператор у діалозі](/uk/scenariobuilder/explanation/connect-to-operator-node.md)
- [Підключення чату з оператором](/uk/operatorline/explanation/connect-chat-to-operator.md)
- [Автоматичне підключення вільного оператора](/uk/operatorline/explanation/auto-connect-free-operator.md)
- [Webhook операторської панелі](/uk/integrations/how-to/webhook/configure-operator-panel-webhook.md)
- [Стандартні (вбудовані) actions](/uk/scenariobuilder/reference/standard-built-in-actions.md)
