# Actions Reference

Complete reference for all standard actions in ConnectiveOne. Actions are functions that run during a bot scenario.

## What are actions?

**Actions** are functions called when the bot reaches an **Action** node. Parameters come from the node configuration; the result (event) determines the next scenario branch.

**Total number of standard actions:** 98

Detailed pages (parameters, events, examples) are in the [actions/](./actions/) subdirectory. The tables below are a short overview; each action name links to its detailed article.

Also: [Standard bot constants (Operator Panel)](/en/actionjail/reference/operator-panel-bot-constants.md).

## Types of actions

- **Standard actions** — built into the platform, available to all bots
- **Custom actions** — via the Action Jail module for project-specific tasks

> More details: [Action Jail](/en/actionjail/operator-hub.md), [creating actions](/en/actionjail/how-to/admin-manage-actions.md), [testing](/en/actionjail/how-to/admin-manage-actions.md#testing-actions).

## Usage in scenarios

- **Scenario Builder** (recommended) — [guide](/en/scenariobuilder/how-to/use-action-in-scenario.md)
- **Scenario Dialog (Legacy)** — [guide](/en/scenariodialog/how-to/use-action-in-scenario.md), [explanation](/en/scenariodialog/explanation/actions-in-scenarios.md)

---

## Standard actions by groups

### Action Jail (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [log](/en/actionjail/reference/actions/log.md) | `action_log` | Writes a message to the server console for scenario debugging. | `{}` | — |

### Api (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [api__callnode](/en/actionjail/reference/actions/api__callnode.md) | `action_api__callnode` | Calls a node (connector) in another bot via the internal API. | `{ "bot_id": "12345", "connector_alias": "welcome_message", "chat_id": "{{chat_id…` | `ok`, `not_ok` |

### Autobroadcast (2)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [autobroadcast__create](/en/actionjail/reference/actions/autobroadcast__create.md) | `action_autobroadcast__create` | Creates a scheduled auto-broadcast for the current user. | `{ "template_id": 123, "alias": "follow_up", "one_time": true, "send_after": "3 d…` | `success` |
| [autobroadcast__remove](/en/actionjail/reference/actions/autobroadcast__remove.md) | `action_autobroadcast__remove` | Removes scheduled auto-broadcasts for the current user. | `{ "template_id": 123, "alias": "weekly_newsletter" }` | `success` |

### Broadcast (3)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [broadcast__subscribe](/en/actionjail/reference/actions/broadcast__subscribe.md) | `action_broadcast__subscribe` | Subscribes the current user to a broadcast topic. | `{ "topic_id": "newsletter", "template_id": 123, "time": "09:00" }` | `success`, `error` |
| [broadcast__unsubscribe](/en/actionjail/reference/actions/broadcast__unsubscribe.md) | `action_broadcast__unsubscribe` | Unsubscribes the current user from a broadcast topic or from all topics. | `{ "topic_id": "newsletter" }` | `success`, `error` |
| [broadcast__subscribed](/en/actionjail/reference/actions/broadcast__subscribed.md) | `action_broadcast__subscribed` | Checks whether the current user is subscribed to a broadcast topic. | `{ "topic_id": "newsletter" }` | `success`, `error` |

### Core Actions (63)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [check_language](/en/actionjail/reference/actions/check_language.md) | `action_check_language` | Checks whether a dialog language is selected for the current user. | `{}` | `defined`, `not_defined` |
| [set_language](/en/actionjail/reference/actions/set_language.md) | `action_set_language` | Sets the user's selected language using the code from the lang_code constant. | `{}` | `success`, `error` |
| [get_language](/en/actionjail/reference/actions/get_language.md) | `action_get_language` | Returns the user's selected language code or the error branch. | `{}` | `error` |
| [get_channel](/en/actionjail/reference/actions/get_channel.md) | `action_get_channel` | Returns the name of the channel the user is communicating through. | `{}` | — |
| [validate](/en/actionjail/reference/actions/validate.md) | `action_validate` | Validates user input or constants by type or regex pattern. | `[ { "type": "email" }, { "constant": "user_phone", "type": "phone" }, { "constan…` | `success`, `error` |
| [test_list](/en/actionjail/reference/actions/test_list.md) | `action_test_list` | Generates a test list of 7 items for checking lists in a scenario. | `{}` | `—` |
| [generate_list](/en/actionjail/reference/actions/generate_list.md) | `action_generate_list` | Builds a UI list from an array in constants and stores it in another constant. | `{ "list": "products.list", "output": "formatted_products", "mapping": { "text": …` | `—` |
| [get_command](/en/actionjail/reference/actions/get_command.md) | `action_get_command` | Processes a messenger command (/command) or deeplink and returns its name. | `{}` | `no_command` |
| [get_user_input](/en/actionjail/reference/actions/get_user_input.md) | `action_get_user_input` | Reads text, files, and bot mentions from the current user message. | `{}` | `bot_mentioned`, `raw_input`, `no_input` |
| [send_request](/en/actionjail/reference/actions/send_request.md) | `action_send_request` | Sends an HTTP request to an external system with optional authentication. | `{ "url": "https://api.example.com/endpoint", "method": "POST", "data": { "key": …` | `ok`, `not_ok` |
| [create_hash](/en/actionjail/reference/actions/create_hash.md) | `action_create_hash` | Creates a cryptographic hash from a constant value and a secret key. | `{ "key_in_const": "user_id", "secret_key": "my_secret_key_123", "algorithm": "sh…` | `success`, `error` |
| [send_me](/en/actionjail/reference/actions/send_me.md) | `action_send_me` | Sends an HTTP request with automatic chat_id and channel. | `{ "url": "https://example.com/webhook", "method": "POST", "data": { "event": "us…` | `ok`, `not_ok` |
| [call_node](/en/actionjail/reference/actions/call_node.md) | `action_call_node` | Asynchronously calls a node (connector) in the current bot without waiting for a response. | `{ "alias": "send_notification", "data": { "order_id": "{{order_id}}", "user_name…` | — |
| [if_else](/en/actionjail/reference/actions/if_else.md) | `action_if_else` | Conditional scenario branching by expressions with AND/OR support and constant assignment. | `{ "if": { "{{total}}>3": "gt3", "set": { "doubled": "(({{total}}*2))" } }, "else…` | `(name from config)`, `default` |
| [switch](/en/actionjail/reference/actions/switch.md) | `action_switch` | Multi-branch routing: the first true condition returns its event name. | `{ "low": "{{score}} < 50", "medium": "({{score}} >= 50)*({{score}} < 80)", "high…` | `(key from config)`, `error` |
| [set](/en/actionjail/reference/actions/set.md) | `action_set` | Sets or changes dialog constants: values, expressions, methods on objects. | `{ "price": "100", "quantity": "2", "total": "{{price}}*{{quantity}}", "greeting"…` | `default` |
| [set_current_date](/en/actionjail/reference/actions/set_current_date.md) | `action_set_current_date` | Saves the current date and time to a dialog constant. | `{ "set_to": "registration_date" }` | `default` |
| [menu_slider](/en/actionjail/reference/actions/menu_slider.md) | `action_menu_slider` | Builds a slider / pagination structure for a multi-page menu. | `{ "cycle": true }` | `—` |
| [send_photo](/en/actionjail/reference/actions/send_photo.md) | `action_send_photo` | Sends photos to the user by URL or from an array in a constant. | `{ "product": "https://example.com/images/product.jpg", "detail": "{{photo_url}}"…` | — |
| [send_video](/en/actionjail/reference/actions/send_video.md) | `action_send_video` | Sends videos to the user by URL with a typing indicator. | `{ "tutorial": "https://example.com/videos/tutorial.mp4", "demo": "{{video_url}}"…` | — |
| [send_file](/en/actionjail/reference/actions/send_file.md) | `action_send_file` | Sends files to the user by URL through the current channel. | `{ "invoice": "https://example.com/invoices/invoice_123.pdf", "receipt": "{{file_…` | — |
| [send_email](/en/actionjail/reference/actions/send_email.md) | `action_send_email` | Sends an HTML email via SMTP with attachments and constant collection. | `{ "subject": "New registration", "to": "admin@example.com", "html": "Data:<br><br…` | `success` |
| [loop_start](/en/actionjail/reference/actions/loop_start.md) | `action_loop_start` | Starts a loop over an array: the current item is available in the loop_data constant. | `{ "constant": "photos" }` | `success`, `error` |
| [loop_end](/en/actionjail/reference/actions/loop_end.md) | `action_loop_end` | Checks whether the loop is finished or the next iteration is needed. | `{}` | `success`, `error` |
| [check_schedule](/en/actionjail/reference/actions/check_schedule.md) | `action_check_schedule` | Checks whether the current time is within working hours (including weekends and timezone). | `{ "morning_time": 9, "evening_time": 18, "weekends": [0, 6], "timezone": "Europe…` | `success`, `error` |
| [send_sticker](/en/actionjail/reference/actions/send_sticker.md) | `action_send_sticker` | Sends a sticker in the current channel by channel identifier. | `{ "telegram_sticker": "CAACAgIAAxkBAAIBY2...", "viber_sticker": "12345" }` | — |
| [clear_constant](/en/actionjail/reference/actions/clear_constant.md) | `action_clear_constant` | Clears constants and related context by key prefixes. | `{ "module_name": "payment,order,cart" }` | `success` |
| [goto_alias](/en/actionjail/reference/actions/goto_alias.md) | `action_goto_alias` | Jumps to a scenario node by its alias. | `{ "alias": "{{selected_section}}" }` | `—` |
| [add_to_cart](/en/actionjail/reference/actions/add_to_cart.md) | `action_add_to_cart` | Adds an item to the cart in dialog constants and updates totals. | `{ "item_model": "product.model", "item_id": "product.id", "price": "product.pric…` | `success`, `error` |
| [remove_from_cart](/en/actionjail/reference/actions/remove_from_cart.md) | `action_remove_from_cart` | Removes an item from the cart by model and ID and recalculates totals. | `{ "item_model": "product.model", "item_id": "product.id", "save_to": "cart" }` | `success`, `error` |
| [sleep](/en/actionjail/reference/actions/sleep.md) | `action_sleep` | Pauses the scenario for a given number of seconds with a typing indicator. | `{ "delay": 3 }` | `success` |
| [scan_barcode](/en/actionjail/reference/actions/scan_barcode.md) | `action_scan_barcode` | Recognizes a barcode on an image by URL and saves the value to a constant. | `{ "source_url": "{{product_image_url}}", "type": "ean13", "set_to": "scanned_bar…` | `recognized`, `not_recognized` |
| [scan_qr](/en/actionjail/reference/actions/scan_qr.md) | `action_scan_qr` | Recognizes a QR code on an image by URL and saves the data to a constant. | `{ "source_url": "{{uploaded_image_url}}", "set_to": "scanned_qrcode" }` | `recognized`, `not_recognized`, `error` |
| [generate_barcode](/en/actionjail/reference/actions/generate_barcode.md) | `action_generate_barcode` | Generates a barcode or QR code image from text and stores the URL in a constant. | `{ "code": "{{order_id}}", "type": "code128", "height": 10, "scale": 3, "includet…` | `generated`, `generation_error` |
| [custom_modules_list](/en/actionjail/reference/actions/custom_modules_list.md) | `action_custom_modules_list` | Returns unique values of a custom module field for lists and dropdowns. | `{ "total": 0, "value": null, "list": [] }` | `—` |
| [existing_chatroom](/en/actionjail/reference/actions/existing_chatroom.md) | `action_existing_chatroom` | Checks whether the user has an active Operator Panel chat room. | `{}` | `exists` |
| [close_chatroom](/en/actionjail/reference/actions/close_chatroom.md) | `action_close_chatroom` | Closes an Operator Panel chat room from the scenario. | `{ "chat_room_id": "123" }` | `success`, `no_chatroom_id` |
| [create_message](/en/actionjail/reference/actions/create_message.md) | `action_create_message` | Creates a text or file message in an Operator Panel chat room. | `{ "id": "{{chat_room_id}}", "message": "Hello, I need help with my order", "mess…` | `success`, `error` |
| [get_client_by_chat_room_id](/en/actionjail/reference/actions/get_client_by_chat_room_id.md) | `action_get_client_by_chat_room_id` | Loads chat room client data into scenario constants. | `{ "chat_room_id": "{{chat_room_id}}" }` | `success`, `error` |
| [get_chat_room_messages](/en/actionjail/reference/actions/get_chat_room_messages.md) | `action_get_chat_room_messages` | Gets chat room messages with pagination and stores them in constants. | `{ "filters": { "chat_room_id": "{{chat_room_id}}" }, "pagination": { "page_size"…` | `success`, `error` |
| [fastline_completion](/en/actionjail/reference/actions/fastline_completion.md) | `action_fastline_completion` | Generates text via AI without searching the Fast Line knowledge base. | `{ "prompt": "Write a short welcome message for {{user_name}}", "save_response": …` | `error` |
| [fastline](/en/actionjail/reference/actions/fastline.md) | `action_fastline` | Searches the Fast Line knowledge base and generates an AI response. | `{ "user_input": "{{user_question}}", "prompt": "Answer based on the context:\n{{…` | `success`, `not_found`, `error` |
| [fastline_search](/en/actionjail/reference/actions/fastline_search.md) | `action_fastline_search` | Searches the Fast Line knowledge base without generating an AI response. | `{ "user_input": "{{user_question}}", "category": "support", "max_distance": 0.3,…` | `success`, `error` |
| [fastline_summarize](/en/actionjail/reference/actions/fastline_summarize.md) | `action_fastline_summarize` | Generates an AI summary of a chat room dialog history (Fast Line). | `{ "prompt": "Briefly summarize the conversation for the next operator: main issu…` | `success`, `no_prompt`, `chat_room_not_found`, `chat_user_not_found`, `no_dialog_logs`, `no_meaningful_content`, `error` |
| [fastline_transcribe](/en/actionjail/reference/actions/fastline_transcribe.md) | `action_fastline_transcribe` | Transcribes a voice message to text (Fast Line). | `{ "set_to": "transcribed_voice" }` | `success`, `no_audio`, `error` |
| [fl_transfer_to_skill_group](/en/actionjail/reference/actions/fl_transfer_to_skill_group.md) | `action_fl_transfer_to_skill_group` | Transfers a chat from Fast Line to an operators skill group. | `{ "skill_group_alias": "support_team" }` | `success`, `queue`, `error`, `no_fastline_operator`, `no_skill_group`, `operator_already_connected` |
| [fl_transfer_to_operator](/en/actionjail/reference/actions/fl_transfer_to_operator.md) | `action_fl_transfer_to_operator` | Transfers a chat from Fast Line to a specific operator. | `{ "operator_id": "{{operator_id}}" }` | `success`, `error`, `no_fastline_operator`, `no_operator`, `limit` |
| [fastline_pro](/en/actionjail/reference/actions/fastline_pro.md) | `action_fastline_pro` | Sends a request to a Fast Line Pro agent and stores the response in a constant. | `{ "agent_name": "customer_support", "user_input": "{{user_question}}", "conversa…` | `error` |
| [meta_type](/en/actionjail/reference/actions/meta_type.md) | `action_meta_type` | Detects the Meta (Facebook/Instagram) interaction type: comment, Stories, or direct. | `{}` | `post_comment`, `story_comment`, `direct`, `not_meta` |
| [card_pay_block_scenario](/en/actionjail/reference/actions/card_pay_block_scenario.md) | `action_card_pay_block_scenario` | Marks payment as active and blocks the scenario until payment confirmation. | `{}` | `success` |
| [card_pay](/en/actionjail/reference/actions/card_pay.md) | `action_card_pay` | Builds a card payment page URL and stores it in the payment_url constant. | `{}` | `success`, `error` |
| [apple_google_pay](/en/actionjail/reference/actions/apple_google_pay.md) | `action_apple_google_pay` | Sends an Apple Pay / Google Pay request in Viber via LiqPay. | `{ "description": "Order #12345", "product_name": "Premium Subscription" }` | `success`, `error` |
| [verify_online_payment](/en/actionjail/reference/actions/verify_online_payment.md) | `action_verify_online_payment` | Verifies an online payment result by the code in the request state. | `{}` | `success`, `error` |
| [tickets_create](/en/actionjail/reference/actions/tickets_create.md) | `action_tickets_create` | Creates a ticket: collects custom fields, connects to an operator, and saves the ticket. | `{ "subject_alias": "support", "auto_assignee": true, "ticket_description": "{{us…` | `success`, `banned`, `limit`, `error`, `select_custom_field`, `required_custom_field`, `optional_custom_field` |
| [tickets_create_v2](/en/actionjail/reference/actions/tickets_create_v2.md) | `action_tickets_create_v2` | Creates a ticket (improved version): custom fields, queue, connect to operator. | `{ "subject_alias": "support", "auto_assignee": true, "type": "ticket" }` | `success`, `banned`, `limit`, `error`, `select_custom_field`, `required_custom_field`, `optional_custom_field` |
| [chatroom_update](/en/actionjail/reference/actions/chatroom_update.md) | `action_chatroom_update` | Updates the operator chat room user status and resets the internal status to new. | `{ "chat_room_id": "{{chat_room_id}}", "status_name": "awaiting_review" }` | `success`, `error` |
| [tickets_update](/en/actionjail/reference/actions/tickets_update.md) | `action_tickets_update` | Updates an existing ticket: assignment, priority, status, fields, watchers, resolved. | `{ "assignee_id": "{{operator_id}}", "status_name": "In Progress", "status": "pro…` | `success`, `error` |
| [get_ticket_info](/en/actionjail/reference/actions/get_ticket_info.md) | `action_get_ticket_info` | Loads ticket data by ID and stores it in the ticket constant. | `{ "ticket_id": "{{selected_ticket_id}}" }` | `success`, `error` |
| [my_chatrooms_list](/en/actionjail/reference/actions/my_chatrooms_list.md) | `action_my_chatrooms_list` | Returns the list of the current client's active chat rooms in the chat_rooms_list constant. | `{}` | `no_chat_rooms` |
| [return_to_chatroom](/en/actionjail/reference/actions/return_to_chatroom.md) | `action_return_to_chatroom` | Returns the user to a previously active (not closed) operator chat room. | `{ "alias_return_scenario": "main_menu" }` | `error` |
| [tickets_clear_input](/en/actionjail/reference/actions/tickets_clear_input.md) | `action_tickets_clear_input` | Clears subject custom-field constants after ticket creation or cancellation. | `{ "subject_alias": "support" }` | `success`, `error` |
| [tickets_create_wrapped](/en/actionjail/reference/actions/tickets_create_wrapped.md) | `action_tickets_create_wrapped` | Creates a ticket on behalf of a user by phone number (wrapper over tickets_create). | `{ "subject_alias": "support" }` | `success`, `banned`, `limit`, `error`, `select_custom_field`, `required_custom_field`, `optional_custom_field` |
| [tickets_list](/en/actionjail/reference/actions/tickets_list.md) | `action_tickets_list` | Returns a filtered and paginated ticket list into constants. | `{ "filters": { "resolved": false, "assignee_id": "{{operator_id}}" }, "search_by…` | `success`, `error` |

### Custom Modules (4)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [custom_modules__set](/en/actionjail/reference/actions/custom_modules__set.md) | `action_custom_modules__set` | Creates a custom module record and stores it in a constant. | `{ "module_name": "customer", "fields": { "first_name": "John", "last_name": "Doe…` | `success`, `error` |
| [custom_modules__update](/en/actionjail/reference/actions/custom_modules__update.md) | `action_custom_modules__update` | Updates an existing custom module record by ID. | `{ "module_name": "order", "fields": { "id": "{{order_id}}", "status": "completed…` | `success`, `error` |
| [custom_modules__get](/en/actionjail/reference/actions/custom_modules__get.md) | `action_custom_modules__get` | Finds a custom module record by filters and stores it in a constant. | `{ "module_name": "order", "filters": { "status": "pending", "user_id": "{{user_i…` | `success`, `error` |
| [custom_modules__export](/en/actionjail/reference/actions/custom_modules__export.md) | `action_custom_modules__export` | Exports custom module records to a file (CSV/JSON) and stores the URL. | `{ "module_name": "products", "format": "csv", "filename": "products_export", "se…` | `success`, `error` |

### Esputnik (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [esputnik__push_contact](/en/actionjail/reference/actions/esputnik__push_contact.md) | `action_esputnik__push_contact` | Sends the current chat contact to eSputnik (sync for email marketing). | `{}` | `success` |

### Files (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [files__get](/en/actionjail/reference/actions/files__get.md) | `action_files__get` | Gets the current user’s files from the file manager into the files constant. | `{ "name": "invoice.pdf" }` | `success`, `error` |

### Interval (4)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [interval__end](/en/actionjail/reference/actions/interval__end.md) | `action_interval__end` | Stops the inactivity timer for the current scenario section. | `{}` | — |
| [interval__end_all](/en/actionjail/reference/actions/interval__end_all.md) | `action_interval__end_all` | Stops all inactivity timers for the current user across all sections. | `{}` | `success`, `error` |
| [interval__start](/en/actionjail/reference/actions/interval__start.md) | `action_interval__start` | Starts an inactivity timer with routing by minutes of waiting. | `{ "type": "inactive", "tick": 30, "end": 15 }` | `error` |
| [interval__last](/en/actionjail/reference/actions/interval__last.md) | `action_interval__last` | Returns the user to the scenario position before the inactivity timer fired. | `{}` | — |

### Language (2)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [language__set](/en/actionjail/reference/actions/language__set.md) | `action_language__set` | Sets the user's selected language by the code from the lang_code constant. | `{}` | `success`, `error` |
| [language__get](/en/actionjail/reference/actions/language__get.md) | `action_language__get` | Returns the user's selected language code or the error branch. | `{}` | `error` |

### Loop (2)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [loop__start](/en/actionjail/reference/actions/loop__start.md) | `action_loop__start` | Starts a loop over an array: the current item is available in the loop_data constant. | `{ "constant": "photos" }` | `success`, `error` |
| [loop__end](/en/actionjail/reference/actions/loop__end.md) | `action_loop__end` | Checks whether the loop is finished or the next iteration is needed. | `{}` | `success`, `error` |

### Operator Panel (4)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [operator_panel__connect_to_operator_with_msg](/en/actionjail/reference/actions/operator_panel__connect_to_operator_with_msg.md) | `action_operator_panel__connect_to_operator_with_msg` | Parameter, constant, and event reference for Connect to operator (action_operator_panel__connect_to_operator_with_msg). | `{ "waiting_message": { "en": "Please wait, connecting you to an operator...", "u…` | `success`, `connected`, `queue`, `banned`, `limit`, `error` |
| [operator_panel__clear_data](/en/actionjail/reference/actions/operator_panel__clear_data.md) | `action_operator_panel__clear_data` | Clears all user constants in the current dialog state. | `{}` | — |
| [operator_panel__nps_confirm_answer](/en/actionjail/reference/actions/operator_panel__nps_confirm_answer.md) | `action_operator_panel__nps_confirm_answer` | Saves NPS survey answers from user constants. | `{}` | `success`, `error` |
| [operator_panel__get_last_dialog](/en/actionjail/reference/actions/operator_panel__get_last_dialog.md) | `action_operator_panel__get_last_dialog` | Gets messages and participants of the last Operator Panel chat room. | `{ "format": "json", "set_to": "dialog_history" }` | `success`, `error` |

### Registered Users (3)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [registered_users__check_phone](/en/actionjail/reference/actions/registered_users__check_phone.md) | `action_registered_users__check_phone` | Validates and normalizes a phone number for user registration. | `{}` | `success`, `error` |
| [registered_users__set](/en/actionjail/reference/actions/registered_users__set.md) | `action_registered_users__set` | Creates or updates a registered user from constant data. | `{ "check_by_phone": true, "active": 1, "anonym": 0 }` | `success` |
| [registered_users__get](/en/actionjail/reference/actions/registered_users__get.md) | `action_registered_users__get` | Finds a registered user and loads data into constants. | `{ "check_by_phone": true }` | `success`, `error` |

### Schedule (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [schedule__check](/en/actionjail/reference/actions/schedule__check.md) | `action_schedule__check` | Checks whether the current time is within working hours (including weekends and timezone). | `{ "morning_time": 9, "evening_time": 18, "weekends": [0, 6], "timezone": "Europe…` | `success`, `error` |

### Statistic (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [statistic__set](/en/actionjail/reference/actions/statistic__set.md) | `action_statistic__set` | Stores an NPS or quality score after a closed operator dialog. | `{ "type": "nps" }` | `success`, `error` |

### Subscription (3)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [subscription__set](/en/actionjail/reference/actions/subscription__set.md) | `action_subscription__set` | Subscribes the current user to a broadcast topic. | `{ "topic_id": "newsletter", "template_id": 123, "time": "09:00" }` | `success`, `error` |
| [subscription__remove](/en/actionjail/reference/actions/subscription__remove.md) | `action_subscription__remove` | Unsubscribes the user from one or all broadcast topics. | `{ "topic_id": "news" }` | `success`, `error` |
| [subscription__check](/en/actionjail/reference/actions/subscription__check.md) | `action_subscription__check` | Checks whether the user is subscribed to a broadcast topic. | `{ "topic_id": "news" }` | `success`, `error` |

### Testing (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [testing__search](/en/actionjail/reference/actions/testing__search.md) | `action_testing__search` | Checks whether the current chat_id is in a given list (for tests). | `{ "chat_id": [123456789, 987654321] }` | `success`, `error` |

### Widget (1)

| Name | System ID | Description | Configuration | Returns |
|-------|-----------|-------------|----------------|---------|
| [widget__callout](/en/actionjail/reference/actions/widget__callout.md) | `action_widget__callout` | Sends a callout message to the widget (text and extra parameters). | `{ "text": "Payment received!", "type": "info", "duration": 5000 }` | `ok`, `not_ok` |

---

## Notes

- **Configuration** — shortened JSON example; full field list is on the action page
- **Returns** — short event (branch) names; details are on the action page
- Some actions do not return a named branch (silent) or return a dynamic value (language code, channel, AI text)

## Related materials

- [Standard bot constants (Operator Panel)](/en/actionjail/reference/operator-panel-bot-constants.md)
- [Action Jail](/en/actionjail/operator-hub.md)
- [Create a custom action](/en/actionjail/how-to/admin-manage-actions.md)
- [Use an action in Scenario Builder](/en/scenariobuilder/how-to/use-action-in-scenario.md)
- [Use an action in Scenario Dialog](/en/scenariodialog/how-to/use-action-in-scenario.md)
- [What are actions](/en/scenariodialog/explanation/actions-in-scenarios.md)
