Задание на массовый импорт профилей + отправка триггера
Описание
Добавление или обновление нескольких профилей с последующей отправкой триггерной кампании.
Данный запрос является batch-версией запроса Импорт профиля + Отправка триггера.
Возвращает ответ с id таска, не дожидаясь выполнения.
примечание
Тело запроса ограничено по умолчанию до 10мб, исключение: файлы — 100мб.
URL-адрес
Метод: POST
http://example.com/api/v1.1/campaigns/triggers/import_and_start_batch_task
Параметры запроса
Параметр | Тип | Пример | Обязательный | Описание |
---|---|---|---|---|
Импорт профиля клиента | ||||
token | string | "abcdefghijklmnqrstuvwxyz" | Да | API токен |
data | array | [ | нет | Данные о профиле, в том числе подписки. Каждый профиль — это отдельный JSON-объект "data". |
skip_triggers | bool | true | Нет | Пропустить запуск триггеров. По умолчанию – false. |
skip_invalid_subscriptions | bool | true | Нет | Пропустить невалидные подписки. По умолчанию – false. |
detect_geo | bool | true | Нет | Включает автоопределение geo данных по полю _regip или _ip в data |
Настройки поиска профиля | ||||
matching | string | "email" "email_profile" "phone" "profile_id" "custom" | Нет, если поиск по email из профиля или подписок | Режим поиска подписчика. по умолчанию - email. |
string | "john@example.com" | "matching":"email" - по профилю и подпискам "matching":"email_profile" - только по профилю | Email-адрес | |
phone | string | "+79000000000" | "matching":"phone" | Номер телефона |
profile_id | string | "abcdefghijklmnqrstuvwxyz" | "matching":"profile_id" | И дентификатор профиля |
field_name | string | "CRM_ID" | "matching":"custom" | Название кастомного поля профиля для поиска. |
field_value | int/string | "12345" | "matching":"custom" | Значение кастомного поля для поиска. подсказка Доступен поиск по сочетанию значений поля с типом "теги". Теги передаются в строке черз запятую: "тег_1, тег_2". |
resource_id | int | 24 | Да | Идентификатор ресурса для поиска по email и phone |
Запуск триггера | ||||
trigger_id | int | 13 | Да | Идентификатор триггерной кампании для запуска |
timeout | JSON object |
| Нет | Задержка перед запуском триггера. Указываются дни, часы и минуты. |
custom_data | JSON object |
| Нет | Данные для Захвата событий (Action hooks) |
content | JSON object |
| Нет | Дополнительные данные для подстановки в шаблон сообщения переменной {apicontent.fieldname} |
attach | JSON objects array |
| Нет | Файл для прикрепления к email сообщению (только для email триггеров) |
Возвращаемые параметры
Параметр | Тип | Описание |
---|---|---|
error_text | string | Текст ошибки |
error | int | Код ошибки |
task_id | string | Идентификатор задачи |
Пример запроса с матчингом по email
- JSON
- XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"matching": "email",
"data": [
{
"data": {
"_fname": "Victoria",
"_lname": " Beckham",
"email": "example1@yopmail.com",
"phones": "+79000000000",
"subscriptions": [
{
"channel": "email",
"email": "example2@yopmail.com",
"resource_id": 21
},
{
"channel": "phone",
"phone": "+79000005478",
"resource_id": 20
}
]
}
},
{
"data": {
"_fname": "David",
"_lname": " Beckham",
"email": "example3@yopmail.com",
"phones": "+79000000001",
"subscriptions": [
{
"channel": "email",
"email": "example14@yopmail.com",
"resource_id": 21
},
{
"channel": "phone",
"phone": "+79000000000",
"resource_id": 20
}
]
}
}
],
"trigger_id": 96,
"timeout": {
"days": 0,
"hours": 0,
"minutes": 5
},
"content": {
"page": "registration_form"
},
"attach": [
{
"data": "data:text/csv;base64,5LuK5pel44GvCg==",
"name": "Attach.txt"
}
]
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<matching>email</matching>
<data>
<_fname>Brooklyn</_fname>
<_lname>Beckham</_lname>
<email>example3@yopmail.com</email>
<phones>+79000849376</phones>
<subscriptions>
<channel>email</channel>
<email>example9@yopmail.com</email>
<resource_id>21</resource_id>
</subscriptions>
<subscriptions>
<channel>phone</channel>
<phone>+79000005475</phone>
<resource_id>20</resource_id>
</subscriptions>
</data>
<data>
<_fname>Romeo</_fname>
<_lname>Beckham</_lname>
<email>example32@yopmail.com</email>
<phones>+79000000651</phones>
<subscriptions>
<channel>email</channel>
<email>@yopmail.com</email>
<resource_id>21</resource_id>
</subscriptions>
<subscriptions>
<channel>phone</channel>
<phone>+79000880000</phone>
<resource_id>20</resource_id>
</subscriptions>
</data>
<trigger_id>96</trigger_id>
<timeout>
<days>0</days>
<hours>0</hours>
<minutes>5</minutes>
</timeout>
<content>
<page>registration_form</page>
</content>
<attach array='true'>
<data>data:text/csv;base64,5LuK5pel44GvCg==</data>
<name>Attach.txt</name>
</attach>
</xml>
Пример запроса с матчингом по custom-полю
- JSON
- XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"trigger_id": 96,
"format": "json",
"skip_triggers": false,
"detect_geo": true,
"matching": "custom",
"field_name": "Custom_id",
"data": [
{
"data": {
"_fname": "Tom",
"_lname": "Cruise",
"email": "example@example.com",
"phones": "+79000000000",
"Custom_id": "0002"
}
},
{
"data": {
"_fname": "Lili",
"_lname": "Hard",
"email": "example@example.com",
"phones": "+79000000001",
"Custom_id": "0001"
}
}
]
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<trigger_id>96</trigger_id>
<format>xml</format>
<skip_triggers>false</skip_triggers>
<detect_geo>true</detect_geo>
<matching>custom</matching>
<field_name>Custom_ID</field_name>
<data>
<_fname>Viola</_fname>
<_lname>Lambert</_lname>
<email>example1@example.com</email>
<phones>+79000000000</phones>
<Custom_ID>0002</Custom_ID>
</data>
<data>
<_fname>Will</_fname>
<_lname>Hard</_lname>
<email>example2@example.com</email>
<phones>+79000000001</phones>
<Custom_ID>0001</Custom_ID>
</data>
</xml>
Пример ответа
- JSON
- XML
{
"error": 0,
"error_text": "Successful operation",
"task_id": "1c1a5861-6d4c-4d6f-bd6a-3ca4f46b217d"
}
<xml>
<error>0</error>
<error_text>Successful operation</error_text>
<task_id>30421978-7f6d-4f39-913f-fb6cad8e2477</task_id>
</xml>
Пример ответа при срабатывании ограничения запроса
- JSON
- XML
{
"error":400,
"error_debug":"http: request body too large",
"error_text":"Invalid request"
}
<xml>
<error>400</error>
<error_text>Invalid request</error_text>
</xml>
Проверка статуса задания
URL-адрес
Метод: POST
https://example.com/api/v1.1/tasks/status
Параметры запроса
Параметр | Тип | Пример | Обязательный | Описание |
---|---|---|---|---|
token | string | "abcdefghijklmnqrstuvwxyz" | Да | API токен |
task_id | string | "task_b2f9fk6a-2479-4a63-b592-f15d4e3b69c5" | Да | Идентификатор задания |
Пример запроса
- JSON
- XML
{
"token": "abcdefghijklmnqrstuvwxyz",
"task_id": "task_b2f9fk6a-2479-4a63-b592-f15d4e3b69c5"
}
<xml>
<token>abcdefghijklmnqrstuvwxyz</token>
<task_id>d521abe0-1abf-4e1d-b247-a790be66a424</task_id>
</xml>
Пример ответа
- JSON
- XML
{
"data": {
"status": "completed",
"progress": 100,
"result": {
"error": 0,
"error_text": "",
"result": [
{
"profile_id": "61e947333f62fc26d384452c"
},
{
"profile_id": "61e947333f62fc26d384452e"
}
]
}
},
"error": 0,
"error_text": "Successful operation"
}
<xml>
<data>
<progress>100</progress>
<result>
<captured>0</captured>
<errors/>
<status>ok</status>
</result>
<status>completed</status>
</data>
<error>0</error>
<error_text>Successful operation</error_text>
</xml>