GrowthHub API 2.0

Upsert Contact

https://services.leadconnectorhq.com/contacts/upsert

Please find the list of acceptable values for the country field here

The GrowthHub Upsert API follows the configuration set under the “Allow Duplicate Contact” setting at the Location level.

If the setting is configured to check both Email and Phone, GrowthHub will attempt to identify an existing contact based on the priority sequence defined in the configuration, then create or update the contact accordingly.

If two separate contacts already exist, one matching the same email and another matching the same phone, and an upsert request includes both fields, GrowthHub will:

- Update the contact that matches the first field in the configured priority sequence

- Ignore the second field to prevent duplicate records

Requirements

Scope(s)

contacts.write

Auth Method(s)

OAuth Access Token

Private Integration Token

Token Type(s)

Sub-Account Token

Authorization: Authorization

name: Authorization

type: http

scopes: contacts.write

scheme: bearer

bearerFormat: JWT

in: header

description: Use the Access Token generated with user type as Sub-Account (OR) Private Integration Token of Sub-Account.

curl -L 'https://services.leadconnectorhq.com/contacts/:contactId' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>'
const { GrowthHub } = require('@growthhub/api-client');

const growthhub = new GrowthHub({
  clientId: 'your_client_id_here',
  clientSecret: 'your_client_secret_here',
});

try {
  const response = await growthhub.contacts.getContact({
    contactId: 'ocQHyuzHvysMo5N5VsXc'
  });
  console.log(response);
} catch (error) {
  console.error('Error:', error);
}
const axios = require('axios');

let config = {
  method: 'get',
  url: 'https://services.leadconnectorhq.com/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

axios.request(config)
.then(res => console.log(res.data))
.catch(err => console.log(err));
var https = require('follow-redirects').https;

var options = {
  method: 'GET',
  hostname: 'services.leadconnectorhq.com',
  path: '/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

var req = https.request(options, function (res) {
  var chunks = [];
  res.on("data", chunk => chunks.push(chunk));
  res.on("end", () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var request = require('request');

var options = {
  method: 'GET',
  url: 'https://services.leadconnectorhq.com/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
var unirest = require('unirest');

var req = unirest('GET', 'https://services.leadconnectorhq.com/contacts/:contactId')
.headers({
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
})
.end(function (res) {
  if (res.error) throw new Error(res.error);
  console.log(res.raw_body);
});
import http.client

conn = http.client.HTTPSConnection("services.leadconnectorhq.com")

headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
}

conn.request("GET", "/contacts/:contactId", '', headers)
res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import requests

url = "https://services.leadconnectorhq.com/contacts/:contactId"

payload = {}
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://services.leadconnectorhq.com/contacts/:contactId',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer <TOKEN>'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
<?php
$client = new Client();
$headers = [
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <TOKEN>'
];
$request = new Request('GET', 'https://services.leadconnectorhq.com/contacts/:contactId', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
$request = new HTTP_Request2();
$request->setUrl('https://services.leadconnectorhq.com/contacts/:contactId');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader([
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <TOKEN>'
]);
$response = $request->send();
echo $response->getBody();
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://services.leadconnectorhq.com/contacts/:contactId');
$request->setRequestMethod('GET');
$request->setHeaders([
  'Accept' => 'application/json',
  'Authorization': 'Bearer <TOKEN>'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://services.leadconnectorhq.com/contacts/:contactId")
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer <TOKEN>")
  .build();
Response response = client.newCall(request).execute();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://services.leadconnectorhq.com/contacts/:contactId")
  .header("Accept", "application/json")
  .header("Authorization", "Bearer <TOKEN>")
  .asString();
package main
import (
  "fmt"
  "net/http"
  "io"
)
func main() {
  req, _ := http.NewRequest("GET", "https://services.leadconnectorhq.com/contacts/:contactId", nil)
  req.Header.Add("Authorization", "Bearer <TOKEN>")
  res, _ := http.DefaultClient.Do(req)
  body, _ := io.ReadAll(res.Body)
  fmt.Println(string(body))
}
require "uri"
require "net/http"
url = URI("https://services.leadconnectorhq.com/contacts/:contactId")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = "application/json"
request["Authorization"] = "Bearer <TOKEN>"
response = https.request(request)
puts response.read_body
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Accept", "application/json")
$headers.Add("Authorization", "Bearer <TOKEN>")
$response = Invoke-RestMethod 'https://services.leadconnectorhq.com/contacts/:contactId' -Method 'GET' -Headers $headers
$response | ConvertTo-Json

Response

Click the Send API Request button above and see the response here!

REQUEST
▾ Base URL

https://services.leadconnectorhq.com

▾ Auth
▾ Parameters
⚠ This field is required
▾ Body REQUIRED
{
  "firstName": "rosan",
  "lastName": "Deo",
  "name": "rosan Deo",
  "email": "[email protected]",
  "phone": "+1 888-888-8888",
  "address1": "3535 1st St N",
  "city": "Dolomite",
  "state": "AL",
  "postalCode": "35061",
  "website": "https://www.tesla.com",
  "timezone": "America/Chihuahua",
  "dnd": true,
  "dndSettings": {
    "Call": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "Email": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "SMS": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "WhatsApp": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "GMB": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "FB": {
      "status": "active",
      "message": "string",
      "code": "string"
    }
  },
  "inboundDndSettings": {
    "all": {
      "status": "active",
      "message": "string"
    }
  },
  "tags": [
    "nisi sint commodo amet",
    "consequat"
  ],
  "customFields": [
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Text"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Text"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Selected Option"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Selected Option"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": 100
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": 100.5
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": [
        "test",
        "test2"
      ]
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": [
        "test",
        "test2"
      ]
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": {
        "f31175d4-2b06-4fc6-b7bc-74cd814c68cb": {
          "meta": {
            "fieldname": "1HeGizb13P0odwgOgKSs",
            "originalname": "IMG_20231215_164412935.jpg",
            "encoding": "7bit",
            "mimetype": "image/jpeg",
            "size": 1786611,
            "uuid": "f31175d4-2b06-4fc6-b7bc-74cd814c68cb"
          },
          "url": "https://services.leadconnectorhq.com/documents/download/w2M9qTZ0ZJz8rGt02jdJ",
          "documentId": "w2M9qTZ0ZJz8rGt02jdJ"
        }
      }
    }
  ],
  "source": "public api",
  "dateOfBirth": "1990-09-25",
  "country": "US",
  "assignedTo": "y0BeYjuRIlDwsDcOHOJo"
}

Upsert Contact

https://services.leadconnectorhq.com/contacts/upsert

Please find the list of acceptable values for the country field here

The GrowthHub Upsert API follows the configuration set under the “Allow Duplicate Contact” setting at the Location level.

If the setting is configured to check both Email and Phone, GrowthHub will attempt to identify an existing contact based on the priority sequence defined in the configuration, then create or update the contact accordingly.

If two separate contacts already exist, one matching the same email and another matching the same phone, and an upsert request includes both fields, GrowthHub will:

- Update the contact that matches the first field in the configured priority sequence

- Ignore the second field to prevent duplicate records

Requirements

Scope(s)

contacts.write

Auth Method(s)

OAuth Access Token

Private Integration Token

Token Type(s)

Sub-Account Token

Authorization: Authorization

name: Authorization

type: http

scopes: contacts.write

scheme: bearer

bearerFormat: JWT

in: header

description: Use the Access Token generated with user type as Sub-Account (OR) Private Integration Token of Sub-Account.

curl -L 'https://services.leadconnectorhq.com/contacts/:contactId' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>'
const { GrowthHub } = require('@growthhub/api-client');

const growthhub = new GrowthHub({
  clientId: 'your_client_id_here',
  clientSecret: 'your_client_secret_here',
});

try {
  const response = await growthhub.contacts.getContact({
    contactId: 'ocQHyuzHvysMo5N5VsXc'
  });
  console.log(response);
} catch (error) {
  console.error('Error:', error);
}
const axios = require('axios');

let config = {
  method: 'get',
  url: 'https://services.leadconnectorhq.com/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

axios.request(config)
.then(res => console.log(res.data))
.catch(err => console.log(err));
var https = require('follow-redirects').https;

var options = {
  method: 'GET',
  hostname: 'services.leadconnectorhq.com',
  path: '/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

var req = https.request(options, function (res) {
  var chunks = [];
  res.on("data", chunk => chunks.push(chunk));
  res.on("end", () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var request = require('request');

var options = {
  method: 'GET',
  url: 'https://services.leadconnectorhq.com/contacts/:contactId',
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer <TOKEN>'
  }
};

request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
var unirest = require('unirest');

var req = unirest('GET', 'https://services.leadconnectorhq.com/contacts/:contactId')
.headers({
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
})
.end(function (res) {
  if (res.error) throw new Error(res.error);
  console.log(res.raw_body);
});
import http.client

conn = http.client.HTTPSConnection("services.leadconnectorhq.com")

headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
}

conn.request("GET", "/contacts/:contactId", '', headers)
res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
import requests

url = "https://services.leadconnectorhq.com/contacts/:contactId"

payload = {}
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <TOKEN>'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://services.leadconnectorhq.com/contacts/:contactId',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer <TOKEN>'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
<?php
$client = new Client();
$headers = [
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <TOKEN>'
];
$request = new Request('GET', 'https://services.leadconnectorhq.com/contacts/:contactId', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
$request = new HTTP_Request2();
$request->setUrl('https://services.leadconnectorhq.com/contacts/:contactId');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader([
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <TOKEN>'
]);
$response = $request->send();
echo $response->getBody();
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://services.leadconnectorhq.com/contacts/:contactId');
$request->setRequestMethod('GET');
$request->setHeaders([
  'Accept' => 'application/json',
  'Authorization': 'Bearer <TOKEN>'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://services.leadconnectorhq.com/contacts/:contactId")
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer <TOKEN>")
  .build();
Response response = client.newCall(request).execute();
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://services.leadconnectorhq.com/contacts/:contactId")
  .header("Accept", "application/json")
  .header("Authorization", "Bearer <TOKEN>")
  .asString();
package main
import (
  "fmt"
  "net/http"
  "io"
)
func main() {
  req, _ := http.NewRequest("GET", "https://services.leadconnectorhq.com/contacts/:contactId", nil)
  req.Header.Add("Authorization", "Bearer <TOKEN>")
  res, _ := http.DefaultClient.Do(req)
  body, _ := io.ReadAll(res.Body)
  fmt.Println(string(body))
}
require "uri"
require "net/http"
url = URI("https://services.leadconnectorhq.com/contacts/:contactId")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = "application/json"
request["Authorization"] = "Bearer <TOKEN>"
response = https.request(request)
puts response.read_body
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Accept", "application/json")
$headers.Add("Authorization", "Bearer <TOKEN>")
$response = Invoke-RestMethod 'https://services.leadconnectorhq.com/contacts/:contactId' -Method 'GET' -Headers $headers
$response | ConvertTo-Json

Response

Click the Send API Request button above and see the response here!

REQUEST
▾ Base URL

https://services.leadconnectorhq.com

▾ Auth
▾ Parameters
⚠ This field is required
▾ Body REQUIRED
{
  "firstName": "rosan",
  "lastName": "Deo",
  "name": "rosan Deo",
  "email": "[email protected]",
  "phone": "+1 888-888-8888",
  "address1": "3535 1st St N",
  "city": "Dolomite",
  "state": "AL",
  "postalCode": "35061",
  "website": "https://www.tesla.com",
  "timezone": "America/Chihuahua",
  "dnd": true,
  "dndSettings": {
    "Call": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "Email": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "SMS": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "WhatsApp": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "GMB": {
      "status": "active",
      "message": "string",
      "code": "string"
    },
    "FB": {
      "status": "active",
      "message": "string",
      "code": "string"
    }
  },
  "inboundDndSettings": {
    "all": {
      "status": "active",
      "message": "string"
    }
  },
  "tags": [
    "nisi sint commodo amet",
    "consequat"
  ],
  "customFields": [
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Text"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Text"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Selected Option"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": "My Selected Option"
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": 100
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": 100.5
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": [
        "test",
        "test2"
      ]
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": [
        "test",
        "test2"
      ]
    },
    {
      "id": "6dvNaf7VhkQ9snc5vnjJ",
      "key": "my_custom_field",
      "field_value": {
        "f31175d4-2b06-4fc6-b7bc-74cd814c68cb": {
          "meta": {
            "fieldname": "1HeGizb13P0odwgOgKSs",
            "originalname": "IMG_20231215_164412935.jpg",
            "encoding": "7bit",
            "mimetype": "image/jpeg",
            "size": 1786611,
            "uuid": "f31175d4-2b06-4fc6-b7bc-74cd814c68cb"
          },
          "url": "https://services.leadconnectorhq.com/documents/download/w2M9qTZ0ZJz8rGt02jdJ",
          "documentId": "w2M9qTZ0ZJz8rGt02jdJ"
        }
      }
    }
  ],
  "source": "public api",
  "dateOfBirth": "1990-09-25",
  "country": "US",
  "assignedTo": "y0BeYjuRIlDwsDcOHOJo"
}

Request

▾ HEADER PARAMETERS
▾ Version string REQUIRED

Possible values: 2023-02-21

API Version

▾ BODY REQUIRED
APPLICATION/JSON
▾ firstName string NULLABLE

Example: rosan

▾ lastName string NULLABLE

Example: Deo

▾ name string NULLABLE

Example: rosan Deo

▾ email string NULLABLE
▾ locationId string NULLABLE

Example: ve9EPM428h8vShlRW1KT

▾ gender string NULLABLE

Example: male

▾ phone string NULLABLE

Example: +1 888-888-8888

▾ address1 string NULLABLE

Example: 3535 1st St N

▾ city string NULLABLE

Example: Dolomite

▾ state string NULLABLE

Example: AL

▾ postalCode string NULLABLE

Example: 35061

▾ website string NULLABLE

Example: https://www.tesla.com

▾ timezone string NULLABLE

Example: America/chihuahua

▾ dnd boolean NULLABLE

Example: true

▾ dndSettings object
▾ Call object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ Email object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ SMS object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ WhatsApp object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ GMB object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ FB object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ inboundDndSettings object
▾ all object
▾ status string REQUIRED
Possible values: active, inactive
▾ message string NULLABLE
▾ tags string[]

This field will overwrite all current tags associated with the contact. To update tags, it is recommended to use the Add Tag or Remove Tag API instead.

Example: ["nisi sint commodo amet","consequat"]

▾ customFields object[]

Array of objects

TextField
LargeTextField
SingleSelectField
RadioField
NumericField
MonetaryField
CheckboxField
MultiSelectField
FileField
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string
Example: My Text
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string
Example: My Text
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string
Example: My Selected Option
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string
Example: My Selected Option
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value object
Example: 100
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: price
▾ field_value object
Example: 100.5
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string
Example: ["test","test2"]
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value string[]
Example: ["test","test2"]
▾ id string REQUIRED
Example: 6dvNaf7VhkQ9snc5vnjJ
▾ key string
Example: my_custom_field
▾ field_value object
Example: {"f31175d4-2b06-4fc6-b7bc-74cd814c68cb":{"meta":{"fieldname":"1HeGizb13P0odwgOgKSs","originalname":"IMG_20231215_164412935.jpg","encoding":"7bit","mimetype":"image/jpeg","size":1786611,"uuid":"f31175d4-2b06-4fc6-b7bc-74cd814c68cb"},"url":"https://services.leadconnectorhq.com/documents/download/w2M9qTZ0ZJz8rGt02jdJ","documentId":"w2M9qTZ0ZJz8rGt02jdJ"}}
▾ source string NULLABLE
Example: public api
▾ dateOfBirth object NULLABLE

The birth date of the contact. Supported formats:

YYYY/MM/DD, MM/DD/YYYY, YYYY-MM-DD, MM-DD-YYYY, YYYY.MM.DD, MM.DD.YYYY, YYYY_MM_DD, MM_DD_YYYY

Example: 1990-09-25

▾ country string
Example: US
▾ companyName string
Example: DGS VolMAX
▾ assignedTo string NULLABLE

User's Id

Example: y0BeYjuR1DW5DcOH0Jo

▾ createNewIfDuplicateAllowed boolean NULLABLE

Controls whether to create a new contact or update an existing duplicate. Scenario 1: If this value is true and the location allows duplicate contacts, a new contact will be created immediately without checking for duplicates. Scenario 2: If this value is true but the location does not allow duplicate contacts, this field is ignored and the normal upsert behavior applies: the API will search for an existing duplicate contact, update it if found, or create a new contact if not found. Scenario 3: If this value is false or not provided, the normal upsert behavior applies regardless of the location's duplicate contact setting.

Default value: false

Example: false

Upsert Contact
Responses
200
400
401
422

Successful response

APPLICATION/JSON
schema example (auto)
▾ new boolean
Example: true
▾ contact object
▾ id string
Example: sD4PfOuKoVMLkEZqohJ
▾ name string
Example: rubika deo
▾ locationId string
Example: ve9EPM428h8vShlRW1KT
▾ firstName string
Example: rubika
▾ lastName string
Example: deo
▾ email string
▾ emailLowerCase string
▾ timezone string
Example: Asia/Calcutta
▾ dnd boolean
Example: true
▾ dndSettings object
▾ Call object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ Email object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ SMS object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ WhatsApp object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ GMB object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ FB object
▾ status string REQUIRED
Possible values: active, inactive, permanent
▾ message string NULLABLE
▾ code string NULLABLE
▾ type string
Example: read
▾ source string
Example: public api
▾ assignedTo string
Example: ve9EPM428h8vShlRW1KT
▾ address1 string
Example: 3535 1st St N
▾ city string
Example: rubiontebika
▾ state string
Example: AL
▾ country string
Example: US
▾ postalCode string
Example: 35061
▾ website string
Example: https://www.tesla.com
▾ tags string[]
Example: ["nisi sint commodo amet","consequat"]
▾ dateOfBirth string
Example: YYYY-MM-DD
▾ dateAdded string
Example: 2021-07-03T15:18:26.704Z
▾ dateUpdated string
Example: 2021-07-03T15:18:26.704Z
▾ attachments string
▾ ssn string
▾ keyword string
Example: test
▾ firstNameLowerCase string
Example: rubika
▾ fullNameLowerCase string
Example: rubika deo
▾ lastNameLowerCase string
Example: deo
▾ lastActivity string
Example: 2021-07-16T11:39:30.564Z
▾ customFields object[]
▾ id string
Example: N0aCBi4YMWku64k8pi
▾ value string
Example: name
▾ businessId string

Example: 641c094001436dbc2081e642
▾ attributionSource object
▾ url string REQUIRED
Example: Trigger Link
▾ campaign string NULLABLE
▾ utmSource string NULLABLE
▾ utmMedium string NULLABLE
▾ utmContent string NULLABLE
▾ referrer string NULLABLE
Example: https://www.google.com
▾ campaignId string NULLABLE
▾ fbclid string NULLABLE
▾ gclid string NULLABLE
Example: CjOKCQjwnNyUBhCZARISAI9AYIFtNnIcWcYGIOQINz_ZoFI5SSLRRugSoPZoiEu27IZBYf1-MAIWmEaAo2VEALW_WCB
▾ msclickid string NULLABLE
▾ dclid string NULLABLE
▾ fbc string NULLABLE
▾ fbp string NULLABLE
Example: fb. 1.1674748390986.1171287961
▾ fbEventId string NULLABLE
Example: Mozilla/5.0
▾ userAgent string NULLABLE
Example: Mozilla/5.0
▾ ip string NULLABLE
Example: 58.111.106.198
▾ medium string NULLABLE
Example: survey
▾ mediumId string NULLABLE
Example: FglfHAn30PRwsZVyQlKp
▾ lastAttributionSource object
▾ url string REQUIRED
Example: Trigger Link
▾ campaign string NULLABLE
▾ utmSource string NULLABLE
▾ utmMedium string NULLABLE
▾ utmContent string NULLABLE
▾ referrer string NULLABLE
Example: https://www.google.com
▾ campaignId string NULLABLE
▾ fbclid string NULLABLE
▾ gclid string NULLABLE
Example: CjOKCQjwnNyUBhCZARISAI9AYIFtNnIcWcYGIOQINz_ZoFI5SSLRRugSoPZoiEu27IZBYf1-MAIWmEaAo2VEALW_WCB
▾ msclickid string NULLABLE
▾ dclid string NULLABLE
▾ fbc string NULLABLE
▾ fbp string NULLABLE
Example: fb. 1.1674748390986.1171287961
▾ fbEventId string NULLABLE
Example: Mozilla/5.0
▾ userAgent string NULLABLE
Example: Mozilla/5.0
▾ ip string NULLABLE
Example: 58.111.106.198
▾ medium string NULLABLE
Example: survey
▾ mediumId string NULLABLE
Example: FglfHAn30PRwsZVyQlKp
▾ visitorId string
visitorId is the Unique ID assigned to each Live chat visitor.
Example: ve9EPM428h8vShlRW1KT
{
  "new": true,
  "contact": {
    "id": "seD4PfOuKoVMLkEZqohJ",
    "name": "rubika deo",
    "locationId": "ve9EPM428h8vShlRW1KT",
    "firstName": "rubika",
    "lastName": "Deo",
    "email": "[email protected]",
    "emailLowerCase": "[email protected]",
    "timezone": "Asia/Calcutta",
    "companyName": "DGS VolMAX",
    "phone": "+18832327657",
    "dnd": true,
    "dndSettings": {
      "Call": {
        "status": "active",
        "message": "string",
        "code": "string"
      },
      "Email": {
        "status": "active",
        "message": "string",
        "code": "string"
      },
      "SMS": {
        "status": "active",
        "message": "string",
        "code": "string"
      },
      "WhatsApp": {
        "status": "active",
        "message": "string",
        "code": "string"
      },
      "GMB": {
        "status": "active",
        "message": "string",
        "code": "string"
      },
      "FB": {
        "status": "active",
        "message": "string",
        "code": "string"
      }
    },
    "type": "read",
    "source": "public api",
    "assignedTo": "ve9EPM428h8vShlRW1KT",
    "address1": "3535 1st St N",
    "city": "ruDolomitebika",
    "state": "AL",
    "country": "US",
    "postalCode": "35061",
    "website": "https://www.tesla.com",
    "tags": [
      "nisi sint commodo amet",
      "consequat"
    ],
    "dateOfBirth": "Date format YYYY-MM-DD",
    "dateAdded": "2021-07-02T05:18:26.704Z",
    "dateUpdated": "2021-07-02T05:18:26.704Z",
    "attachments": "string",
    "ssn": "string",
    "keyword": "test",
    "firstNameLowerCase": "rubika",
    "fullNameLowerCase": "rubika deo",
    "lastNameLowerCase": "deo",
    "lastActivity": "2021-07-16T11:39:30.564Z",
    "customFields": [
      {
        "id": "MgobCB14YMVKuE4Ka8p1",
        "value": "name"
      }
    ],
    "businessId": "641c094001436dbc2081e642",
    "attributionSource": {
      "url": "Trigger Link",
      "campaign": "string",
      "utmSource": "string",
      "utmMedium": "string",
      "utmContent": "string",
      "referrer": "https: //www.google.com",
      "campaignId": "string",
      "fbclid": "string",
      "gclid": "CjOKCQjwnNyUBhCZARISAI9AYIFtNnIcWcYGIOQINz_ZoFI5SSLRRugSoPZoiEu27IZBY£1-MAIWmEaAo2VEALW_WCB",
      "msclikid": "string",
      "dclid": "string",
      "fbc": "string",
      "fbp": "fb. 1.1674748390986.1171287961",
      "fbEventId": "Mozilla/5.0",
      "userAgent": "Mozilla/5.0",
      "ip": "58.111.106.198",
      "medium": "survey",
      "mediumId": "FglfHAn30PRwsZVyQlKp"
    },
    "lastAttributionSource": {
      "url": "Trigger Link",
      "campaign": "string",
      "utmSource": "string",
      "utmMedium": "string",
      "utmContent": "string",
      "referrer": "https: //www.google.com",
      "campaignId": "string",
      "fbclid": "string",
      "gclid": "CjOKCQjwnNyUBhCZARISAI9AYIFtNnIcWcYGIOQINz_ZoFI5SSLRRugSoPZoiEu27IZBY£1-MAIWmEaAo2VEALW_WCB",
      "msclikid": "string",
      "dclid": "string",
      "fbc": "string",
      "fbp": "fb. 1.1674748390986.1171287961",
      "fbEventId": "Mozilla/5.0",
      "userAgent": "Mozilla/5.0",
      "ip": "58.111.106.198",
      "medium": "survey",
      "mediumId": "FglfHAn30PRwsZVyQlKp"
    },
    "visitorId": "ve9EPM428h8vShlRW1KT"
  },
  "traceId": "string"
}

Bad Request

APPLICATION/JSON
schema example (auto)
▾ statusCode number
Example: 400
▾ message string
Example: Bad Request
{
  "statusCode": 400,
  "message": "Bad Request"
}

Unauthorized

APPLICATION/JSON
schema example (auto)
▾ statusCode number
Example: 401
▾ message string
Example: Invalid token: access token is invalid
▾ error string
Example: Unauthorized
{
  "statusCode": 401,
  "message": "Invalid token: access token is invalid",
  "error": "Unauthorized"
}

Unprocessable Entity

APPLICATION/JSON
schema example (auto)
▾ statusCode number
Example: 422
▾ message string[]
Example: ["Unprocessable Entity"]
▾ error string
Example: Unprocessable Entity
{
  "statusCode": 422,
  "message": ["Unprocessable Entity"],
  "error": "Unprocessable Entity"
}