curl --request POST \
--url https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge \
--header 'Content-Type: application/json' \
--header 'api-access-token: <api-key>' \
--data '
{
"base_contact_id": 1,
"mergee_contact_id": 2
}
'import requests
url = "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge"
payload = {
"base_contact_id": 1,
"mergee_contact_id": 2
}
headers = {
"api-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({base_contact_id: 1, mergee_contact_id: 2})
};
fetch('https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_contact_id' => 1,
'mergee_contact_id' => 2
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge"
payload := strings.NewReader("{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge")
.header("api-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"payload": [
{
"additional_attributes": {},
"availability_status": "<string>",
"email": "<string>",
"id": 123,
"name": "<string>",
"phone_number": "<string>",
"blocked": true,
"identifier": "<string>",
"thumbnail": "<string>",
"custom_attributes": {
"attribute_key": "attribute_value",
"signed_up_at": "dd/mm/yyyy"
},
"last_activity_at": 123,
"created_at": 123,
"contact_inboxes": [
{
"source_id": "<string>",
"inbox": {
"id": 123,
"avatar_url": "<string>",
"channel_id": 123,
"name": "<string>",
"channel_type": "<string>",
"provider": "<string>"
}
}
]
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}Merge Contacts
Merge two contacts into a single contact. The base contact remains and receives all data from the mergee contact. After the merge, the mergee contact is permanently deleted.
This action is irreversible. All conversations, labels, and custom attributes from the mergee contact will be moved to the base contact.
curl --request POST \
--url https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge \
--header 'Content-Type: application/json' \
--header 'api-access-token: <api-key>' \
--data '
{
"base_contact_id": 1,
"mergee_contact_id": 2
}
'import requests
url = "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge"
payload = {
"base_contact_id": 1,
"mergee_contact_id": 2
}
headers = {
"api-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({base_contact_id: 1, mergee_contact_id: 2})
};
fetch('https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_contact_id' => 1,
'mergee_contact_id' => 2
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge"
payload := strings.NewReader("{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge")
.header("api-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://chat.domix.ai/api/v1/accounts/{account_id}/actions/contact_merge")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_contact_id\": 1,\n \"mergee_contact_id\": 2\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"payload": [
{
"additional_attributes": {},
"availability_status": "<string>",
"email": "<string>",
"id": 123,
"name": "<string>",
"phone_number": "<string>",
"blocked": true,
"identifier": "<string>",
"thumbnail": "<string>",
"custom_attributes": {
"attribute_key": "attribute_value",
"signed_up_at": "dd/mm/yyyy"
},
"last_activity_at": 123,
"created_at": 123,
"contact_inboxes": [
{
"source_id": "<string>",
"inbox": {
"id": 123,
"avatar_url": "<string>",
"channel_id": 123,
"name": "<string>",
"channel_type": "<string>",
"provider": "<string>"
}
}
]
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}Authorizations
This token can be obtained by visiting the profile page or via rails console. Provides access to endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user.
Path Parameters
The numeric ID of the account
Body
Response
Contacts merged successfully
Hide child attributes
Hide child attributes
The object containing additional attributes related to the contact
The availability status of the contact
The email address of the contact
The ID of the contact
The name of the contact
The phone number of the contact
Whether the contact is blocked
The identifier of the contact
The thumbnail of the contact
The custom attributes of the contact
{
"attribute_key": "attribute_value",
"signed_up_at": "dd/mm/yyyy"
}
The last activity at of the contact
The created at of the contact
Hide child attributes
Hide child attributes
Contact Inbox Source Id
Hide child attributes
Hide child attributes
ID of the inbox
The avatar image of the inbox
The ID of the channel
The name of the inbox
The type of the inbox
The provider of the inbox