Creates a chat in Operator Panel and connects the client to an operator. Parameters are set in the node JSON configuration (or in Node Inspector fields). All parameters are optional unless stated otherwise.
System ID: action_operator_panel__connect_to_operator_with_msg
In the scenario also: operator_panel__connect_to_operator_with_msg
Node concept in Scenario Builder: Live operator in a dialog.
Short catalog entry: Actions reference — Operator Panel.
After execution the action returns one of the branches. Connect each to the following nodes.
| Event | When it occurs |
|---|
| success | Chat created (typical success when the node has no separate queue / connected branches) |
| connected | Operator already connected / chat in processed status — only if the node has a connected exit |
| queue | Chat in queue or waiting mode (continue, status: "queue") — only if the node has a queue exit |
| banned | User is under an active ban; the client may receive the ban reason text |
| limit | auto_connect_operator is enabled, but no free operator was found |
| error | Failed to create the chat or another failure |
If the node has no queue / connected exits, a successful result always goes to success (even when the chat is actually in the queue).
The add_button / add_return_button buttons are chat UI, not scenario events (branches).
| Parameter | Type | Description |
|---|
subject_alias | string | Subject alias. Supports placeholders ({{...}}). The subject must exist and not be deleted. |
auto_connect_operator | boolean | true — before creating the chat, checks for free operators by the subject skill group (respecting dialog limits). If none — limit event, chat is not created. false or absent — chat is created without auto-assignment. |
assigned_operator | string / number | Operator ID (op_user). Works only together with auto_connect_operator: true. Supports placeholders. |
continue | boolean | true — the client can continue the scenario while waiting (wait state); branch is usually success (or queue, if present). |
status | string | Initial internal chat status: new, processed, queue, closed. Do not change without a clear need. |
status_name | string | Custom chat status (if such a status does not exist — it will not be set). Supports placeholders. |
chat_title | string | Chat title in the operator panel. Supports placeholders, e.g. "Support Chat - {{{user_name}}}". |
weight | number | Dialog weight (priority). If not set — subject weight is used. |
tag_ids | array | Tag IDs for the chat. Supports placeholders in array items; non-existent IDs are ignored. |
history_by_phone | boolean | Look up client history by phone number (even from other channels / chat_id). |
history_count | number | How many of the client's last bot steps to pass to the operator. 0 or absent — do not send history. |
enable_transition_on_chat_close | boolean | If disabled — on chat close, the alias transition is not performed. |
process_bot_id | number | Bot ID whose processes can be used on connect. |
type | string | Chat room type (e.g. ticket, fast_line, group). If not set — determined automatically. |
instagram_room_type | string / null | For Instagram: direct — regular 1:1 chat; otherwise (null / comment) — room for a thread. Works for post comments, mentions, and Story replies. |
| Parameter | Type | Description |
|---|
customTextToOperator | string | Technical message for the operator only. Supports placeholders. |
parse_mode | boolean | true — process customTextToOperator as Markdown/HTML. |
| Parameter | Type | Description |
|---|
waiting_message | object | Localized waiting texts: keys are language codes (uk, en, …). Supports placeholders in values. |
waiting_message_time | number | After how many seconds to show waiting_message. Default 300. |
{
"waiting_message": {
"en": "Please wait, connecting you to an operator...",
"uk": "Будь ласка, зачекайте, з'єднуємо вас з оператором..."
},
"waiting_message_time": 60
}
| Parameter | Type | Description |
|---|
add_return_button | boolean | “Go back” button. Text — constant return_button_text. |
alias_return_scenario | string | Scenario block alias when the return button is pressed. |
add_button | boolean | Exit-chat button on operator/system messages. Text — constant close_chat_button_text. |
Aliases are stored in state constants and fire after chat lifecycle events (they do not replace success/limit/… branches).
| Parameter | State constant | When it fires |
|---|
chat_closed_by_client_alias | alias_closed_by_client | Client closed the chat with the button |
chat_closed_alias | alias_chat_closed | Operator closed the chat (client text — chat_closed_by_operator) |
chat_closed_by_timeout_alias | alias_chat_closed_by_timeout | Closed due to inactivity (text — chat_closed_by_timeout) |
connection_timeout_alias | alias_connection_timeout | Operator connection was not awaited in time |
alias_on_operator_connected | alias_operator_connected | Operator connected to the chat (for queue / cascade scenarios) |
alias_return_scenario | alias_return_scenario | Return button |
| Parameter | Unit | Description |
|---|
custom_timeout_time | minutes | Inactivity timeout for this dialog only (overrides the global setting). |
connection_timeout_time | seconds | How long to wait for operator connection before closing the dialog. |
transfer_timeout | seconds | How long to wait for a manual transfer to another operator to be accepted (default ~120). |
| Parameter | Type | Description |
|---|
event_webhook_url | string | URL for real-time chat events. See webhook setup. |
fastline_operator | boolean | true — connect Fast Line as the operator (chat in waiting mode with AI). |
copilot_bot_id | number / string | AI bot (Copilot) ID for the chat. If not set — the system may assign Copilot by settings priority. In the copilot channel, Copilot is not connected again. |
| Behavior | When |
|---|
Type group, title from dialog name | Incoming message from a group chat (is_group) |
Type fast_line, status processed | fastline_operator: true |
prev_step message to the operator | Widget has constant prev_step (redirect) |
| Facebook Ads first message in the chat | Matching feature flag enabled and first Ads message data present |
| Instagram story-room or comment-room | Instagram channel + matching event type, if instagram_room_type ≠ direct |
| Parameter | Type | Description |
|---|
client_extra_data | object | Extra client fields (placeholders in values). May affect email/phone/name. |
chatroom_extra_data | object | Extra chat room fields (placeholders in values). |
{
"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
}
Texts are taken from bot constants for the current language (lang_code). Full reference (with default wording): Standard bot constants (Operator Panel).
| Constant | Purpose |
|---|
chat_created_msg | Message when the dialog is created |
chat_operator_connected | Operator joined (role and name are appended) |
auto_connected | Text on operator auto-connect (if missing — often chat_created_msg) |
chat_closed_by_operator | Chat closed by operator |
chat_closed_by_timeout | Chat closed by timeout |
op_role_supervisor | Role name “Supervisor” |
op_role_operator | Role name “Operator” |
op_role_admin | Role name “Administrator” |
close_chat_button_text | End-conversation button text |
return_button_text | Return button text |
close_chat_command | Chat close command (if set together with add_button) |