Buttons in messages
Buttons are used to let clients select a response option directly within a message. Sending messages with buttons is available in the following services:
- Scenario Dialogs
- Quick Replies
- Scenario Chatbots
- Internal messengers (Bitrix24, amoCRM, YCLIENTS, Altegio, and other CRM systems)
Some communication channels do not support buttons, so they will not appear in messages.
The table below shows which messengers and social networks support button sending.
Supports buttons
- Official WhatsApp Business API
- Telegram Bot
- Viber Bot
Does not support buttons
- WhatsApp Web
How to add buttons to a message
Enter the button name inside triple curly braces.
Example: {{{Decline Button}}}
Follow these rules:
Do not send buttons together with a file
For messages with the “file” type, buttons are displayed as plain text.
Start the message with text
Messages consisting only of buttons will not be sent.
Button length limits
- WABA / WACA — up to 20 characters; maximum 40 buttons
- Telegram Bot (classic) — up to 140 characters; maximum 40 buttons per message
- Telegram Bot (inline) — up to approximately 18,880 characters (limit may vary depending on formatting); maximum 40 buttons per message
- Viber Bot — up to 250 characters; maximum 40 buttons per message
Sending button messages through different communication channels
Add a button to the message following the instructions above. Sending conditions vary depending on the channel.
Buttons can be displayed either in a row or in a column, depending on how they are written in the message text.
Row format: Buttons are displayed on one line.
To use this format, add spaces between buttons.
Example:{{{Button 1}}} {{{Button 2}}} {{{Button 3}}}
Column format: Buttons are displayed one below another.
To use this format, remove spaces between buttons or insert line breaks.
Examples:
{{{Button 1}}}{{{Button 2}}}
{{{Button 1}}}{{{Button 2}}}
Maximum: 40 buttons per message.
A maximum of 3 buttons is allowed per message.
If the limit is exceeded, the message is split automatically.
Notes:
- Buttons can be duplicated through bots or CRM automation
- Due to app updates, button functionality may occasionally be unstable
ё
Additional button types
These buttons appear directly inside the chat window as part of the message.
Used for:
- selecting a response option without typing
- opening a link
- simplifying interaction with a bot or scenario
Features
- Displayed directly in the message
- Supported in Telegram Bot and VKontakte
- Can contain text or a link
- Do not require manual text input
Adding an inline button
Add the marker {{{inline}}} to the message text.
Specify the message text and buttons inside triple curly braces:
Choose an option:{{{inline}}} {{{test1}}} {{{test}}} {{{tetet}}}{{{test2}}} {{{434434}}}{{{test3}}} {{{rrrrr}}}
You can also add links to inline buttons:
{{{Button 1 url=https://www.google.com}}}{{{Button 2 url=https://help.chatapp.online}}}
Specify the required URL after url=.
The Contact Request button allows you to request the user’s phone number.
Available only for: Telegram Bot
To add the button:
Specify the button text with the requestContact parameter.
Example:Please share your phone number {{{Share Phone Number requestContact}}}
After clicking the button, the user sends their contact details.
Scenario Dialogs receives an incoming message containing:
- Contact full name
- Phone number
The phone number is automatically saved to the chat.phone field.
The received number can be used:
- in the Bot Builder via the
chat.phonefield - for transferring data to external systems
Important:
The number is shared only with the user’s consent. It cannot be obtained automatically (Telegram Bot API and MAX Bot API limitation).
Additional details
- The phone number is linked to the user’s chat
- In Bitrix24, the number is transferred to the ChatApp open line
- The number is saved to the CRM contact if:
- the previous conversation is completed
- a new chat has started
Buttons can be added in any message-sending block.
Workflow:
- Send a message with buttons
- Wait for the client’s response
- Check the selected option
- Route the scenario to the corresponding branch