Единая карточка клиента в Mindbox
Botmechanic.io
Интеграция с Mindbox
Чтобы иметь единую карточку клиента
для пользователей в боте и в Mindbox,
важно сразу связать клиентов.


Чтобы связать клиента из одной базы (например, из базы MB) с другой (например, с Botmechanic) нужно знать что-то общее между ними. Номер телефона или e-mail

Правда, ни Телеграм, ни Вконтакте не отдаёт нам эти данные :(
(WA отдает :)

И тут у нас выбор:
1. Либо запрашивать эту информацию у пользователя внутри бота (с помощью блока ввода данных и доп.полей)

2. Либо помещать эту информацию в ссылку, по которой пользователь переходит в бот. Как это сделать рассказали в этой статье
Когда пользователь ввёдет свой номер телефона или e-mail, он у нас запишется в карточку клиента в системе Botmechanic

Но его пока еще нет в Mindbox в карточке клиента. И пока не может быть.
Ведь в MB мы еще не создали операцию, которая будет обновлять это поле.
Да и сами поля...
Мы переходим в админку MB:

1. Нам нужно создать поле в карточке клиента в МB с названием, например, "Bottelegram" или с любым другим названием, но оканчивающемся на "...telegram" (ЭТО ВАЖНО! ) и отдельные поля "...vk" , "...whatsapp" (Тоже любые, но оканчивающиеся дословно на эти буквы)

2. Нужно создать операцию, с помощью которой Botmechanic будет обновлять эти поля. Мы будем высылать в МB параметр (номер телефона или емейл) + один из айди в боте

Сохраняем:
а) УРЛ
2) Заголовки
3) Тело запроса только с необходимыми данными
А теперь переходим к настройке в нашем конструкторе

1. В чат-карте после блока "Ввод данных", где мы запрашивали номер телефона или e-mail,
мы создаём блок "Запрос в API"

2. В поле "URL запроса" вставляем URL из предыдущего шага

* Если в урле есть упоминание мессенджера, например, если несколько операций для каждого мессенджера, упоминание должно быть строго vk ЛИБО whatsapp ЛИБО telegram ЛИБО web . Именно в таком написании.
Если написание правильное, вместо мессенджера в урл вставляем {{subscriber.channel.type}}

Например:
Был УРЛ:
https://api.mindbox.ru/v3/operations/async?endpointId=botmechanic-client&operation=registrationtelegram

Вставляем такой:
https://api.mindbox.ru/v3/operations/async?endpointId=botmechanic-client&operation=registration{{subscriber.channel.type}}
3. HTTP-метод POST

4. Заполняем заголовки

5. Тело запроса копируем из предыдущего шага.

И туда нам нужно поставить динамические поля (те, которые изменяются)

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

Тип мессенджера - это всегда {{subscriber.channel.type}}
Уникальный идентификатор в боте - это всегда {{subscriber.id}}

А вот номер телефона будет зависеть от ранее созданного доп.поля, в которое в блоке ввода данных записывается номер телефона

Любое доп.поле можно подставить с помощью {{profile.data.}}
{{profile.data.СИСТЕМНОЕИМЯ}}

Например: {{profile.data.phone}} - будет подставляться номер телефона пользователя

Собираем

{
"customer": {
"mobilePhone": "{{profile.data.phone}}",
"ids": {
"{{subscriber.channel.type}}": "{{subscriber.id}}"
}
}
}

И связываем этот блок со следующим в чат-карте

Готово :)
А как же использовать эти данные в MB и делать отправки?