Skip to main content

Bulk profiles import + trigger campaign launch

Description

Add or update multiple profiles and then send a trigger campaign.

This request is a batch version of the Profile import + trigger campaign launch request.

note

The request body size is limited by default to 10 Mb, exception for files — 100 Mb.

Request URL

Method: POST

http://example.com/api/v1.1/campaigns/triggers/import_and_start_batch

Request parameters

ParametersTypeExampleRequiredDescription
Profile import
tokenstring"abcdefghijklmnqrstuvwxyz"YesAPI token
dataJSON object
[
   {
      "data": {
         "_fname": "John",
         "_lname": "Lambert",
         "email": "profile4@example.com",
         "phones": "+790000000000"
      }
   },
   {
      "data": {
         "_fname": "Tom",
         "_lname": "Hard",
         "email": "profile3@example.com",
         "phones": "+790000000001"
      }
   }
]
YesProfile fields data
skip_triggersbooltrueNoSkip trigger events.
By default – false
skip_invalid_subscriptionsbooltrueNoSkip invalid subscriptions
By default – false
detect_geobooltrueNoDetect location by _regip or _ip from data object
Profile matching mode
matchingstring

"email"
"email_profile"
"phone"
"profile_id"
"custom"

No, if matched by email from profile or subscriptionsProfile matching mode
By default - email
emailstring"john@example.com""matching":"email" - both profile data and subscriptions

"matching":"email_profile" - profile data only
Email address
phonestring"+79000000000""matching":"phone"Phone number
profile_idstring"abcdefghijklmnqrstuvwxyz""matching":"profile_id"Profile ID
field_namestring"CRM_ID""matching":"custom"Custom profile data field name
field_valueint/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_idint24NoResource ID for email and phone matching
Trigger launch
trigger_idint13YesTrigger campaign ID
timeoutJSON object
{
"days": 0,
"hours": 0,
"minutes": 5
}
NoTrigger start timeout. Specify the days, hours, and minutes to set the timeout period.
custom_dataJSON object
{
"sending_time": "12:31:12"
}
NoAdd 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.
contentJSON object
{
"page": "registration_form"
}
NoData you can use in a message template using {apicontent.fieldname} variable
attachJSON objects array
{
"data": "data:text/csv;base64,SEVMTE8K",
"name": "Attach.txt"
}
NoA file you can attach to an Email message

Response parameters

ParameterTypeDescription
error_textstringError text
errorintError code
resultarrayIDs of successfully imported profiles

Request example (matching by email)

{
"token": "abcdefghijklmnqrstuvwxyz",
"trigger_id": 8,
"format": "json",
"skip_triggers": false,
"detect_geo": true,
"matching": "email",
"timeout": {
"days": 0,
"hours": 0,
"minutes": 5
},
"data": [
{
"data": {
"_fname": "John",
"_lname": "Lambert",
"email": "profile4@example.com",
"phones": "+790000000000"
}
},
{
"data" : {
"_fname": "Tom",
"_lname": "Hard",
"email": "profile3@example.com",
"phones": "+790000000001"
}
}
]
}

Request example (matching by custom field)

{
"token": "abcdefghijklmnqrstuvwxyz",
"trigger_id": 455,
"format": "json",
"skip_triggers": false,
"detect_geo": true,
"matching": "custom",
"field_name": "New_field_1",
"data": [
{
"data": {
"_fname": "NUMBER1",
"_lname": "Lambert",
"email": "profile01@example.com",
"phones": "+790000000000",
"New_field_1" : "0002"
}
},
{
"data" : {
"_fname": "NUMBER2",
"_lname": "Hard",
"email": "profile02@example.com",
"phones": "+790000000001",
"New_field_1" : "0001"
}
}
]
}

Response example

{
"error": 0,
"error_text": "Successful operation",
"result": [
{
"profile_id": "602103d65ae47a3bc65d5d83"
},
{
"profile_id": "601ec71c5ae47a15d1c9b472"
}
]
}

Response example when a request constraint is triggered

{
"error":400,
"error_debug":"http: request body too large",
"error_text":"Invalid request"
}