Как передать данные из чат-бота в Mindbox

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

2023-04-11-140529.gif

Настроить передачу данных из чат-бота в Mindbox

Принцип следующий:

1. Создайте операцию, которая будет передавать на платформу собранные данные, например:

Снимок экрана 2023-03-31 в 12.00.24.png

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

Строки, числа, даты

Для строки, числа, даты подойдет «Ввод от пользователя».

В нем нужно задать переменную, в которой сохранится ответ. Далее, с помощью этой переменной, ответ будет передан в Mindbox.

Также нужно указать ожидаемый тип данных.

Снимок экрана 2023-03-31 в 12.03.43.png


При сборе дат нужно учитывать, что Botmother записывает их в формате "Mon Jan 01 1990 00:00:00 GMT+0300 (Москва, стандартное время)"

Поэтому нужно либо поправить ответ с помощью функции formatDate, либо задать регулярное выражение, например ^\d\d\.\d\d\.\d\d\d\d$ для формата дд.мм.гггг:

Снимок экрана 2023-03-31 в 12.15.45.png

Пол, логический тип, перечисление

Когда пользователь должен выбрать один из двух вариантов, удобно использовать компонент «Кнопки» или «Кнопки с подсказками».

В компоненте:

  • добавьте кнопки под оба варианта ответа;
  • укажите текст на кнопке;
  • для каждого варианта задайте:
    • имя переменной — где будет храниться ответ пользователя; должна быть одинаковой для обоих вариантов.;
    • значение переменной — какое значение будет передано дальше, если клиент выберет этот вариант. Нужно учитывать принимаемые форматы на стороне Mindbox

Например, запишем пол пользователя.
Ответ пользователя будем записывать в переменной gender.
Есть несколько принимаемых форматов для пола: m/f, m/w, male/female

Остановимся на последнем и запишем в качестве ответов варианты ответа female и male:

Снимок экрана 2023-03-31 в 12.23.49.png

При клике на «Женский» в переменной gender записывается значение female, которое дальше можно передать на платформу.

3. Передайте собранные данные в Mindbox.

На нужном экране добавьте компонент «Запрос».
Для его заполнения можно сверяться с ранее созданной операцией:

Снимок экрана 2023-03-31 в 12.37.19.png

  • Метод запроса — POST
  • URL запроса — скопируйте из спецификации, указав корректную точку интеграции и синхронный тип вызова.
  • Заголовки — скопируйте из спецификации JSON-формата. Секретный ключ точки интеграции можно взять с ее страницы.
  • «Использовать парсер» — JSON
  • Тело запроса — скопируйте из спецификации JSON-формата и поставьте параметры BotMother в качестве их значений.

Подробнее по последнему пункту.

Шаблон тела запроса в Mindbox для передачи имени, даты рождения и пола выглядит следующим образом:

{
  "customer": {
    "ids": {
      "telegramID": "<TelegramID>"
    },
    "firstName": "{Имя}",
    "birthDate": "{Дата рождения}",
    "sex": "{Пол}"
  }
}

"telegramID" — системное имя идентификатора в телеграм. Создается вручную как дополнительное поле типа идентификатор, поэтому может отличаться от проекта к проекту.

В значение идентификатора, вместо <TelegramID>, нужно записать переменную Botmother{{this_user.platform_id}}

Для имени, даты и пола в полях ввода были заданы переменные name, birthdate и gender соответственно. Переменные в Botmother выводятся так: {{переменная}}

Получается код для компонента:

{
  "customer": {
    "ids": {
      "telegramID": "{{this_user.platform_id}}"
    },
    "firstName": "{{name}}",
    "birthDate": "{{birthdate}}",
    "sex": "{{gender}}"
  }
}

Снимок экрана 2023-03-31 в 12.44.20.png