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

Кнопки и ссылки

К каждому ответу бота и к блокам ввода (ввод текста, числа, номера телефона и т. д.) можно добавить одну или несколько кнопок.

Как добавить кнопку на экран?

Чтобы добавить кнопку на экран, нажмите + КНОПКА. Введите текст, который будет написан на кнопке, и нажмите Enter.

Как связать кнопку с нужным экраном?

Вы можете связать кнопку с тем экраном, на который должен перейти бот после того, как пользователь нажмет эту кнопку. Чтобы связать кнопку с нужным экраном, нажмите на кружок на кнопке и протяните стрелку к нужному экрану.

Также можно создать новую кнопку, а затем кликнуть по ней. Новый экран появится автоматически и сразу привяжется к этой кнопке.

Сколько кнопок можно добавить на один экран?

На один экран вы можете добавить до 12 кнопок.

Как перемещать кнопки?

Чтобы переместить кнопку в границах экрана, удерживайте иконку, которая появляется слева от кнопки при наведении курсора на нее, и перетащите кнопку на нужное место. На другой экран кнопку переместить нельзя.

Как работают кнопки?

Рассмотрим такой пример:

Здесь сценарий начинается с экрана «Привет! Чем могу помочь?». На этом экране будут выведены три кнопки: «цены», «статус заказа» и «доставка». Когда пользователь нажмет кнопку «цены», бот перейдет на экран «Цены вы можете посмотреть здесь».

Когда пользователь нажимает кнопку «цены» у себя в канале, ему приходит ответ от бота «Цены вы можете посмотреть здесь». После бот продолжит реагировать согласно прописанному сценарию. В нашем случае он выведет кнопки «статус заказа» и «помощь». Когда пользователь нажмет на одну из них, бот пойдет по предусмотренному пути сценария.

В тестовом виджете это будет выглядеть так:

В канале Telegram это будет выглядеть так:

Нажатие кнопки или набор текста?

Как вы можете видеть на скриншотах выше, нажатие кнопки в диалоге выглядит так, как будто пользователь набрал слово «цены». Действительно, нажатие пользователем кнопки «цены» и ввод слова «цены» с клавиатуры являются равнозначными для бота.

Если пользователь нажимает кнопку «цены», результат получается точно такой же, как если бы пользователь написал слово «цены» самостоятельно:

Пользователь набирает точно такой же текст, который содержится в кнопке:

Поведение бота в этих двух случаях будет одинаковым.

В связи с этим удобно использовать в сочетании с кнопками блок Интенты. На самом деле, мы рекомендуем использовать блок Интенты в сочетании с кнопками, чтобы, если пользователь введет текст, не совпадающий ни с одной из кнопок, бот знал, как реагировать.

Как сочетать использование кнопок и интентов?

Для лучшего распознавания введенного пользователем текста рекомендуется совместно с кнопками всегда использовать на экранах блок Интенты. Иначе бот может отвечать Извините, непонятно в ответ на ввод того, чего нет в кнопках.

Добавьте на экран с кнопками блок Интенты.

Теперь в блок Интенты добавьте интенты с текстом, который содержится в ваших кнопках. Вы можете также использовать синтаксис шаблонов, чтобы ловить другие фразы.

На нашем экране есть кнопки «цены», «статус заказа» и «доставка», поэтому добавим эти интенты:

В дальнейшем вы можете добавить сюда другие интенты в соответствии с тем, какие фразы вы ожидаете от пользователя в тот или иной момент диалога. Например, пользователь может на этом экране написать «как вам позвонить», поэтому добавим еще и этот интент.

Теперь мы можем связать эти интенты с нужными экранами.

Таким же образом свяжите все интенты с нужными экранами.

Теперь, когда у нас есть интент «цены» и кнопка «цены», можно удалить связь от кнопки «цены». В любом случае, если есть связь от интента, по нажатию кнопки боту будет отправляться текст «цены», и интент «цены» будет отрабатывать. Таким образом, если есть связанный с чем-то интент, то связь от кнопки создавать необязательно.

И самый важный шаг!

Создадим опцию «Любая другая фраза». Этот вариант будет отрабатывать, если пользователь напишет что-то, что не попадет ни в один из интентов. Если «Любая другая фраза» ни с чем не связана, то в нашем случае, если пользователь напишет что-то другое, например «а сколько стоят ваши товары», то бот по умолчанию ответит Извините, непонятно.

Создадим экран, на который должен переводить бот в случае, если пользователь напишет что-то, что не попадает ни в один из интентов.

Это самый главный шаг, который позволит нам запретить боту попадать в «Извините, непонятно».

Типы кнопок

Кнопки в Aimylogic бывают двух типов — обычные кнопки и кнопки-ссылки.

Обычные кнопки

Обычные кнопки используются, когда нужно «научить» бота реагировать каким-то определенным образом на нажатие кнопки. Например, обычную кнопку можно связать с другим экраном, чтобы по нажатию на эту кнопку бот переходил на другой экран.

У обычных кнопок нет никаких параметров кроме названия кнопки.

Если у вас на одном экране присутствуют интент и кнопка с одинаковым текстом, то можно не привязывать кнопку к другому экрану. Когда пользователь нажмет на кнопку, то бот отреагирует на это так же, как если бы пользователь просто напечатал фразу.

Также, если у вас есть идентичные друг другу интент и кнопка, то вы можете назначить разную реакцию на них, просто привязав кнопку и интент к разным экранам:

Тогда при нажатии кнопки будет выполняться одно действие (в соответствии со связью кнопки), а по набору слова с клавиатуры будет выполняться действие в соответствии со связью интента.

Ограничения каналов

Кнопку-ссылку нельзя связать с экраном. Нельзя сделать так, чтобы по нажатию кнопки-ссылки бот переходил на другой экран. Но в кнопку-ссылку можно добавить URL любого ресурса в интернете. При клике на такую кнопку-ссылку у пользователя откроется страница в браузере.

предупреждение
В каналах ВКонтакте, Webim (External Bot API 2.0) и Jivo кнопки-ссылки не работают. Также кнопки-ссылки не будут отображаться в тех каналах, которые вообще не поддерживают кнопки.

Чтобы добавить кнопку-ссылку, нажмите + КНОПКА, введите текст кнопки, нажмите Enter. Затем нажмите на значок ссылки, вставьте ссылку на ресурс в интернете и нажмите Сохранить.

предупреждение
Автоматически открывать страницы в браузере бот не может ни в одном канале. Пользователь должен обязательно нажать на кнопку-ссылку.

Обратите внимание, что в URL можно использовать переменные таким же образом, как, например, в блоке Текст. Таким образом бот может генерировать ссылки на лету, подставляя в них значения нужных переменных.

Добавление хотя бы одной кнопки-ссылки в канале Telegram превратит все кнопки в инлайн-кнопки.

Инлайн-кнопки

Инлайн-кнопки — это кнопки, которые отображаются под текстом бота, а не под полем ввода.

Инлайн-кнопки не являются третьим видом кнопок в Aimylogic. Они являются особым типом кнопок в каналах Telegram, WhatsApp Business и Viber.

Вот как инлайн-кнопки будут работать в канале Telegram:

Как записать значение кнопки в переменную?

Чтобы запомнить выбор пользователя, используйте переменную $queryText: