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

Разделение профиля

Описание

Разделение профиля на несколько новых или уже существующих профилей.

предупреждение

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

URL-адрес

Метод: POST

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

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

ПараметрТипПримерОбязательныйОписание
tokenstring"abcdefghijklmnqrstuvwxyz"ДаAPI токен
dataJSON object
"data": {
"_fname": "John",
"_lname": "Doe"
}
НетДанные о профиле, которые изменятся после разделения.
skip_triggersbooltrueНетПропустить запуск триггеров
по умолчанию – false
sourceJSON object
"source": {
   "db_id": 1,
   "email": "test1@mail.ru"
}
ДаСодержит данные матчинга о профилях, которые нужно разделить
destinationarray
"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)
subscription_filtersJSON объект
"subscription_filters": [
   {
      "resource_id": 1,
      "channel": "push",
      "provider": "Safari"
   }
]
НетФильтр - для копирования конкретных подписок.
Если не указывать - копируются все.
overwritebooltrueнетКопировать ли поля source-профиля
(по умолчанию – false)

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

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

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

{
"matching": "custom",
"field_name": "field_1",
"delete": true,
"source": {
"db_id": 1,
"field_value": 1,
"data": {
"_fname": "Profile1",
"_lname": "LnameProfile1"
}
},
"destination": [
{
"db_id": 2,
"matching": "email",
"email": "test2@mail.ru",
"data": {
"_fname": "Profile2",
"_lname": "LnameProfile2"
}
},
{
"db_id": 2,
"field_value": 3,
"data": {
"_fname": "Profile3",
"_lname": "Lname3"
},
"subscription_filters": [
{
"resource_id": 1,
"channel": "push",
"provider": "Safari"
},
{
"resource_id": 2,
"channel": "email"
}
]
}
],
"subscriptions": true,
"static_segments": true,
"history": false,
"token": "abcdefghijklmnqrstuvwxyz"
}

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

{
"destination_ids": [
{
"db_id": 2,
"profile_id": "60a7b150fa3adb6f1179fe7f"
},
{
"db_id": 2,
"profile_id": "60a7b150fa3adb6f1179fe80"
}
],
"error": 0,
"error_text": "",
"source_id": {
"db_id": 1,
"profile_id": "60a7a45bfa3adb7132dcceaa"
}
}

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

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