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

Бот может уточнить у клиента все необходимые детали, касающиеся заказа, собрать контактные данные, а затем отправить всю полученную информацию одним сообщением менеджеру в вк.

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

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

Итак, как отправить информацию о новом заказе личным сообщением в вк?

Для начала, создадим сценарий, который будет собирать все необходимые данные у клиента.

Начнем с определения канала. Это может быть полезно, если ваш сценарий будет опубликован на нескольких каналах.

Добавьте блок "Условия" и пропишите в нём:

$channelType == "vk"



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

Создайте связь от else и напишите:

Данный сценарий следует тестировать в вк. Пожалуйста, подключите канал вк и беседуйте с ботом в вк.



Оставим это сообщение на случай, если вы забудете, где нужно тестировать бота.

Подключите канал ВК.



Подключите канал. В процессе подключения скопируйте токен в блокнот. Он понадобится нам позже.

Воспользуйтесь этой инструкцией для подключения канала ВК.

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

Также, после внесения изменений в сценарий, не забывайте нажать "Опубликовать" и дождаться публикации в канал.



Добавим глобальный $TEXT

Так как у вк есть особенности, связанные со стартом диалога с ботом, добавим глобальный блок интентов с переменной $TEXT, чтобы бот отвечал на любое первое сообщение:





При дополнении сценария, следите, чтобы ветка "Любая другая фраза" была связана с каким-то экраном, либо в интентах присутствовал $TEXT. Иначе ввод, не попавший в имеющиеся интенты, будет попадать в глобальный $TEXT и переводить на стартовый экран.

Добавим экран приветствия

Свяжите вариант условий $channelType == "vk" с блоком Текст:

Здравствуйте, $rawRequest.user_info.first_name!
Я помогу вам оставить заявку на оказание наших услуг.
С ценами и акциями вы можете ознакомиться по данной ссылке: (ссылка)




Здесь вытаскиваем имя из профиля вк с помощью переменной $rawRequest.

Добавьте на экран приветствия блок "Переход":



Уточним вид услуги

Свяжем Переход с блоком Ввод текста:

Какой вид услуги вам требуется? Пожалуйста, опишите одним сообщением.

Имя переменной:

service



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

Запросим комментарий

Свяжите Переход после ввода $service с ещё одним блоком Ввод текста:

Если у вас есть какие-либо дополнительные комментарии или пожелания, пожалуйста, оставьте их сейчас одним сообщением.

Имя переменной

comment



Запросим телефон

Свяжите Переход после ввода $comment с блоком Текст:

Укажите, пожалуйста, ваш телефон для связи.



Добавьте сюда готовый интент Телефон.



Свяжите вариант Любая другая фраза с блоком Текст:

Пожалуйста, напишите российский мобильный телефон в формате +79111112233.



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



Оформим сообщение

От интента "Телефон" сделайте связь с блоком Условие.

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

В условие нужно скопировать и вставить следующее:

$text = "Получен новый заказ!" + "\n" + "Ссылка на профиль клиента: " + "https://vk.com/id" + $rawRequest.object.user_id + "\n" + "Телефон: " + $PHONE + "\n" + "Вид услуги: " + $service + "\n" + "Комментарий: " + $comment, $num = _.random(1, 9223372036854775808)



Что это означает?

1) Мы создаём переменную $text, в которую помещаем перечисленные элементы. Здесь мы используем сложение строк (строка это название типа данных в языке программирования Javascript). То есть, мы складываем значения переменных, которые мы получили в ходе сценария, с текстом, который будет пояснять их значение. Также, используем $rawRequest.object.user_id, которая будет содержать значение id страницы пользователя. И добавим переносы строк с помощью знака \n.

2) После присвоения переменной $text значения, мы ставим запятую, пробел и создаем переменную $num. Ей присваиваем случайное значение от 1 до 9223372036854775808 с помощью метода _.random. Данный параметр нужен для идентификации сообщения при отправке в вк.

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

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

Бот не может отправить сообщение пользователю, если пользователь до этого ничего не писал боту. Поэтому, чтобы менеджер мог получать сообщение, нужно написать сообществу хотя бы одно любое сообщение.



Оформим HTTP-запрос

От условия создайте связь с блоком HTTP-запрос.



метод POST

в BODY скопируйте и вставьте:

{
"response": 484045
}




Вкладки RESPONSE и HEADERS заполнять не нужно.

Составим url запроса. Он может выглядеть примерно так:

https://api.vk.com/method/messages.send?user_ids=123456789&random_id=${num}&message=${text}&access_token=dfgyui4567cvfghj34567fghjk567gfh546yuersbdwy5muej654hg&v=5.101

Разберем его по частям.

messages.send - это метод API VK, который отправляет сообщение. Вам не нужно это менять.

user_ids= после этого должно быть значение ID страницы вк.

Если вы хотите отправить информацию о заказе вашему менеджеру вк, то откройте страницу менеджера, откройте любую фотографию на странице (например, аватарку), и в пути страницы найдите цифровое значение, которое идёт после слова photo. Это значение и нужно вставить после user_ids=
Например, user_ids=123456789

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

Если менеджер никогда не писал сообщений сообществу, в котором опубликован бот, то сообщение не придет. Бот не может написать сообщение, если ещё нет диалога с данным пользователем.

random_id - необходимый параметр для отправки сообщения в вк. В качестве случайного числа мы указываем значение переменной $num. Для этого пишем random_id=${num}

message - это сам текст сообщения. Здесь мы указываем содержание переменной $text. Мы создали её ранее в блоке Условие. Чтобы вытащить её значение, пишем message=${text}

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



v=5.101 - это версия протокола API vk на сентябрь 2019 года. Актуальную версию протокола вы можете посмотреть здесь.

После оформления HTTP-запроса, сохраните блок. Затем, соедините вариант "Завершен успешно" с сообщением:

Спасибо, ваша заявка отправлена! В ближайшее время с вами свяжется менеджер.



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

Вариант "Завершен с ошибкой" соедините с сообщением:

Что-то пошло не так. Ошибка $httpStatus.
Не страшно! Менеджер читает диалоги с ботом, так что мы свяжемся с вами.




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

Вот и всё, готово. Теперь клиент может пообщаться с ботом, оставить свои контакты. А менеджер получит сообщение с данными клиента.

Напишите в сообщения вашему сообществу в вк и проверьте данный сценарий.
Была ли эта статья полезна?
отменить
Спасибо!