Содержание статьи:
- Введение
- Настройка вопросов
- Настройка запросов
- Сущности
- Примеры
Настройки запроса к API
Название - отображаемое название настроенного запроса к API.
URL - адрес сервера на который будет выполняться запрос ботом.
Метод - методы запроса.
- При выборе метода GET требуется возвращать данные в формате JSON
- При выборе метода POST, бот будет отправлять данные в теле запроса в формате JSON
Параметры - список параметров, которые будут переданы при обращении ботом к URL адресу.
Добавление запроса к API в кнопке
Добавив API запрос к кнопке, вам открываются следующие настройки:
Название переменной - в эту переменную будет записан результат ответа от вашего сервера. Название переменной может быть произвольным.
Срок хранения результата (в минутах) - хранение результата в переменной.
Значение параметра - результат ответа посетителя на вопрос бота.
Сущности:
- .APIResponses - обращение к данным полученными при запросе ботом к URL адресу.
- .Attributes - обращение к атрибутам, установленными через метод виджета setConversationAttributes
- .Answers - обращение к ответам посетителя на вопросы бота.
Примеры
Запрос данных пользователя по номеру телефона
1. Создадим новый API запрос к нашему серверу.
- Заполним адрес сервера
- Укажем метод запроса GET
- Добавим параметр phone
После внесения настроек, сохраните запрос.
2. В кнопке добавим "Свой вопрос" и укажем текст "Введите телефон"
- Название переменной - укажите удобное для вас название переменной, например phoneNumber. По желанию добавьте валидацию.
Когда посетитель активирует кнопку сценария, он получит в чате этот вопрос от бота.
Когда посетитель отправит сообщение боту в виде номера телефона, оно будет записано в переменную phoneNumber
3. Добавляем наш ранее созданный api запрос
-
Название переменной. Укажем название data
В data будет записан ответ от вашего сервера на запрос от бота Livetex. - Значение параметра phone указываем шаблон {{ .Answers.phoneNumber }}
Запрос будет отправлен на url-адрес следующего вида: https://example.ru?phone=89210123456
Требуется возвращать данные в формате JSON.
В нашем примере возвращаемые данные следующего вида:
{
"client_id": "2",
"userName": "Tom"
}
4. Напишем посетителю в чате его имя и номер id.
В поле "Сообщение (обязательно для каналов Telegram и Vkontakte)" используем следующий шаблон: Привет {{ .APIResponses.data.userName }} твой ID {{ .APIResponses.data.client_id }}
Когда посетитель ответит на вопрос бота, покажем посетителю его данные
Отправка ответов посетителя на вопросы бота во вне
1. Создадим API запрос к нашему серверу
- Заполним адрес сервера.
- Укажем метод запроса POST
- Добавим параметры name, phone, email, from
2. В кнопке добавим три вопроса, где у посетителя уточним его контактные данные
- Вопрос: Укажите ваш номер телефона
- название переменной: phone
- Вопрос: Укажите ваш email адрес
- название переменной: email
- Вопрос: Укажите ваше имя
- название переменной: name
3. Добавляем наш ранее созданный запрос к Api
- название переменной: например, data
- значение параметра name - {{ .Answers.name }}
- значение параметра phone - {{ .Answers.phone }}
- значение параметра email - {{ .Answers.email }}
- значение параметра from - LivetexBot (служит для понимания, откуда пришли данные)
Когда посетитель ответит на все три вопроса, бот отправит данные в теле запроса на ваш сервер в формате JSON.
Процесс общения посетителя с ботом
Использование атрибутов обращения
Для работы этого примера требуется наличие установки дополнительного JavaScript-кода на страницы вашего сайта. Код можно разместить рядом с кодом виджета Livetex
По вопросу установки атрибутов обращению обратитесь к вашим техническим специалистам.
В коде ниже предполагается, что мы определили данные по посетителю, который пришел на сайт и установили их в атрибуты обращения.
<script>
var LiveTex = {
onLiveTexReady: function () {
LiveTex.setConversationAttributes({
VIP: "true",
email: "example@email.com",
userName: "Иван",
phone: "89210123456",
accountID: "123456",
});
},
};
</script>
1. Создадим запрос к APi, который отправит данные посетителя на наш сервер с использованием .Attributes
- Заполним адрес сервера.
- Укажем метод запроса POST
- Добавим параметры name, phone, email, from, client_id, vip
2. В кнопке для связи с посетителем добавим наш запрос к api
- название переменной: например, data
- значение параметра name - {{ .Attributes.userName }}
- значение параметра phone - {{ .Attributes.phone }}
- значение параметра email - {{ .Attributes.email }}
- значение параметра client_id - {{ .Attributes.accountID }}
- значение параметра vip - {{ .Attributes.VIP }}
- значение параметра from - LivetexBot: Кнопка для связи с клиентом
Когда посетитель нажмет кнопку "Свяжитесь со мной" покажем ему сообщение и дадим возможность вернуться в главное меню
- Сообщение для посетителя - Спасибо {{ .Attributes.userName }} мы свяжемся с вами в ближайшее время.
Мы получим данные атрибутов из нашего метода виджета, которые были установлены при обращении посетителя к боту. Данные будут отправлены на сервер.
Процесс общения посетителя с ботом
Условия показа кнопок на примере полученных данных
- К ранее созданной кнопке "Свяжитесь со мной" добавим кнопку "Только для Vip", которая будет показана посетителю только в том случае, если его атрибут VIP равняется значению true
- Переходим к нашей новой кнопке "Только для Vip" к полю "Условие показа"
- Добавим условие показа:
{{if eq .Attributes.VIP"true"}}SHOW_BUTTON{{else}}HIDE_BUTTON{{end}}
если атрибут VIP содержит значение true, то покажем кнопку, иначе кнопка будет скрыта.
Добавим текст для посетителя в кнопке "Только для Vip": Информация для Vip персоны {{ .Attributes.userName }}
Посетитель, который является Vip персоной увидит кнопку "Только для Vip"
Для посетителя, который не является Vip персоной, кнопка "Только для Vip" не будет показана