Перейти к основному содержимому

buttons

Чтобы вывести кнопки в чате, используйте тип ответа buttons.

подсказка
Вы также можете использовать DSL-тег buttons или метод $reactions.buttons. Кнопки, созданные этими способами, имеют расширенную функциональность: можно задавать переходы в другие стейты, а также передавать различные объекты, например, для запроса локации или номера пользователя.

Свойства

Ответы с типом buttons принимают свойство buttons — массив объектов, описывающих кнопки. Каждый объект содержит строковое свойство text — текст кнопки.

Синтаксис

{
"type": "buttons",
"buttons": [
{"text": "Кнопка 1"},
{"text": "Кнопка 2"}
]
}

Особенности использования

  • При нажатии на кнопку в чат будет отправлен текст кнопки.
  • Если вы добавляете несколько кнопок, то они будут расположены на одной строке.

Ограничения на каналы

Не поддерживается в следующих каналах:

  • edna WhatsApp 2.0.
  • Telegram: в чат-ботах для бизнес-аккаунтов.
  • Vonage.
  • Битрикс24.
  • Одноклассники.
  • Телефонный канал.
предупреждение
Некоторые каналы имеют ограничения на кнопки, например, их максимальное количество в одном сообщении. Обратитесь к статье Возможности и ограничения каналов, чтобы подробнее ознакомиться с этими ограничениями.

Использование в сценарии

state: Question
a: Какой у вас вопрос?
script:
$response.replies = $response.replies || [];
$response.replies.push({
"type": "buttons",
"buttons": [
{"text": "Вопрос по продукту"},
{"text": "Вопрос по заказу"},
{"text": "Техподдержка"}
]
});

state: ContactSupport
q: * Техподдержка *
a: Минуточку… Перевожу на оператора технической поддержки.
script:
$response.replies = $response.replies || [];
$response.replies.push({
"type": "switch",
"firstMessage": $jsapi.chatHistory(),
"closeChatPhrases": ["/closeLiveChat", "Закрыть диалог"]
});