Last Modified: 23.03.2022
A context menu allows for chatbot-to-user interaction from the message context menu.
Adding Custom Items to the Context Menu
A context menu is part of a chatbot message. To add custom menu items, you have to specify
The following methods support the Menu:
Consider the following example:
"DIALOG_ID" => 12,
"MESSAGE" => "Hello! Message with context menu!",
"MENU" => Array(
"TEXT" => "Bitrix24",
"LINK" => "http://bitrix24.com",
"TEXT" => "Echo",
"COMMAND" => "echo",
"COMMAND_PARAMS" => "test from keyboard"
"TEXT" => "Open app",
"APP_ID" => "12",
"APP_PARAMS" => "TEST"
function is used here for illustration purposes only. It is taken from the EchoBot
example; it is used. You can send a REST command with your own function, or use the BX24.callMethod
Each custom item in the context menu is defined by a set of keys:
- TEXT - specifies text for a menu item;
- LINK - specifies a hyperlink;
- COMMAND - sends command to the bot;
- COMMAND_PARAMS - specifies command parameters;
- APP_ID - specifies ID of an installed chat application.
- APP_PARAMS - parameters that will be passed over to the chat application.
- DISABLED - specifies
Y to disable the menu item.
- ACTION - action can have the following type (REST revision 28):
- PUT - enter into input field.
- SEND - send text.
- COPY - copy text to clipboard.
- CALL - call.
- DIALOG - open specified dialog.
- ACTION_VALUE - each type has its own value (REST revision 28):
- PUT - text inserted into input field.
- SEND - text to be sent.
- COPY - text copied to clipboard.
- CALL - phone number in the international format.
- DIALOG - dialog ID. Can be both user ID or chat ID in format
TEXT, LINK or COMMAND are required.
If the LINK key is not empty, the menu item is treated as an external link. If the COMMAND and COMMAND_PARAMS keys are specified, the menu item sends a command to the bot, without posting it in the chat. Available from API (platform version) revision 26
If the APP_ID and APP_PARAMS keys are specified, the menu item will open a chat application window.
If it is necessary to specify two lines with buttons in a row, then to separate them, create a button with the following content:
"TYPE" => "NEWLINE".
Command Processing on the Chatbot side
Chatbots use commands to process menu items.
- To make a command recognizable, it has to be registered using imbot.command.register method in the ONAPPINSTALL event handler.
(To make the command available only from the menu, add the
"HIDDEN" => "Y" key).
Use these keys in the menu item description to fire a command:
"COMMAND" => "page", // command to send to chatbot
"COMMAND_PARAMS" => "1", // command parameters
Menu item, when selected, generates ONIMCOMMANDADD event.
Create a new message in the event handler as a response or update an existing message (effectively creating the page navigation feature).
- The [data][COMMAND] array passed to the event handler will contain the event information. This array now contains a new COMMAND_CONTEXT key to describe the calling context:
- TEXTAREA for commands posted by user by typing in from the device keyboard;
- KEYBOARD for commands originating from the chatbot keyboard or a context menu.
Application Launch Processing for Chat
Applications for chat, launched from context menu are working based on the Context Application principles.