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

Матчинг

Поле matching определяет режим поиска подписчика для обновления. По умолчанию — email.

При обновлении данных следует применять общий подход к матчингу.

Режим поиска подписчикаmatchingНеобходимые поляТип поляПримерОписание поля
По email адресу из профиля или подписок"email"emailstring"john@example.com"Email-адрес
По email адресу из профиля"email_profile"emailstring"john@example.com"Email-адрес
По email адресу из подписок"email_sub"emailstring"john@example.com"Email-адрес
По телефону из полей данных или подписок"phone"phonestring"+79000000000"Номер телефона
По телефону из полей подписок"phone_sub"phonestring"+79000000000"Номер телефона
По идентификатору профиля (только при обновлении!)"profile_id"profile_idstring"abcdefghijklmnqrstuvwxyz"Идентификатор профиля
Поиск по пуш подписке"push_sub"providerstring"android-firebase"Провайдер
subscription_idstring"1234"Идентификатор подписки
По кастомному полю"custom"field_namestring"CRM_ID"Название кастомного поля профиля для поиска.
field_valueint/string"example123"Значение кастомного поля для поиска.

Доступен поиск по сочетанию значений поля с типом "теги". Теги передаются в строке через запятую: "тег_1, тег_2".
Поиск профиля по подписке на кастомный канал"custom_sub"field_namestring"CRM_ID"Название кастомного поля профиля для поиска.
field_valueint/string"example123"Значение кастомного поля для поиска.
По email адресу или телефону из профиля"email_phone"email / phonestring"john@example.com" / "+79000000000"Email-адрес / Номер телефона
По email адресу или телефону из подписок"email_phone_sub"email / phonestring"john@example.com" / "+79000000000"Email-адрес / Номер телефона
к сведению

Unclear matching

Если поле, которое вы передаете в теле запроса, не является уникальным, т.е. значение этого поля совпадает у нескольких профилей, то запрос вернет ошибку "Unclear matching".

к сведению

Duplicate unique data

Ошибка "Duplicate unique data" возникает, если при импорте профиля вы используете кастомное уникальное поле для матчинга и при этом нарушаете уникальность системного поля.

Например, для матчинга используется уникальное кастомное поле client_id. В базе есть профиль с полями: email: test@example.com, client_id: 100. Вы импортируете ещё один профиль с полями: email: test@example.com, client_id: 101. Запрос вернет ошибку "Duplicate unique data", потому что нарушается уникальность системного поля email.

В таких случаях рекомендуется передавать поле email в объекте subscription (подписка):

{
"token": "m1883gf9cacngh18c912016r7c7995a",
"db_id": 1,
"matching": "custom",
"field_name": "client_id",
"field_value": "100",
"data": {
"_fname": "John",
"_lname": "Doe",
"subscriptions": [
{
"channel": "email",
"email": "test@example.com",
"resource_id": 1
}
]
}
}

Пример импорта/обновления подписки при определенном матчинге

email, email_profile, email_sub, email_phone, email_phone_sub

{
"token": "m1883gf9cacngh18c912016r7c7995a",
"db_id": 1,
"matching": "email",
"email": "example@example.com",
"data": {
"subscriptions": [
{
"channel": "email",
"email": "example@example.com",
"resource_id": 1
}
]
}
}

phone, phone_sub, email_phone, email_phone_sub

{
"token": "m1883gf9cacngh18c912016r7c7995a",
"db_id": 1,
"matching": "phone",
"phone": "+79000000000",
"data": {
"subscriptions": [
{
"channel": "sms",
"phone": "+79000000000",
"resource_id": 1
}
]
}
}

profile_id

{
"token": "91f1dfa81c264a938b475677c60ce967",
"db_id": 1,
"matching": "profile_id",
"profile_id": "012452gf62fcd71fjh8ec0",
"data": {
"subscriptions": [
{
"channel": "email",
"email": "example@example.com",
"resource_id": 1
}
]
}
}

push_sub

    
{
"token": "91f1dfa81c264a938b475677c60ce967",
"db_id": 1,
"matching": "push_sub",
"provider": "android-firebase",
"subscription_id": "<token>",
"data": {
"subscriptions": [
{
"channel": "push",
"subscription_id": "<token>",
"provider": "android-firebase",
"resource_id": 1
}
]
}
}

custom, custom_sub

    
{
"token": "91f1dfa81c264a938b475677c60ce967",
"db_id": 1,
"matching": "custom",
"field_name": "CRM_id",
"field_value": "12345",
"data": {
"subscriptions": [
{
"channel": "email",
"email": "example@example.com",
"resource_id": 1
}
]
}
}

подсказка

Subscriptions

Объект subscription передаёт данные о подписках профиля на ресурс. Подробнее.