Как идентифицировать пользователя в боте?
Есть несколько вариантов идентификации клиента в боте:
- запросить и подтвердить номер телефона или емейл в боте
- запросить логин и пароль от личного кабинета и авторизовать по нему
- изначально при переходе с сайта в бот передать ID клиента (работает для VK и Telegram)
Рассмотрим как идентифицировать пользователя по ссылке со своего сайта:
Шаг 1. Создайте доп. поле для хранения внутреннего id пользователя

Раздел "Дополнительные поля" – Создать поле:
Системное имя вводим например "site_id"
Оно нам пригодится позже.

Тип поля – строка:
Шаг 2. Добавить блок записи поля на старте чат-карты

В начало текущей чат-карты добавить блок Запись поля.

В нем:
- Поле подписчика для записи = выбираем поле, созданное на шаге 1, у нас это "ID пользователя на сайте"
- Присваемое значение = {{profile.start_data}}

{{profile.start_data}} – это переменная, в которой храниться значение start из ссылки на бот.

Для Telegram ссылку на бот нужно формировать так: https://t.me/Test_bot?start=12345678, где вместо 12345678 ваш id на сайте.

Для VK ссылку на бот нужно формировать так: https://vk.me/id88888?ref=12345678, где вместо 12345678 ваш id на сайте.

Например, для ссылки https://t.me/Test_bot?start=12345678 в переменной profile.start_data будет - 12345678


Шаг 3. Добавить условный блок проверки, есть ли значение в этой переменной

После блока записи нужно добавить условный блок, который будет проверять, что "site_id" > 0

Это нужно для проверки, что действительно были данные в start переданы.

Если условие соблюдено - можно отправить во внутреннюю базу (или в Mindbox) запрос редактирования пользователя, который будет исходя из переданного в start идентификатора находить пользователя и записывать наш идентификатор дополнительно.

Если нужна идентификация для Mindbox:
  1. В ссылку на месте ID добавляйте переменную DeviceUUID.
  2. Пример операции - RegistrationBotMechanicVk на проекте dogeat. Он запрашивает телефон, и по нему добавляет идентификатор наш ({{subscriber.id}})
  3. Примерный вид тела запроса:
{
	"customer": {
		"ids": {
			"mindboxId": "{{profile.data.mindbox_id}}",
      "botmechanicId": "{{subscriber.id}}"
    }
  }
}
Если нужна идентификация для своего сайта без Mindbox:
  1. Попросите разработчиков подставлять в ссылке на бота идентификатор пользователя. Важно, чтобы этот идентификатор нельзя было подставить намеренно или случайно. То есть, поскольку данные из ссылки в открытом виде, то "g34rgtgiero43532у43224nkgjnjdlo3twcvnvfrie" будет хорошим идентификатором, а "4345" – плохим, потому как его легко заменить своим значением и попасть в чужой ЛК.
  2. Далее вы можете использовать блок "Запрос API", чтобы передать себе во внутреннюю базу Botmechanic ID, по которому можно будет отправлять триггерные сообщения.

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