Кнопки и ссылки
К каждому ответу бота и к блокам ввода (ввод текста, числа, номера телефона и т. д.) можно добавить одну или несколько кнопок.
Как добавить кнопку на экран?
Чтобы добавить кнопку на экран, нажмите + КНОПКА. Введите текст, который будет написан на кнопке, и нажмите Enter.
Как связать кнопку с нужным экраном?
Вы можете связать кнопку с тем экраном, на который должен перейти бот после того, как пользователь нажмет эту кнопку. Чтобы связать кнопку с нужным экраном, нажмите на кружок на кнопке и протяните стрелку к нужному экрану.
Также можно создать новую кнопку, а затем кликнуть по ней. Новый экран появится автоматически и сразу привяжется к этой кнопке.
Сколько кнопок можно добавить на один экран?
На один экран вы можете добавить до 12 кнопок.
Как перемещать кнопки?
Чтобы переместить кнопку в границах экрана, удерживайте иконку, которая появляется слева от кнопки при наведении курсора на нее, и перетащите кнопку на нужное место. На другой экран кнопку переместить нельзя.
Как работают кнопки?
Рассмотрим такой пример:
Здесь сценарий начинается с экрана «Привет! Чем могу помочь?». На этом экране будут выведены три кнопки: «цены», «статус заказа» и «доставка». Когда пользователь нажмет кнопку «цены», бот перейдет на экран «Цены вы можете посмотреть здесь».
Когда пользователь нажимает кнопку «цены» у себя в канале, ему приходит ответ от бота «Цены вы можете посмотреть здесь». После бот продолжит реагировать согласно прописанному сценарию. В нашем случае он выведет кнопки «статус заказа» и «помощь». Когда пользователь нажмет на одну из них, бот пойдет по предусмотренному пути сценария.
В тестовом виджете это будет выглядеть так:
В канале Telegram это будет выглядеть так:
Нажатие кнопки или набор текста?
Как вы можете видеть на скриншотах выше, нажатие кнопки в диалоге выглядит так, как будто пользователь набрал слово «цены». Действительно, нажатие пользователем кнопки «цены» и ввод слова «цены» с клавиатуры являются равнозначными для бота.
Если пользователь нажимает кнопку «цены», результат получается точно такой же, как если бы пользователь написал слово «цены» самостоятельно:
Пользователь набирает точно такой же текст, который содержится в кнопке:
Поведение бота в этих двух случаях будет одинаковым.
В связи с этим удобно использовать в сочетании с кнопками блок Интенты. На самом деле, мы рекомендуем использовать блок Интенты в сочетании с кнопками, чтобы, если пользователь введет текст, не совпадающий ни с одной из кнопок, бот знал, как реагировать.
Как сочетать использование кнопок и интентов?
Для лучшего распознавания введенного пользователем текста рекомендуется совместно с кнопками всегда использовать на экранах блок Интенты. Иначе бот может отвечать Извините, непонятно в ответ на ввод того, чего нет в кнопках.
Добавьте на экран с кнопками блок Интенты.
Теперь в блок Интенты добавьте интенты с текстом, который содержится в ваших кнопках. Вы можете также использовать синтаксис шаблонов, чтобы ловить другие фразы.
На нашем экране есть кнопки «цены», «статус заказа» и «доставка», поэтому добавим эти интенты:
В дальнейшем вы можете добавить сюда другие интенты в соответствии с тем, какие фразы вы ожидаете от пользователя в тот или иной момент диалога. Например, пользователь может на этом экране написать «как вам позвонить», поэтому добавим еще и этот интент.
Теперь мы можем связать эти интенты с нужными экранами.
Таким же образом свяжите все интенты с нужными экранами.
Теперь, когда у нас есть интент «цены» и кнопка «цены», можно удалить связь от кнопки «цены». В любом случае, если есть связь от интента, по нажатию кнопки боту будет отправляться текст «цены», и интент «цены» будет отрабатывать. Таким образом, если есть связанный с чем-то интент, то связь от кнопки создавать необязательно.
И самый важный шаг!
Создадим опцию «Любая другая фраза». Этот вариант будет отрабатывать, если пользователь напишет что-то, что не попадет ни в один из интентов. Если «Любая другая фраза» ни с чем не связана, то в нашем случае, если пользователь напишет что-то другое, например «а сколько стоят ваши товары», то бот по умолчанию ответит Извините, непонятно.
Создадим экран, на который должен переводить бот в случае, если пользователь напишет что-то, что не попадает ни в один из интентов.
Это самый главный шаг, который позволит нам запретить боту попадать в «Извините, непонятно».
Типы кнопок
Кнопки в Aimylogic бывают двух типов — обычные кнопки и кнопки-ссылки.
Обычные кнопки
Обычные кнопки используются, когда нужно «научить» бота реагировать каким-то определенным образом на нажатие кнопки. Например, обычную кнопку можно связать с другим экраном, чтобы по нажатию на эту кнопку бот переходил на другой экран.
У обычных кнопок нет никаких параметров кроме названия кнопки.
Если у вас на одном экране присутствуют интент и кнопка с одинаковым текстом, то можно не привязывать кнопку к другому экрану. Когда пользователь нажмет на кнопку, то бот отреагирует на это так же, как если бы пользователь просто напечатал фразу.
Также, если у вас есть идентичные друг другу интент и кнопка, то вы можете назначить разную реакцию на них, просто привязав кнопку и интент к разным экранам:
Тогда при нажатии кнопки будет выполняться одно действие (в соответствии со связью кнопки), а по набору слова с клавиатуры будет выполняться действие в соответствии со связью интента.
Ограничения каналов
- Канал Битрикс24 не поддерживает кнопки.
- Канал WhatsApp Business (прямое подключение) позволяет добавить только 3 кнопки на один экран, а максимальное количество символов в каждой кнопке — 20.
- Канал WhatsApp Business (через i‑Digital) также имеет ряд ограничений.
Кнопки-ссылки
Кнопку-ссылку нельзя связать с экраном. Нельзя сделать так, чтобы по нажатию кнопки-ссылки бот переходил на другой экран. Но в кнопку-ссылку можно добавить URL любого ресурса в интернете. При клике на такую кнопку-ссылку у пользователя откроется страница в браузере.
Чтобы добавить кнопку-ссылку, нажмите + КНОПКА, введите текст кнопки, нажмите Enter. Затем нажмите на значок ссылки, вставьте ссылку на ресурс в интернете и нажмите Сохранить.
Обратите внимание, что в URL можно использовать переменные таким же образом, как, например, в блоке Текст. Таким образом бот может генерировать ссылки на лету, подставляя в них значения нужных переменных.
Добавление хотя бы одной кнопки-ссылки в канале Telegram превратит все кнопки в инлайн-кнопки.
Инлайн-кнопки
Инлайн-кнопки — это кнопки, которые отображаются под текстом бота, а не под полем ввода.
Инлайн-кнопки не являются третьим видом кнопок в Aimylogic. Они являются особым типом кнопок в каналах Telegram, WhatsApp Business и Viber.
Вот как инлайн-кнопки будут работать в канале Telegram:
Как записать значение кнопки в переменную?
Чтобы запомнить выбор пользователя, используйте переменную $queryText
: