Перейти к основному содержимому

Сбор контактных данных

В данном уроке вы научитесь запрашивать у клиента контактную и другую необходимую вам информацию, а затем отправлять эту информацию — личным сообщением, в группу, в Google Таблицы либо на почту.

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

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

Создание сценария

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

Для этого перейдите на главную страницу Aimylogic и нажмите кнопку Создать бота.

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

Распознавание имени

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

После выполнения всех шагов у вас будет готов участок сценария, запрашивающий имя клиента:

На данном участке сценария вы получили имя клиента и записали его в переменную $name.

Получение фамилии

Так как фамилий может быть бесчисленное множество, нет смысла использовать словари фамилий. Воспользуемся блоком text to $var для того, чтобы получить любое слово, которое клиент введет в ответ на вопрос о фамилии, и сохранить его в переменную.

Чтобы связать готовый сценарий с новым блоком, добавьте на экран, содержащий текст Приятно познакомиться, $name!, блок Переход:

От блока Переход создайте блок text to $var:

В поле Сообщение вместо текста Введите текст укажите фразу:

Пожалуйста, назовите вашу фамилию.

В поле Имя переменной вместо переменной text укажите переменную lastname:

Нажмите Сохранить:

Теперь все, что клиент напишет на данном экране, будет записано в переменную $lastname, которую вы в дальнейшем сможете использовать и передавать.

Получение номера телефона

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

Пожалуйста, введите свой номер телефона.

Добавьте на этот экран блок Интенты. В готовых интентах выберите интент Номер телефона:

Готовый интент Номер телефона содержит следующее регулярное выражение, которое принимает только номера российских мобильных телефонов:

$regexp<(\+?(8|7)[\-\s]?)?\(?9\d{2}\)?[\-\s]?\d{3}[\-\s]?\d{2}[\-\s]?\d{2}>

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

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

Сюда бот будет вести клиента, если он введет что-то, что не попадет в готовый интент Номер телефона.

Добавьте сюда блок Переход и свяжите его с экраном Пожалуйста, введите свой номер телефона:

Когда введенный клиентом номер попадет в интент Номер телефона, он будет записан в переменную $PHONE. Вы сможете использовать ее далее.

Получение email

Для получения email-адресов у нас также есть готовый интент Email.

Свяжите готовый интент Номер телефона с новым блоком Текст:

Напишите в нем фразу:

Введите свой email.

На этот же экран добавьте блок Интенты и выберите готовый интент Email.

Вариант Любая другая фраза свяжите с экраном Введите свой email, чтобы при вводе чего-то другого бот возвращал клиента на этот же экран, пока клиент не введет email:

Когда введенный клиентом email попадет в интент Email, он будет записан в переменную $EMAIL. Вы сможете использовать ее далее.

Получение дополнительной информации

Если вам нужно получить от клиента ответ на какой-либо дополнительный вопрос — выяснить, какая услуга его интересует, на какой адрес доставить товар, какое время удобно для звонка и т. п. — вы можете получить эту информацию с помощью еще одного блока text to $var.

От интента Email создайте новый блок text to $var. В качестве сообщения укажите текст:

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

В качестве переменной укажите service.

предупреждение
Если вам нужно задать дополнительные вопросы клиенту, вы можете добавлять любое количество блоков text to $var, в которых ответы на вопросы будут записываться в переменные.

Тестирование сценария

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

Для этого от варианта Переход после ввода $service добавьте связь с блоком Текст. Скопируйте следующий текст в созданный блок:

Ваше имя: $name
Ваша фамилия: $lastname
Ваш телефон: $PHONE
Ваш email: $EMAIL
Вид услуги: $service

Этот блок выведет в сообщении бота все данные, которые были получены от клиента в ходе диалога.

Теперь можно протестировать сценарий. Нажмите кнопку Тестировать и отвечайте на вопросы бота. Корректно работающий сценарий будет выглядеть приблизительно так:

Message preview

Далее, если вам нужно передавать эти данные куда-либо, вы можете удалить последний блок Текст:

И вместо этого блока добавить блок HTTP-запрос, с помощью которого будут передаваться данные:

Передача данных из сценария

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

Кроме отправки данных с использованием в сценарии блока HTTP-запрос, вы также можете воспользоваться другими блоками:

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

Пример использования блока HTTP-запрос

Любая отправка данных с использованием блока HTTP-запрос будет выглядеть примерно так:

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

Далее от блока Завершен успешно сделать связь с сообщением об успешной отправке данных.

А от варианта Завершен с ошибкой — связь с блоком Текст следующего содержания:

Ошибка $httpStatus

Если вы оформили блок HTTP-запрос корректно в соответствии с одним из уроков, полученные от клиента данные будут передаваться по указанному в блоке адресу.

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