К каждому ответу бота, а также к блокам ввода (ввод текста, числа, номера телефона и тд) можно добавить одну или несколько кнопок.
Обратите внимание, что Открытые линии Bitrix24 и WhatsApp не поддерживают кнопки. Так что в бота, который будет работать в этих каналах, кнопки добавить не получится.
Как добавить кнопку на экран?
Чтобы добавить кнопку на экран, нажмите + КНОПКА. Введите текст кнопки и нажмите Enter.

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

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

Сколько кнопок можно добавить на один экран?
На один экран вы можете добавить до восьми кнопок:

Если вам нужно добавить больше 8 кнопок, то можете посмотреть эту инструкцию.
Как перемещать кнопки?
Кнопки можно менять местами на одном экране, просто перетащив их, удерживая за иконку слева от каждой кнопки.
Кнопки можно перемещать только в рамках одного экрана. Нельзя перетащить кнопку на другой экран.

Как работают кнопки?
Рассмотрим такой пример:

Здесь сценарий начинается с экрана "Привет! Чем могу помочь?". На этом экране будут выведены три кнопки - "цены", "статус заказа" и "доставка". Когда пользователь нажмёт кнопку "цены", бот перейдёт на экран "Цены вы можете посмотреть здесь...". Иначе говоря, после того как пользователь нажмёт кнопку "цены", бот скажет "Цены вы можете посмотреть здесь", и далее бот будет реагировать согласно реакциям (интентам, кнопкам), которые есть на экране "Цены вы можете посмотреть здесь...". В нашем случае будут выведены кнопки "статус заказа" и "помощь", и бот после нажатия этих кнопок бот будет реагировать согласно связям этих кнопок.
В тестовом виджете это будет выглядеть так:

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

Нажатие кнопки vs набор текста
Как вы можете видеть на скриншотах выше, в диалоге это выглядит так, как будто пользователь набрал слово "цены". Действительно, для бота нет никакой разницы, нажимает пользователь кнопку "цены" или пользователь набирает текстом с клавиатуры "цены".
Если пользователь нажимает кнопку:

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

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

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

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

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

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

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

Это самый главный шаг, который позволит нам запретить боту выпадать в "Извините, непонятно".
Типы кнопок
Кнопки в Aimylogic бывают двух типов - обычные кнопки и кнопки-ссылки.
Обычные кнопки
Мы уже рассмотрели эти кнопки выше. Этот тип кнопок используется, когда нужно "научить" бота реагировать каким-то определенным образом на нажатие кнопки, например, переводить на определённый экран. У обычных кнопок нет никаких параметров, кроме названия кнопки. Обычную кнопку можно связать с другим экраном, чтобы по нажатию этой кнопки бот переходил на другой экран.
Если у вас на том же экране, где добавлена кнопка, есть блок Интенты, и один из интентов содержит (и полностью соответствует) текст одной из кнопок, то вы можете не привязывать кнопку к другому экрану. Когда пользователь нажмет на кнопку, то бот отреагирует на это так же, как если бы пользователь просто напечатал фразу.
Также, если у вас есть идентичные друг другу интент и кнопка, то вы можете назначить разную реакцию на них, просто привязав кнопку и интент к разным экранам. Тогда при нажатии кнопки будет выполняться одно действие (в соответствии со связью кнопки), а по набору слова с клавиатуры будет выполняться действие в соответствии со связью интента.
Кнопки-ссылки
Кнопку-ссылку нельзя связать с экраном. Нельзя сделать так, чтобы по нажатию кнопки-ссылки бот переходил на другой экран. Но в кнопку-ссылку можно добавить url любого ресурса в Интернете. При клике на такую кнопку-ссылку у пользователя откроется страница в браузере.
В канале ВК кнопки-ссылки не работают. Также, кнопки-ссылки, естественно, не будут отображаться в тех каналах, которые вообще не поддерживают кнопки (Открытые линии Bitrix24 и WhatsApp).
Чтобы добавить кнопку-ссылку, нажмите + КНОПКА, введите текст кнопки, нажмите Enter. Затем нажмите на значок ссылки, вставьте ссылку на ресурс в интернете и нажмите Сохранить.

Обратите внимание, что автоматически открывать страницы в браузере бот не может ни в одном канале. Пользователь должен обязательно нажать на кнопку-ссылку.
Добавление хотя бы одной кнопки-ссылки в канале Telegram превратит все кнопки в inline-кнопки.
Вот как это будет работать в канале Telegram:

Обратите внимание, что в URL можно использовать_ переменные таким же образом, как, например, в блоке Текст. _Таким образом бот может генерировать ссылки на лету, подставляя в них значения нужных переменных.
Inline-кнопки
Inline-кнопки - это кнопки, которые отображаются под текстом бота, а не под полем ввода. Inline-кнопки можно сделать только в канале Telegram. Подробнее о том, как добавлять Inline-кнопки, читайте здесь.
Как записать значение кнопки в переменную?
Вы можете записать значение всех кнопок в переменную, чтобы позднее понять, что именно выбрал пользователь:

Обратите внимание, что Открытые линии Bitrix24 и WhatsApp не поддерживают кнопки. Так что в бота, который будет работать в этих каналах, кнопки добавить не получится.
Как добавить кнопку на экран?
Чтобы добавить кнопку на экран, нажмите + КНОПКА. Введите текст кнопки и нажмите Enter.

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

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

Сколько кнопок можно добавить на один экран?
На один экран вы можете добавить до восьми кнопок:

Если вам нужно добавить больше 8 кнопок, то можете посмотреть эту инструкцию.
Как перемещать кнопки?
Кнопки можно менять местами на одном экране, просто перетащив их, удерживая за иконку слева от каждой кнопки.
Кнопки можно перемещать только в рамках одного экрана. Нельзя перетащить кнопку на другой экран.

Как работают кнопки?
Рассмотрим такой пример:

Здесь сценарий начинается с экрана "Привет! Чем могу помочь?". На этом экране будут выведены три кнопки - "цены", "статус заказа" и "доставка". Когда пользователь нажмёт кнопку "цены", бот перейдёт на экран "Цены вы можете посмотреть здесь...". Иначе говоря, после того как пользователь нажмёт кнопку "цены", бот скажет "Цены вы можете посмотреть здесь", и далее бот будет реагировать согласно реакциям (интентам, кнопкам), которые есть на экране "Цены вы можете посмотреть здесь...". В нашем случае будут выведены кнопки "статус заказа" и "помощь", и бот после нажатия этих кнопок бот будет реагировать согласно связям этих кнопок.
В тестовом виджете это будет выглядеть так:

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

Нажатие кнопки vs набор текста
Как вы можете видеть на скриншотах выше, в диалоге это выглядит так, как будто пользователь набрал слово "цены". Действительно, для бота нет никакой разницы, нажимает пользователь кнопку "цены" или пользователь набирает текстом с клавиатуры "цены".
Если пользователь нажимает кнопку:

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

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

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

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

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

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

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

Это самый главный шаг, который позволит нам запретить боту выпадать в "Извините, непонятно".
Типы кнопок
Кнопки в Aimylogic бывают двух типов - обычные кнопки и кнопки-ссылки.
Обычные кнопки
Мы уже рассмотрели эти кнопки выше. Этот тип кнопок используется, когда нужно "научить" бота реагировать каким-то определенным образом на нажатие кнопки, например, переводить на определённый экран. У обычных кнопок нет никаких параметров, кроме названия кнопки. Обычную кнопку можно связать с другим экраном, чтобы по нажатию этой кнопки бот переходил на другой экран.
Если у вас на том же экране, где добавлена кнопка, есть блок Интенты, и один из интентов содержит (и полностью соответствует) текст одной из кнопок, то вы можете не привязывать кнопку к другому экрану. Когда пользователь нажмет на кнопку, то бот отреагирует на это так же, как если бы пользователь просто напечатал фразу.
Также, если у вас есть идентичные друг другу интент и кнопка, то вы можете назначить разную реакцию на них, просто привязав кнопку и интент к разным экранам. Тогда при нажатии кнопки будет выполняться одно действие (в соответствии со связью кнопки), а по набору слова с клавиатуры будет выполняться действие в соответствии со связью интента.
Кнопки-ссылки
Кнопку-ссылку нельзя связать с экраном. Нельзя сделать так, чтобы по нажатию кнопки-ссылки бот переходил на другой экран. Но в кнопку-ссылку можно добавить url любого ресурса в Интернете. При клике на такую кнопку-ссылку у пользователя откроется страница в браузере.
В канале ВК кнопки-ссылки не работают. Также, кнопки-ссылки, естественно, не будут отображаться в тех каналах, которые вообще не поддерживают кнопки (Открытые линии Bitrix24 и WhatsApp).
Чтобы добавить кнопку-ссылку, нажмите + КНОПКА, введите текст кнопки, нажмите Enter. Затем нажмите на значок ссылки, вставьте ссылку на ресурс в интернете и нажмите Сохранить.

Обратите внимание, что автоматически открывать страницы в браузере бот не может ни в одном канале. Пользователь должен обязательно нажать на кнопку-ссылку.
Добавление хотя бы одной кнопки-ссылки в канале Telegram превратит все кнопки в inline-кнопки.
Вот как это будет работать в канале Telegram:

Обратите внимание, что в URL можно использовать_ переменные таким же образом, как, например, в блоке Текст. _Таким образом бот может генерировать ссылки на лету, подставляя в них значения нужных переменных.
Inline-кнопки
Inline-кнопки - это кнопки, которые отображаются под текстом бота, а не под полем ввода. Inline-кнопки можно сделать только в канале Telegram. Подробнее о том, как добавлять Inline-кнопки, читайте здесь.
Как записать значение кнопки в переменную?
Вы можете записать значение всех кнопок в переменную, чтобы позднее понять, что именно выбрал пользователь:

Опубликован в: 17 / 09 / 2018