Как бесплатно создать командного чат-бота на DialogFlow

Речь пойдет именно о кнопочном (командном) боте, а не разговорном.

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

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

Как начать пользоваться сервисом DialogFlow и запустить первого бота с интеграцией в один клик рассказывать не буду. Подобной информации достаточно в открытых источниках. Сразу перейду к процессу реализации кнопочного меню.

Реализовать кнопки меню можно двумя способами:

1. При помощи стандартного «ADD RESPONSES».

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

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Цифра 5 означает время жизни данного контекста. В данном случае контекст будет работать до 5-ти реакций пользователя. Это значение можно изменить на какое угодно по желанию в зависимости от задачи.

В нашем интенте находим кнопку «Add response» и выбираем «Quick Replies».

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

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

В строке ниже указывается непосредственно название кнопки (не более 20-и символов). Последующие кнопки просто добавляем в строках ниже. Таким образом можно добавить любое количество кнопок, которые будут располагаться в том же порядке в чате.

Для каждой кнопки создаем одноименный отдельный интент. Во входящем контексте таких интентов должен быть параметр «menu», который мы указывали в нашем основном интенте.

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Контекст позволяет нам связать наши команды меню с действиями бота на эти команды.

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

В Viber, например, это выглядит так:

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Недостатком такого меню является отсутствие редиректа пользователя сразу при нажатии кнопки. Ссылку для перехода можно только отправить в чат. Также недоступны такие возможности при нажатии кнопки, как: отправка номера телефона пользователя в чат, открытия витрины с товарами и т.д. Но все это можно реализовать при помощи «Custom Payload». О чем и пойдет речь ниже.

1. При помощи «Custom Payload».

Данный способ предусматривает использование кода. Но уже готовый код можно получить в открытых ресурсах (о них речь пойдет ниже). И немного отредактировав его, можно создать крутое меню без навыков программирования. Расмотрим это способ на примере меню в мессенджере Viber.

Выбираем в интенте пункт «Custom Payload».

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Перед нами открывается рабочая область , куда и будем вставлять код кнопок меню. Теперь вопрос, где же взять этот код, если не писать самому? Все очень просто. Идем на официальный сайт Viber для разработчиков (ссылка будет в конце статьи) и в Viber Api Documentation находим keyboard examples.

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

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

Ниже пример такой реализации.

​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев
​чат-бот на dialogflow Антон Токарев

Антон Токарев - основатель botpol.space

33
10 комментариев

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

А так спасибо за статью, было интересно!

Ответить

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

1
Ответить

Получается, для продвинутого пользователя со знанием кода - слишком примитивно. Для непродвинутого - слишком сложно. Либо нужно нарваться на супертолковую инструкцию, чтобы решиться что-то воплощать на таком конструкторе. У меня был опыт таких попыток на flow.xo с хорошей видеоинструкцией. Потратил тьму времени без внятного результата. Так же и с другими платформами, которые все равно после бесплатного периода включают счетчик. 
У всякого конструктора есть свои ограничения и недостатки. Жалко тратить время на недоразвитые варианты. Я для себя после долгих мытарств выбрал конструктор, где обалденный функционал сочетается с простыми инструкциями. И что приятно - конструктор русский. Платный.
Бесплатные и даже платные конструкторы не идеальны. И среди них приходится выбирать лучший. Дерзайте. DialogFlow совсем не образец совершенства.

Ответить

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

Ответить

Хороший и полезный материал! Спасибо!

Ответить

1. Где найти именно рабочий! вариант Dialogflow + личные сообщения вконтакте?
2. Как отправить в Dialogflow фото собеседнику?

Ответить

Юрий, вы путаете сервис DialogFlow с агрегаторами мессенджеров. Ни первое, ни второе в нем сделать нельзя. Все взаимодействие происходит с ботом, по ранее заданному сценарию. Если в вашем алгоритме есть отправка фото пользователю в ответ на его действие, то бот отправит это фото, ранее загруженное в респонс на DialogFlow. 

Ответить