| check_language |
action_check_language |
Checks whether a dialog language is selected for the current user. |
{} |
defined, not_defined |
| set_language |
action_set_language |
Sets the user's selected language using the code from the lang_code constant. |
{} |
success, error |
| get_language |
action_get_language |
Returns the user's selected language code or the error branch. |
{} |
error |
| get_channel |
action_get_channel |
Returns the name of the channel the user is communicating through. |
{} |
— |
| validate |
action_validate |
Validates user input or constants by type or regex pattern. |
[ { "type": "email" }, { "constant": "user_phone", "type": "phone" }, { "constan… |
success, error |
| test_list |
action_test_list |
Generates a test list of 7 items for checking lists in a scenario. |
{} |
— |
| generate_list |
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 |
action_get_command |
Processes a messenger command (/command) or deeplink and returns its name. |
{} |
no_command |
| get_user_input |
action_get_user_input |
Reads text, files, and bot mentions from the current user message. |
{} |
bot_mentioned, raw_input, no_input |
| send_request |
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 |
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 |
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 |
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 |
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 |
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 |
action_set |
Sets or changes dialog constants: values, expressions, methods on objects. |
{ "price": "100", "quantity": "2", "total": "{{price}}*{{quantity}}", "greeting"… |
default |
| set_current_date |
action_set_current_date |
Saves the current date and time to a dialog constant. |
{ "set_to": "registration_date" } |
default |
| menu_slider |
action_menu_slider |
Builds a slider / pagination structure for a multi-page menu. |
{ "cycle": true } |
— |
| send_photo |
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 |
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 |
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 |
action_send_email |
Sends an HTML email via SMTP with attachments and constant collection. |
{ "subject": "New registration", "to": "[email protected]", "html": "Data:<br><br… |
success |
| loop_start |
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 |
action_loop_end |
Checks whether the loop is finished or the next iteration is needed. |
{} |
success, error |
| check_schedule |
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 |
action_send_sticker |
Sends a sticker in the current channel by channel identifier. |
{ "telegram_sticker": "CAACAgIAAxkBAAIBY2...", "viber_sticker": "12345" } |
— |
| clear_constant |
action_clear_constant |
Clears constants and related context by key prefixes. |
{ "module_name": "payment,order,cart" } |
success |
| goto_alias |
action_goto_alias |
Jumps to a scenario node by its alias. |
{ "alias": "{{selected_section}}" } |
— |
| add_to_cart |
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 |
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 |
action_sleep |
Pauses the scenario for a given number of seconds with a typing indicator. |
{ "delay": 3 } |
success |
| scan_barcode |
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 |
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 |
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 |
action_custom_modules_list |
Returns unique values of a custom module field for lists and dropdowns. |
{ "total": 0, "value": null, "list": [] } |
— |
| existing_chatroom |
action_existing_chatroom |
Checks whether the user has an active Operator Panel chat room. |
{} |
exists |
| close_chatroom |
action_close_chatroom |
Closes an Operator Panel chat room from the scenario. |
{ "chat_room_id": "123" } |
success, no_chatroom_id |
| create_message |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
action_fastline_transcribe |
Transcribes a voice message to text (Fast Line). |
{ "set_to": "transcribed_voice" } |
success, no_audio, error |
| fl_transfer_to_skill_group |
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 |
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 |
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 |
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 |
action_card_pay_block_scenario |
Marks payment as active and blocks the scenario until payment confirmation. |
{} |
success |
| card_pay |
action_card_pay |
Builds a card payment page URL and stores it in the payment_url constant. |
{} |
success, error |
| apple_google_pay |
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 |
action_verify_online_payment |
Verifies an online payment result by the code in the request state. |
{} |
success, error |
| tickets_create |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
action_tickets_clear_input |
Clears subject custom-field constants after ticket creation or cancellation. |
{ "subject_alias": "support" } |
success, error |
| tickets_create_wrapped |
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 |
action_tickets_list |
Returns a filtered and paginated ticket list into constants. |
{ "filters": { "resolved": false, "assignee_id": "{{operator_id}}" }, "search_by… |
success, error |