Update multiple profiles
Description
Updates (only) multiple profiles to or in a database.
If you pass the status and priority parameters of the subscriptions object with a value of 0, then the value is taken into account.
In order not to change or update the values of these parameters, do not pass them, or set the values to -1.
In one request it is not recommended:
- transfer more than 10,000 profiles;
- transfer more than 10 MB of data. It is possible totransfer more data using multiple streams.
Request URL
Method: POST
https://example.com/api/v1.1/profiles/update_batch
Request parameters
| Parameter | Type | Example | Required | Description |
|---|---|---|---|---|
| token | string | "abcdefghijklmnqrstuvwxyz" | Yes | API token |
| data | JSON array |
| Yes | Profile fields data |
| db_id | int | 1 | Yes | Database ID |
| skip_invalid_subscriptions | bool | true | No | Skip invalid subscriptions. By default – false |
| Profile matching mode | ||||
| matching | string | "email" "email_profile" "email_sub" "phone" "phone_sub" "profile_id" "push_sub" "custom" "custom_sub" "email_phone" "email_phone_sub" | No, if matched by email | Profile matching mode By default - email For each type of matching, certain fields must be passed in the request body. Learn more about these fields here. |
| string | "john@example.com" | "matching":"email" | Email address | |
| phone | string | "+79000000000" | "matching":"phone" | Phone number |
| profile_id | string | "abcdefghijklmnqrstuvwxyz" | "matching":"profile_id" | Profile ID |
| field_name | string | "CRM_ID" | "matching":"custom" | Custom profile data field name |
| field_value | int/string | "123420" | "matching":"custom" | Custom profile data field value. tip Searching by combination of tags is available for tag type profile fields. Values are recorded as a string: "tag-1, tag-2". |
| resource_id | int | 24 | No | Resource ID for email and phone matching |
Subscriptions array
The subscriptions array stores data about the profile's subscriptions to resources. One object is one subscription.
| Parameter | Type | Example | Description |
|---|---|---|---|
| resource_id | int | 1 | Resource ID |
| status | string | "subscribed" | Subscription status It is recommended to pass the parameter in the request only in cases where it is necessary to update the subscription status. |
| priority | int | 1 | Subscription priority |
| custom_fields | object | { | System and custom subscription fields. You can get information about available subscription fields in a resource using the /v1.1/resources/fields_get method |
| cats | array | [ | Resource categories to which to subscribe the profile. |
| Email channel | |||
| channel | string | "email" | Channel type |
| string | "john@example.com" | ||
| SMS channel | |||
| channel | string | "sms" | Channel type |
| phone | string | "+79000000000" | Phone number |
| Push channel | |||
| channel | string | "push" | Channel type |
| provider | string | "Firefox" | Provider type |
| subscription_id | string | "abcdefghijklmnqrstuvwxyz" | Subscription ID |
| Telegram Bot channel | |||
| channel | string | "telegram_bot" | Channel type |
| cc_data | object | { | Telegram Bot chat ID |
| WhatsApp* channel | |||
| channel | string | "whatsapp" | Channel type |
| cc_data | object | { | Profile phone number on WhatsApp* |
| Viber channel | |||
| channel | string | "viber" | Channel type |
| cc_data | object | { | Profile phone number on Viber |
Request example
- JSON
- XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"db_id": 1,
"matching": "custom",
"field_name": "Custom_ID",
"skip_triggers": true,
"data": [
{
"_fname": "Lala",
"_lname": "Doe",
"Custom_ID": 77,
"email": "example@example.com",
"subscriptions": [
{
"channel": "email",
"email_data": {
"email": "example@example.com"
},
"resource_id": 28,
"custom_fields": {
"custom_field": "test value"
},
"cats": [
"category_1",
"category_2"
]
}
]
},
{
"_fname": "Victor",
"Custom_ID": 88,
"email": "example@example.com"
}
]
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<db_id>1</db_id>
<matching>custom</matching>
<field_name>Custom_ID</field_name>
<skip_triggers>true</skip_triggers>
<data>
<_fname>Lala</_fname>
<_lname>Doe</_lname>
<Custom_ID>77</Custom_ID>
<email>example@example.com</email>
<subscriptions array='true'>
<channel>email</channel>
<email_data>
<email>example@example.com</email>
</email_data>
<resource_id>28</resource_id>
<custom_fields>
<custom_field>test value</custom_field>
</custom_fields>
<cats>category_1</cats>
<cats>category_2</cats>
</subscriptions>
</data>
<data>
<_fname>Alex</_fname>
<Custom_ID>345</Custom_ID>
<email>example@example.com</email>
</data>
</xml>
Response example
- JSON
- XML
{
"error": 0,
"error_text": "Successful operation",
"result": [
{
"error": 0,
"error_text": "Successful operation",
"profile_id": "abcdefghijklmnqrstuvwxyz"
},
{
"error": 0,
"error_text": "Successful operation",
"profile_id": "abcdefghijklmnqrstuvwzzz"
}
]
}
<xml>
<error>0</error>
<error_text>Successful operation</error_text>
<result>
<error>0</error>
<error_text>Successful operation</error_text>
<profile_id>abcdefghijklmnqrstuvwxyz</profile_id>
</result>
<result>
<error>0</error>
<error_text>Successful operation</error_text>
<profile_id>abcdefghijklmnqrstuvwzzz</profile_id>
</result>
</xml>
Response parameters
| Parameter | Type | Description |
|---|---|---|
| error | int | Error code |
| error_text | string | Error text |
| profile_id | string | Profile ID |
*The Meta organization, which owns Instagram, Facebook and WhatsApp products, has been declared as extremist and banned in Russia.