Page tree
Skip to end of metadata
Go to start of metadata

Description

Combining multiple profiles into a new profile or existing one.

  • The profiles generated by merging are not imports. Import trigger does not work on them.
  • Email: localhost - as an absent field, it is created if necessary and is not copied to another profile.
  • Not localhost email is copied like any other field, but in order to avoid any conflicts, it disappears from the source profile, changes to empty (that is, localhost).

URL

Method: POST

https://example.com/api/v1.1/profiles/merge

Request parameters

ParameterTypeExampleRequiredDescription
tokenstring"abcdefghijklmnqrstuvwxyz"YesAPI token
dataJSON object
"data": {
    "_fname": "John",
    "_lname": "Doe"
}
No

Profile data that will change after merging

db_idint1YesDatabase ID
skip_triggersbooltrueNoSkip trigger events
By default – false
sourcearray
"source": [
	{
		"db_id": 1,
		"email": "test1@mail.ru"
	},
	{
		"db_id": 2,
		"email": "test2@mail.ru"
	}
]
YesContains matching data about the profiles to be merged
destination

JSON object

"destination": {
		"db_id": 3,
		"email": "test3@mail.ru"
	}
Yes

Contains the matching data of the profile resulting from the merge

matchingstring

"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 from the profile or subscriptions

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.

field_name

stringcustom_ID

Yes, if

"matching": "custom"

Name of custom database field if matching : custom. In the data collection form, a field with the same name is required for search.

field_valueint/stringcustom_string

Yes, if

"matching": "custom"

Value of custom database field if matching : custom.
subscriptions


booltrueNo

Copy and merge subscriptions

By default – true

historybooltrueNo

Copy history and activity flags

By default – true

static_segments


booltrueNo

Whether to make changes to static segments or not (source-profiles will leave the segments, and destination-profile will enter)

By default – true

overwritebooltrueNo

Whether to copy the fields of source profiles or not

If the destination profile has empty fields, in any case, these fields will be filled with the profile fields the priority of which is the highest.

deletebooltrueNoWhether to remove source profiles after merging or not

Copying profile fields

moving(1).png

Request example

{
	"matching": "custom",
	"field_name": "field_1",
	"source": [
		{
			"db_id": 1,
			"field_value": "1",
			"data": {
				"_fname": "Profile1",
				"_lname": "LnameProfile1"
			}
		},
		{
			"db_id": 1,	
			"matching": "email",
			"email": "test2@mail.ru",
			"data": {
				"_fname": "Profile2",
				"_lname": "LnameProfile2"
			}
		}
	],
	"destination": {
		"db_id": 2,
		"matching": "email",
		"email": "test3@mail.ru",
		"data": {
			"_fname": "Profile3",
			"_lname": "LnameProfile3"
		}
	},
	"subscriptions": true,
	"static_segments": true,
	"history": false,
	"token": "abcdefghijklmnqrstuvwxyz"
}

Response example

{
	"destination_id": {
		"db_id": 2,
		"profile_id": "60a7855930b8bc8535b2acfb"
	},
	"error": 0,
	"error_text": "",
	"source_ids": [
		{
			"db_id": 1,
			"profile_id": "60a7839330b8bc86a5bc5f62"
		},
		{
			"db_id": 1,
			"profile_id": "60a7845230b8bc8535b2acf7"
		}
	]
}

Response parameters

ParameterTypeDescription
destination_idJSON object

Contains data about the profile resulting from the merge:

db_id - database ID

profile_id - profile ID

source_idsJSON object

Contains data about merged profiles as a list:

db_id - database ID

profile_id - profile ID

errorintError code
error_textstringError text
  • No labels