Как бесплатно создать командного чат-бота на DialogFlow
Речь пойдет именно о кнопочном (командном) боте, а не разговорном.
Сейчас многие ассоциируют сервис DialogFlow, как платформу для написания простых диалоговых чат-ботов с ограниченным функционалом. Соответственно и вся информация по этой теме освещает вопросы построения «умных» диалогов. Но при этом DialogFlow довольно мощный ресурс, на котором можно реализовать достойного чат-бота, который не только может поддержать разговор, но и способен реагировать на команды пользователей.
Зачастую, кнопочные боты более востребованные для решения основных задач и являются оптимальными в качестве помощников для большинства компаний в бизнес среде. К тому же бота можно создать без использования платных сервисов и глубоких познаний соответствующих языков программирования.
Как начать пользоваться сервисом DialogFlow и запустить первого бота с интеграцией в один клик рассказывать не буду. Подобной информации достаточно в открытых источниках. Сразу перейду к процессу реализации кнопочного меню.
Реализовать кнопки меню можно двумя способами:
1. При помощи стандартного «ADD RESPONSES».
Возьмем любой уже созданный интент либо создадим новый. В исходящем контексте прописываем новый параметр, например, «menu».
Цифра 5 означает время жизни данного контекста. В данном случае контекст будет работать до 5-ти реакций пользователя. Это значение можно изменить на какое угодно по желанию в зависимости от задачи.
В нашем интенте находим кнопку «Add response» и выбираем «Quick Replies».
В строке «Title» указываем любой текст, который будет отправляться в чат перед выводом меню с кнопками. Это может быть, например, призыв к действию или указание на выбор пункта меню.
В строке ниже указывается непосредственно название кнопки (не более 20-и символов). Последующие кнопки просто добавляем в строках ниже. Таким образом можно добавить любое количество кнопок, которые будут располагаться в том же порядке в чате.
Для каждой кнопки создаем одноименный отдельный интент. Во входящем контексте таких интентов должен быть параметр «menu», который мы указывали в нашем основном интенте.
Контекст позволяет нам связать наши команды меню с действиями бота на эти команды.
Особенностью такого варианта добавления меню является отправка пользователем текста с названием кнопки в чат при ее нажатии. Т.е. когда пользователь нажмет кнопку «Консультация» он фактически отправит в чат текст «Консультация». Для отработки ботом этой команды необходимо добавить текстовый ответ, ссылку или картинку в интент «Консультация».
В Viber, например, это выглядит так:
Недостатком такого меню является отсутствие редиректа пользователя сразу при нажатии кнопки. Ссылку для перехода можно только отправить в чат. Также недоступны такие возможности при нажатии кнопки, как: отправка номера телефона пользователя в чат, открытия витрины с товарами и т.д. Но все это можно реализовать при помощи «Custom Payload». О чем и пойдет речь ниже.
1. При помощи «Custom Payload».
Данный способ предусматривает использование кода. Но уже готовый код можно получить в открытых ресурсах (о них речь пойдет ниже). И немного отредактировав его, можно создать крутое меню без навыков программирования. Расмотрим это способ на примере меню в мессенджере Viber.
Выбираем в интенте пункт «Custom Payload».
Перед нами открывается рабочая область , куда и будем вставлять код кнопок меню. Теперь вопрос, где же взять этот код, если не писать самому? Все очень просто. Идем на официальный сайт Viber для разработчиков (ссылка будет в конце статьи) и в Viber Api Documentation находим keyboard examples.
Здесь же приведено множество вариантов пользовательских меню с примерами кода и графической визуализацией. Заменяем текст кнопок, фон и изображения и наше уникальное меню готово всего в несколько кликов. Кнопки могут содержать ссылки для перехода на веб-ресурсы и другие командв, оторые предусматривает документация Viber.
Ниже пример такой реализации.
Антон Токарев - основатель botpol.space
Dialogflow интересный сервис в плане самостоятельного построения чат ботов. Только создать бота с функцией автоворонки не получится.
Если делать для мессенджер маркетинга и реально зантматься построением воронок продаж, то лучше использовать платные конструкторы или заказывать разработку чат бота у профессионалов.
А так спасибо за статью, было интересно!
Все верно, воронку запилить через этот сервис не получиться, если конечно не связать его с Firebase и не настроить отправку вебхуков через DialogFlow на сервер, который будет их обрабатывать и отправлять ответы. Но это все геморой и требует навыков работы с бекендом. Конечно легче создавать автоворонки на популярных агрегаторах, где на клиентской стороне все можно сделать быстро и легко.
Получается, для продвинутого пользователя со знанием кода - слишком примитивно. Для непродвинутого - слишком сложно. Либо нужно нарваться на супертолковую инструкцию, чтобы решиться что-то воплощать на таком конструкторе. У меня был опыт таких попыток на flow.xo с хорошей видеоинструкцией. Потратил тьму времени без внятного результата. Так же и с другими платформами, которые все равно после бесплатного периода включают счетчик.
У всякого конструктора есть свои ограничения и недостатки. Жалко тратить время на недоразвитые варианты. Я для себя после долгих мытарств выбрал конструктор, где обалденный функционал сочетается с простыми инструкциями. И что приятно - конструктор русский. Платный.
Бесплатные и даже платные конструкторы не идеальны. И среди них приходится выбирать лучший. Дерзайте. DialogFlow совсем не образец совершенства.
Хочу заметить, что именно открытый API DialogFlow используют многие русские, бесплатные конструкторы для распознавания текста и работы с контекстом. И абсолютно согласен, что легче и удобнее воспользоваться платным сервисом, если не хочешь разбираться в более глубоких технических вопросах. Не зря же они берут за это деньги, поэтому каждый выбирает удобный ему способ.
Спасибо за информацию про API. Учту в дальнейшем. 🖐️
Хороший и полезный материал! Спасибо!
1. Где найти именно рабочий! вариант Dialogflow + личные сообщения вконтакте?
2. Как отправить в Dialogflow фото собеседнику?
Юрий, вы путаете сервис DialogFlow с агрегаторами мессенджеров. Ни первое, ни второе в нем сделать нельзя. Все взаимодействие происходит с ботом, по ранее заданному сценарию. Если в вашем алгоритме есть отправка фото пользователю в ответ на его действие, то бот отправит это фото, ранее загруженное в респонс на DialogFlow.
А Как в Dialogflow закончить диалог с пользователем после нужной фразы?
Пообщались, дошли до нужного момента, а дальше пусть пишет а в ответ тишина.
"то бот отправит это фото, ранее загруженное в респонс на DialogFlow. " Это как можно сделать? Там вроде только код можно вписать а загружать файлы вроде нельзя.