Матчинг
Поле matching
определяет режим поиска подписчика для обновления. По умолчанию — email
.
При обновлении данных следует применять общий подход к матчингу.
Режим поиска подписчика | matching | Необходимые поля | Тип поля | Пример | Описание поля |
---|---|---|---|---|---|
По email адресу из профиля или подписок | "email" | string | "john@example.com" | Email-адрес | |
По email адресу из профиля | "email_profile" | string | "john@example.com" | Email-адрес | |
По email адресу из подписок | "email_sub" | string | "john@example.com" | Email-адрес | |
По телефону из полей данных или подписок | "phone" | phone | string | "+79000000000" | Номер телефона |
По телефону из полей подписок | "phone_sub" | phone | string | "+79000000000" | Н омер телефона |
По идентификатору профиля (только при обновлении!) | "profile_id" | profile_id | string | "abcdefghijklmnqrstuvwxyz" | Идентификатор профиля |
Поиск по пуш подписке | "push_sub" | provider | string | "android-firebase" | Провайдер |
subscription_id | string | "1234" | Идентификатор подписки | ||
По кастомному полю | "custom" | field_name | string | "CRM_ID" | Название кастомного поля профиля для поиска. |
field_value | int/string | "example123" | Значение кастомного поля для поиска. Доступен поиск по сочетанию значений поля с типом "теги". Теги передаются в строке через запятую: "тег_1, тег_2". | ||
Поиск профиля по подписке на кастомный канал | "custom_sub" | field_name | string | "CRM_ID" | Название кастомного поля профиля для поиска. |
field_value | int/string | "example123" | Значение кастомного поля для поиска. | ||
По email адресу или телефону из профиля | "email_phone" | email / phone | string | "john@example.com" / "+79000000000" | Email-адрес / Номер телефона |
По email адресу или телефону из подписок | "email_phone_sub" | email / phone | string | "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
- JSON
- XML
{
"token": "m1883gf9cacngh18c912016r7c7995a",
"db_id": 1,
"matching": "email",
"email": "example@example.com",
"data": {
"subscriptions": [
{
"channel": "email",
"email": "example@example.com",
"resource_id": 1
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<token>m1883gf9cacngh18c912016r7c7995a</token>
<db_id>1</db_id>
<matching>email</matching>
<email>example@example.com</email>
<data>
<subscriptions>
<list>
<channel>email</channel>
<email>example@example.com</email>
<resource_id>1</resource_id>
</list>
</subscriptions>
</data>
</xml>
phone, phone_sub, email_phone, email_phone_sub
- JSON
- XML
{
"token": "m1883gf9cacngh18c912016r7c7995a",
"db_id": 1,
"matching": "phone",
"phone": "+79000000000",
"data": {
"subscriptions": [
{
"channel": "sms",
"phone": "+79000000000",
"resource_id": 1
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<token>m1883gf9cacngh18c912016r7c7995a</token>
<db_id>1</db_id>
<matching>phone</matching>
<phone>+79000000000</phone>
<data>
<subscriptions>
<list>
<channel>sms</channel>
<phone>+79000000000</phone>
<resource_id>1</resource_id>
</list>
</subscriptions>
</data>
</xml>
profile_id
- JSON
- XML
{
"token": "91f1dfa81c264a938b475677c60ce967",
"db_id": 1,
"matching": "profile_id",
"profile_id": "012452gf62fcd71fjh8ec0",
"data": {
"subscriptions": [
{
"channel": "email",
"email": "example@example.com",
"resource_id": 1
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<token>91f1dfa81c264a938b475677c60ce967</token>
<db_id>1</db_id>
<matching>profile_id</matching>
<profile_id>012452gf62fcd71fjh8ec0</profile_id>
<data>
<subscriptions>
<list>
<channel>email</channel>
<email>example@example.com</email>
<resource_id>1</resource_id>
</list>
</subscriptions>
</data>
</xml>
push_sub
- JSON
- XML
{
"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
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<token>91f1dfa81c264a938b475677c60ce967</token>
<db_id>1</db_id>
<matching>push_sub</matching>
<provider>android-firebase</provider>
<subscription_id><token></subscription_id>
<data>
<subscriptions>
<list>
<channel>push</channel>
<subscription_id><token></subscription_id>
<provider>android-firebase</provider>
<resource_id>1</resource_id>
</list>
</subscriptions>
</data>
</xml>
custom, custom_sub
- JSON
- XML
{
"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
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<token>91f1dfa81c264a938b475677c60ce967</token>
<db_id>1</db_id>
<matching>custom</matching>
<field_name>CRM_id</field_name>
<field_value>12345</field_value>
<data>
<subscriptions>
<list>
<channel>email</channel>
<email>example@example.com</email>
<resource_id>1</resource_id>
</list>
</subscriptions>
</data>
</xml>
Subscriptions
Объект subscription
передаёт данные о подписках профиля на ресурс. Подробнее.