Импортировать профиль
Описание
Запрос добавляет профиль клие нта в базу. Также при помощи этого запроса можно обновить профиль, который уже есть в базе.
Чтобы одновременно с импортом отправлять триггерную рассылку, используйте этот запрос.
URL-адрес
Метод: POST
https://example.com/api/v1.1/profiles/import
Параметры запроса
- При использовании JSON в теле запроса используйте заголовок Content-Type: application/json.
- При использовании XML в теле запроса используйте заголовок Content-Type: application/xml.
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| db_id | int | 1 | Да | Идентификатор базы данных |
| matching | string | "email" – поиск по email из профиля или подписок | Нет, если поиск по email из профиля или подписок | Режим поиска подписчика. По умолчанию – email |
| skip_triggers | bool | true | Нет | Пропустить запуск триггеров (по умолчанию – false) |
| skip_invalid_subscriptions | bool | true | Нет | Пропустить невалидные подписки (по умолчанию – false) |
| detect_geo | bool | true | Нет | Включает автоопределение geo-данных по полю _regip или _ip в data |
| add_to_segments | JSON список | [1,2] | Нет | Добавление профиля в сегмент |
| remove_from_segments | JSON список | [1,2] | Нет | Удаление профиля из сегмента |
| data | JSON object | | Да | Данные о профиле, в т. ч. данные о подписках на ресурсы ( |
Массив subscriptions
Массив subscriptions хранит данные о подписках профиля на ресурсы. Один объект — одна подписка.
| Параметры | Тип | Пример | Описание |
|---|---|---|---|
| resource_id | int | 1 | Идентификатор ресурса |
| status | string | "subscribed" | Статус подписки (опциональное поле). Рекомендуется передавать только в тех случаях, когда необходимо обновить статус подписки. |
| priority | int | 1 | Приоритет подписки (опциональное поле). В случае если приоритет подписки передается в запросе, опция "Повышать приоритет для новых подписок" в ресурсе не работает. |
| custom_fields | object | | Стандартные и дополнительные поля подписки (опциональное поле). Получить информацию о доступных полях подписки в ресурсе можно с помощью метода /v1.1/resources/fields_get |
| cats | array | | Категории ресурса, на которые подписать профиль (опциональное поле). |
| Email-канал | |||
| channel | string | "email" | Тип канала |
| string | "john@example.com" | Email-адрес | |
| SMS-канал | |||
| channel | string | "sms" | Тип канала |
| phone | string | "+79000000000" | Номер телефона |
| Push-канал | |||
| channel | string | "push" | Тип канала |
| provider | string | "Firefox" | Тип провайдера |
| subscription_id | string | "abcdefghijklmnqrstuvwxyz" | Идентификатор подписки |
| Telegram Bot канал | |||
| channel | string | "telegram_bot" | Тип канала |
| cc_data | object | | ID чата в Telegram-бот |
| WhatsApp*-канал | |||
| channel | string | "whatsapp" | Тип канала |
| cc_data | object | | Телефон профиля в WhatsApp* |
| Viber-канал | |||
| channel | string | "viber" | Тип канала |
| cc_data | object | | Телефон профиля в Viber |
| Notify-канал | |||
| channel | string | "notify" | Тип канала |
| cc_data | object | | Телефон профиля в VK/OK/SMS |
Примеры запросов
Импорт профиля c добавлением подписки на email-канал
- JSON
- XML
{
"db_id": 1,
"matching": "email",
"email": "example@example.com",
"detect_geo": true,
"data": {
"_fname": "Olly",
"_lname": "Lambert",
"email": "example@example.com",
"phones": ["+79000000000"],
"subscriptions": [
{
"resource_id": 1,
"channel": "email",
"email": "example@example.com"
},
{
"resource_id": 1,
"channel": "sms",
"phone": "+79000000000"
}
]
}
}
<xml>
<db_id>1</db_id>
<email>example@example.com</email>
<matching>email</matching>
<detect_geo>true</detect_geo>
<data>
<_fname>Olly</_fname>
<_lname>Lambert</_lname>
<email>example@example.com</email>
<phones>+79511059000</phones>
<subscriptions array='true'>
<resource_id>1</resource_id>
<channel>email</channel>
<email>example@example.com</email>
</subscriptions>
</data>
</xml>
Импорт профиля с передачей его дополнительных данных
- JSON
- XML
{
"db_id": 1,
"matching": "email",
"email": "example@example.com",
"detect_geo": true,
"data": {
"_fname": "Olly",
"_lname": "Lambert",
"email": "example@example.com",
"phones": ["+79000000000"],
"_bdate": "1990-02-22T21:00:00Z",
"_sex": 0,
"_regdate": "2019-03-14T22:00:00Z",
"_regip": "94.231.119.122",
"_ip": "94.231.119.122",
"_tz": "Europe/Moscow",
"_postal_code": "390000",
"_os": "Windows 10",
"_browser": "Firefox",
"_vendor": "form_#31",
"custom_field": "custom_value",
"Custom_Tags": ["tag_1", "tag_2", "tag_3"],
"Custom_Int": 42,
"Custom_Float": 3.14,
"Custom_Bool": true,
"Custom_Enum": "option_a",
"Custom_Date": "2025-01-15",
"Custom_Datetime": "2025-01-15T10:30:00Z",
"Custom_Object": {"key": "value"},
"subscriptions": [
{
"resource_id": 1,
"channel": "email",
"email": "example@example.com"
},
{
"resource_id": 1,
"channel": "sms",
"phone": "+79000000000"
}
]
}
}
<xml>
<db_id>1</db_id>
<detect_geo>true</detect_geo>
<email>example@example.com</email>
<matching>email</matching>
<data>
<_fname>Olly</_fname>
<_lname>Lambert</_lname>
<email>example@example.com</email>
<phones>+79511059000</phones>
<_bdate>1990-07-06</_bdate>
<_sex>0</_sex>
<_regdate>2023-07-06</_regdate>
<_regip>192.168.0.179</_regip>
<_ip>192.168.0.179</_ip>
<_tz>Europe/Moscow</_tz>
<_postal_code>390000</_postal_code>
<_os>Windows 10</_os>
<_browser>Firefox</_browser>
<_vendor>form_#31</_vendor>
<custom_field>custom_value</custom_field>
<Custom_Tags>tag_1, tag_2, tag_3</Custom_Tags>
<Custom_Int>42</Custom_Int>
<Custom_Float>3.14</Custom_Float>
<Custom_Bool>true</Custom_Bool>
<Custom_Enum>option_a</Custom_Enum>
<Custom_Date>2025-01-15</Custom_Date>
<Custom_Datetime>2025-01-15T10:30:00Z</Custom_Datetime>
<subscriptions array='true'>
<resource_id>1</resource_id>
<channel>email</channel>
<email>example@example.com</email>
</subscriptions>
<subscription>
<resource_id>1</resource_id>
<channel>sms</channel>
<phone>+79000000000</phone>
</subscription>
</subscription>
</data>
</xml>
Форматы значений дополнительных полей
В зависимости от типа дополнительного поля, значение может передаваться в разных форматах:
| Тип поля | Формат значения | Пример |
|---|---|---|
| Теги | Массив строк или строка, в которой теги разделены запятой. | Массив:["tag_1", "tag_2", "tag_3"]Строка: "tag_1, tag_2, tag_3" |
| Строка | Строковое значение. Числовые и логические значения автоматически конвертируются в строку | "some value" |
| Число | Число или строка с числом | 42 или "42" |
| Дробное число | Число или строка с числом | 3.14 |
| Логическое | Boolean-значение | true или false |
| Список | Строка (название варианта из списка) или число (порядковый номер варианта, начиная с 1) | "Вариант 1" или 1 |
| Дата | Строка в формате | "2025-01-15" или 1736899200 |
| Дата/время | Unix timestamp (число) или строка в формате ISO 8601 | 1736935800 или "2025-01-15T10:30:00Z" |
| Объект | JSON-объект | {"key": "value"} |
Импорт профиля с добавлением подписок на различные каналы
- JSON
- XML
{
"db_id": 1,
"matching": "email",
"email": "example@example.com",
"detect_geo": true,
"data": {
"_fname": "Olly",
"_lname": "Lambert",
"email": "example@example.com",
"subscriptions": [
{
"resource_id": 1,
"channel": "email",
"email": "example@example.com"
},
{
"resource_id": 2,
"channel": "sms",
"phone": "+79000000000"
},
{
"resource_id": 1,
"channel": "push",
"subscription_id": "a81c264a938b475",
"provider": "android-firebase",
"custom_fields": {
"_browser_name": "Firefox",
"_device_type": "web",
"custom_field_1": "test value"
},
"cats": [
"category_1",
"category_2"
]
},
{
"resource_id": 1,
"channel": "whatsapp",
"cc_data": {
"phone": "+79000000000"
}
},
{
"resource_id": 1,
"channel": "viber",
"cc_data": {
"phone": "+79000000000"
}
},
{
"resource_id": 1,
"channel": "telegram_bot",
"cc_data": {
"id": 12345
}
},
{
"resource_id": 1,
"channel": "notify",
"cc_data": {
"phone": "+79000000000"
}
}
]
}
}
<xml>
<db_id>1</db_id>
<detect_geo>true</detect_geo>
<email>example@example.com</email>
<matching>email</matching>
<data>
<_fname>Olly</_fname>
<_lname>Lambert</_lname>
<email>example@example.com</email>
<subscriptions>
<resource_id>1</resource_id>
<channel>email</channel>
<email>example@example.com</email>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>sms</channel>
<phone>+79000000000</phone>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>push</channel>
<subscription_id>a81c264a938b475</subscription_id>
<provider>android-firebase</provider>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>whatsapp</channel>
<cc_data>
<phone>+79000000000</phone>
</cc_data>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>viber</channel>
<cc_data>
<phone>+79000000000</phone>
</cc_data>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>telegram_bot</channel>
<cc_data>
<id>12345</id>
</cc_data>
</subscriptions>
<subscriptions>
<resource_id>1</resource_id>
<channel>notify</channel>
<cc_data>
<phone>+79000000000</phone>
</cc_data>
</subscriptions>
</data>
</xml>
Пример ответа
- JSON
- XML
{
"error": 0,
"error_text": "Successful operation",
"profile_id": "54759eb3c090d83494e2d804"
}
<xml>
<error>0</error>
<error_text>Successful operation</error_text>
<profile_id>c1are24fu213lwith21that2axe9<profile_id>
</xml>
Возвращаемые параметры
| Параметр | Тип | Описание |
|---|---|---|
| error | int | Код ошибки |
| error_text | string | Текст ошибки |
| profile_id | string | Идентификатор профиля |
*Организация Meta, которой принадлежат продукты Instagram, Facebook и WhatsApp, признана экстремистской и запрещена на территории РФ.