Перейти к основному содержимому

Объединение нескольких профилей

Описание

Объединение нескольких профилей в новый или уже существующий профиль.

предупреждение
  • Профили, созданные объединением, — это не импорт. Импорт триггер по ним не срабатывает.

  • Email: localhost как отсутствующее поле, создается при необходимости и не копируется в другой профиль.

  • Не localhost email копируется, как любое другое поле, но чтобы не было коллизий — пропадает из source-профиля, меняется на пустое (то есть localhost).

URL-адрес

Метод: POST

https://example.com/api/v1.1/profiles/merge

Параметры запроса

ПараметрТипПримерОбязательныйОписание
tokenstring"abcdefghijklmnqrstuvwxyz"ДаAPI токен
dataJSON object
"data": {
"_fname": "John",
"_lname": "Doe"
}
НетДанные о профиле, которые изменятся после объединения.
skip_triggersbooltrueНетПропустить запуск триггеров
(по умолчанию – false)
sourcearray
"source": [
   {
      "db_id": 1,
      "email": "test1@mail.ru"
   },
   {
      "db_id": 2,
      "email": "test2@mail.ru"
   }
]
ДаСодержит данные матчинга о профилях, которые нужно объединить.
destinationJSON object
"destination":{
      "db_id": 3,
      "email": "test3@mail.ru"
}
ДаСодержит данные матчинга профиля, который получится в результате объединения.
matchingstring"email"
"email_profile"
"email_sub"
"phone"
"phone_sub"
"profile_id"
"push_sub"
"custom"
"custom_sub"
"email_phone"
"email_phone_sub"
Нет, если поиск
по email из профиля или подписок
Режим поиска подписчика.
По умолчанию - email.

Для каждого типа матчинга в теле запроса необходимо передавать определенные поля. Подробнее об этих полях можно узнать здесь.
field_namestringcustom_IDДа, если
"matching": "custom"
Имя кастомного поля БД Altcraft при matching : custom. В форме сбора данных для поиска нужно поле с таким же именем.
field_valueint/stringcustom_stringДа, если
"matching": "custom"
Значение кастомного поля при matching : custom.
subscriptions
booltrueНетКопировать и объединить подписки. Подписки на категории ресурса и данные из полей подписки также скопируются.
(по умолчанию – true)
historybooltrueНетКопировать историю и флаги активности
(по умолчанию – true)
static_segments
booltrueНетВносить ли изменения в статические сегменты (source-профили выйдут из сегментов, а destination-профиль - войдет)
(по умолчанию – false)
overwritebooltrueНетКопировать ли поля source-профилей
(по умолчанию – false)

Если у destination-профиля есть пустые поля, они в любом случае будут заполнены полями профиля с наибольшим приоритетом.
deletebooltrueНетУдалить ли source-профили после обьединения
(по умолчанию – false)

Копирование полей профилей

Пример запроса

{
"matching": "custom",
"field_name": "field_1",
"delete": true,
"source": [
{
"db_id": 1,
"field_value": "1",
"data": {
"_fname": "Profile1",
"_lname": "LnameProfile1"
}
},
{
"db_id": 1,
"matching": "email",
"email": "test2@mail.ru",
"data": {
"_fname": "Profile2",
"_lname": "LnameProfile2"
}
}
],
"destination": {
"db_id": 2,
"matching": "email",
"email": "test3@mail.ru",
"data": {
"_fname": "Profile3",
"_lname": "LnameProfile3"
}
},
"subscriptions": true,
"static_segments": true,
"history": false,
"token": "abcdefghijklmnqrstuvwxyz"
}

Пример ответа

{
"destination_id": {
"db_id": 2,
"profile_id": "60a7855930b8bc8535b2acfb"
},
"error": 0,
"error_text": "",
"source_ids": [
{
"db_id": 1,
"profile_id": "60a7839330b8bc86a5bc5f62"
},
{
"db_id": 1,
"profile_id": "60a7845230b8bc8535b2acf7"
}
]
}

Возвращаемые параметры

ПараметрТипОписание
destination_idJSON объектСодержит данные о профиле, получившемся в результате объединения:
db_id — идентификатор базы данных
profile_id — идентификатор профиля
source_idsJSON объектСодержит данные об объединенных профилях в виде списка:
db_id — идентификатор базы данных
profile_id — идентификатор профиля
errorintКод ошибки
error_textstringТекст ошибки