Интеграция бота Nanotech42 с внешними системами

Последние изменения: 03.11.2023

Содержание статьи:

Настройки запроса к API

Название - отображаемое название настроенного запроса к API.
URL - адрес сервера на который будет выполняться запрос ботом.
Метод - методы запроса.

  • При выборе метода GET требуется возвращать данные в формате JSON
  • При выборе метода POST, бот будет отправлять данные в теле запроса в формате JSON

Параметры - список параметров, которые будут переданы при обращении ботом к URL адресу.

2023-07-03_12-57-53.png

Добавление запроса к API в кнопке

Добавив API запрос к кнопке, вам открываются следующие настройки:

2023-07-03_14-13-38.png

Название переменной - в эту переменную будет записан результат ответа от вашего сервера. Название переменной может быть произвольным.
Срок хранения результата (в минутах) - хранение результата в переменной.
Значение параметра - результат ответа посетителя на вопрос бота.

Сущности:

  • .APIResponses - обращение к данным полученными при запросе ботом к URL адресу.
  • .Attributes - обращение к атрибутам, установленными через метод виджета setConversationAttributes
  • .Answers - обращение к ответам посетителя на вопросы бота.

Примеры

Запрос данных пользователя по номеру телефона

1. Создадим новый API запрос к нашему серверу.

  • Заполним адрес сервера
  • Укажем метод запроса GET
  • Добавим параметр phone

2023-07-03_14-20-48.png

После внесения настроек, сохраните запрос.

2. В кнопке добавим "Свой вопрос" и укажем текст "Введите телефон"

  • Название переменной - укажите удобное для вас название переменной, например phoneNumber. По желанию добавьте валидацию.

2023-07-03_14-26-00.png

Когда посетитель активирует кнопку сценария, он получит в чате этот вопрос от бота.
Когда посетитель отправит сообщение боту в виде номера телефона, оно будет записано в переменную phoneNumber

3. Добавляем наш ранее созданный api запрос

  • Название переменной. Укажем название data
    В data будет записан ответ от вашего сервера на запрос от бота Livetex.
  • Значение параметра phone указываем шаблон {{ .Answers.phoneNumber }}

2023-07-03_14-29-54.png

Запрос будет отправлен на url-адрес следующего вида: https://example.ru?phone=89210123456
Требуется возвращать данные в формате JSON.
В нашем примере возвращаемые данные следующего вида:

{
"client_id": "2",
"userName": "Tom"
}

4. Напишем посетителю в чате его имя и номер id.

В поле "Сообщение (обязательно для каналов Telegram и Vkontakte)" используем следующий шаблон: Привет {{ .APIResponses.data.userName }} твой ID {{ .APIResponses.data.client_id }}

2023-07-03_14-36-10.png

Когда посетитель ответит на вопрос бота, покажем посетителю его данные


2023-06-29_13-19-40.png


Отправка ответов посетителя на вопросы бота во вне

1. Создадим API запрос к нашему серверу

  • Заполним адрес сервера.
  • Укажем метод запроса POST
  • Добавим параметры name, phone, email, from

2023-07-03_15-18-35.png

2. В кнопке добавим три вопроса, где у посетителя уточним его контактные данные

  • Вопрос: Укажите ваш номер телефона
  • название переменной: phone

2023-06-30_11-41-46.png

  • Вопрос: Укажите ваш email адрес
  • название переменной: email

2023-06-30_11-42-29.png

  • Вопрос: Укажите ваше имя
  • название переменной: name

2023-06-30_11-43-40.png

3. Добавляем наш ранее созданный запрос к Api

  • название переменной: например, data
  • значение параметра name - {{ .Answers.name }}
  • значение параметра phone - {{ .Answers.phone }}
  • значение параметра email - {{ .Answers.email }}
  • значение параметра from - LivetexBot (служит для понимания, откуда пришли данные)

2023-06-30_11-56-43.png

 

Когда посетитель ответит на все три вопроса, бот отправит данные в теле запроса на ваш сервер в формате JSON.

2023-06-30_12-00-06.png

Процесс общения посетителя с ботом

2023-06-30_12-00-32.png

 

Использование атрибутов обращения 

Для работы этого примера требуется наличие установки дополнительного 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


2023-07-03_15-16-15.png

2. В кнопке для связи с посетителем добавим наш запрос к api

  • название переменной: например, data
  • значение параметра name - {{ .Attributes.userName }}
  • значение параметра phone - {{ .Attributes.phone }}
  • значение параметра email - {{ .Attributes.email }}
  • значение параметра client_id - {{ .Attributes.accountID }}
  • значение параметра vip - {{ .Attributes.VIP }}
  • значение параметра from - LivetexBot: Кнопка для связи с клиентом

2023-06-30_14-33-36.png

Когда посетитель нажмет кнопку "Свяжитесь со мной" покажем ему сообщение и дадим возможность вернуться в главное меню

  • Сообщение для посетителя - Спасибо {{ .Attributes.userName }} мы свяжемся с вами в ближайшее время.

2023-06-30_14-33-50.png

Мы получим данные атрибутов из нашего метода виджета, которые были установлены при обращении посетителя к боту. Данные будут отправлены на сервер.

2023-06-30_14-34-17.png


Процесс общения посетителя с ботом

2023-06-30_14-33-17.png

 

Условия показа кнопок на примере полученных данных

  • К ранее созданной кнопке "Свяжитесь со мной" добавим кнопку "Только для Vip", которая будет показана посетителю только в том случае, если его атрибут VIP равняется значению true
  • Переходим к нашей новой кнопке "Только для Vip" к полю "Условие показа"
  • Добавим условие показа:

{{if eq .Attributes.VIP"true"}}SHOW_BUTTON{{else}}HIDE_BUTTON{{end}}

если атрибут VIP содержит значение true, то покажем кнопку, иначе кнопка будет скрыта.

 

2023-06-30_15-01-53.png

Добавим текст для посетителя в кнопке "Только для Vip":  Информация для Vip персоны {{ .Attributes.userName }}

2023-06-30_15-09-39.png

Посетитель, который является Vip персоной увидит кнопку "Только для Vip"
Для посетителя, который не является Vip персоной, кнопка "Только для Vip" не будет показана 

2023-06-30_15-10-28.png2023-06-30_15-04-45.png

Помогла ли вам статья?