Batch import and engage profiles in a scenario
Description
The request allows you to import multiple profiles and immediately send them to a scenario. It is a batch version of the request Import and engage profile in scenario.
note
The request body is limited by default to 10MB, exception: files – 100MB
It is not recommended to transfer more than 10,000 profiles in one request.
URL
Method: POST
https://example.com/api/v1.1/workflows/import_and_start_batch
Request parameters
Parameter | Type | Example | Required | Description |
---|---|---|---|---|
token | string | "abcdefghijklmnqrstuvwxyz" | Yes | API token |
format | string | "json" | No | Data format (by default - "json") |
workflow_id | Int | 1 | Yes | Workflow identifier |
matching | String | "email" | Yes | Profile matching mode. By default – email. |
profile_id | String | "5f19953a03e4227216278ba4" | "matching":"profile_id" | Profile identifier |
String | "importStart9219@example.com" | "matching":"email" - from profile or subscriptions "matching":"email_profile" - only from profile | ||
phone | String | "+79001234567" | "matching":"phone" | Phone number |
field_name | String | "CRM_ID" | "matching":"custom" | The name of the custom profile field for search. |
field_value | Any | "12345" | "matching":"custom" | The value of the custom profile field for search. Search by combination of tags is available. Values are recorded as a string: "tag-1, tag-2". |
data | Object | { | No | Profile data, including subscriptions |
skip_triggers | Bool | true | No | Skip triggers and workflows activated by import and update actions By default – false |
skip_invalid_subscriptions | Bool | true | No | Skip invalid subscriptions By default – false |
detect_geo | Bool | true | No | Detect geolocation by IP (it is detected by data from the fields _regip or _ip ) |
content | Object | "content":{ | No | Additional data to be used in the message template as {apicontent.fieldname} variable. The variable can be used in the "API call" and "API content filter" nodes |
custom_data | JSON object | "custom_data": { | No | Add some data to be used in Action hooks. The parameter can be passed either at the root of the request or separately in each data object. |
attach | array of {name, flie_key, data, mimetype} | No | File to attach to an Email message (only for Email triggers) | |
custom_request | JSON object | If there is no "matching" property | MongoDB query on profile fields |
Response parameters
Parameter | Type | Description |
---|---|---|
error_text | string | Error text |
error | int | Error code |
result | array | List of identifiers of imported profiles |
Request example – "matching":"email"
{
"token": "abcdefghijklmnqrstuvwxyz",
"workflow_id": 2,
"matching": "email",
"data": [
{
"data": {
"_fname": "Herbert",
"_lname": "Lambert",
"email": "profile5@example.com",
"phones": "+790000000000"
}
},
{
"data": {
"_fname": "Bert",
"_lname": "Lambert",
"email": "profile8@example.com",
"phones": "+790000000000"
}
}
]
}
Request example – "matching":"custom"
{
"token": "abcdefghijklmnqrstuvwxyz",
"workflow_id": 233,
"matching": "custom",
"field_name": "New_field_1",
"data": [
{
"data": {
"_fname": "NUMBER15",
"_lname": "Lambert",
"email": "profile015@example.com",
"phones": "+790000000015",
"New_field_1": "00015"
}
},
{
"data": {
"_fname": "NUMBER16",
"_lname": "Lambert",
"email": "profile016@example.com",
"phones": "+790000000016",
"New_field_1": "00016"
}
}
]
}
Response example
{
"error": 0,
"error_text": "Successful operation",
"result": [
{
"profile_id": "65c4fcaf2847a60f44c98e0e"
},
{
"profile_id": "65c4fcb02847a60f44c98e12"
}
]
}
Response example when a request limitation is triggered
{
"error": 400,
"error_debug": "http: request body too large",
"error_text": "Invalid request"
}