Introduction

The LiveVox Contact API provides methods that allow you to retrieve information about the contacts created on the LiveVox platform. This includes but is not limited to creating new contacts, editing existing contacts, deleting contacts, etc. 

See the LiveVox API Overview section for a general description of how to interact with the API.

Prerequisites

  • The user must have successfully logged into the LiveVox platform to obtain a valid Session ID. See Session Management for more information.
  • The user must have an active subscription to the Configuration API, in order to obtain an Access Token for use in all API requests. See Access Tokens for details.
  • All messages in this API may be subject to rate limits and other restrictions.

Contact API WADL/Swagger

The Session API WADL/Swagger is publicly available; to obtain the WADL/Swagger for any other API category a user will need to include the LV-Session header with a valid session ID in the WADL/Swagger request.

The Contact API v17.0 WADL/Swagger is available at the following URL:

The URLs listed below are for the LiveVox NA3 environment and will change slightly if your portal is in a different environment. To know how the URL changes per environment, see the LiveVox Environments and APIs section.

User Roles

Unless otherwise specified in this documentation, for a user to be able to access any data through the Contact API, the user must belong to either the Sysadmin, Superuser, or Manager role. These roles are defined in the LiveVox Configuration Manager and correspond to users who can access LiveVox configuration data through the LiveVox user interfaces.

API Methods

Contact

The Contact methods allow for the manipulation of contacts in LiveVox. This includes being able to Create, Read, Update, and Delete.

Bulk Contact Download

Description:  Returns Contacts in a given data format (CSV), with a given data structure. Also, you can list contacts based on the modified date. 

User Roles: Sysadmin or Superuser

If the Accept-Encoding header with value 'gzip' is provided, the served content is compressed. This header is optional.

Method: POST /contact/contacts/bulk

Parameters:

None

Body:

Key

Type

Mandatory?

Description

startDateDateNoThe start date of the date range to return contact records which have a ‘modifyDate’ as same or after this date. It could take the format "CCYY-MM-DD" like "2020-01-01" or Unix timestamp like 1577858400000 (in milliseconds).
endDateDateNoThe end date of the date range to return contact records which have a 'modifyDate' as same or before this date. It could take the format "CCYY-MM-DD" like "2020-01-01" or Unix timestamp like 1577858400000 (in milliseconds).
exportableFieldsObjectYes

A list of Contact standard and custom field names representing the columns to be returned for a contact in the CSV served as the output

KeyTypeMandatoryDescription

StringYes

Fields that you would like to be exported. If the user provides the keyword "allFields", then all fields will be returned.

The valid set of fields to export is:

allFields

account
dueDate
accountToSpeak
address1
address2
agentId
agentTeamId
amountToSpeak
active
callAttemptsTotal
callAttemptsToday
city
clientId
countryId
createDate
createUser
department
description
dateOfBirth
accountBlock
accountBlockDaily
accountEmailBlock
email
firstName
groupId
guarantorFirstName
guarantorLastName
initialLoadCampaignId
initialLoadDate
lastLoadCampaignId
lastLoadDate
lastName
lvAccountId
modifyDate
modifyUser
originalAccountNumber
balance
phone1
phone1AttemptsTotal
phone1AttemptsToday
phone1CellConsent
phone1Block
phone1BlockDaily
phone1SmsConsent
phone2
phone2AttemptsTotal
phone2AttemptsToday
phone2CellConsent
phone2Block
phone2BlockDaily
phone2SmsConsent
phone3
phone3AttemptsTotal
phone3AttemptsToday
phone3CellConsent
phone3Block
phone3BlockDaily
phone3SmsConsent
phone4
phone4AttemptsTotal
phone4AttemptsToday
phone4CellConsent
phone4Block
phone4BlockDaily
phone4SmsConsent
phone5
phone5AttemptsTotal
phone5AttemptsToday
phone5CellConsent
phone5Block
phone5BlockDaily
phone5SmsConsent
phone6
phone6AttemptsTotal
phone6AttemptsToday
phone6CellConsent
phone6Block
phone6BlockDaily
phone6SmsConsent
phone7
phone7AttemptsTotal
phone7AttemptsToday
phone7CellConsent
phone7Block
phone7BlockDaily
phone7SmsConsent
phone8
phone8AttemptsTotal
phone8AttemptsToday
phone8CellConsent
phone8Block
phone8BlockDaily
phone8SmsConsent
phone9
phone9AttemptsTotal
phone9AttemptsToday
phone9CellConsent
phone9Block
phone9BlockDaily
phone9SmsConsent
phone10
phone10AttemptsTotal
phone10AttemptsToday
phone10CellConsent
phone10Block
phone10BlockDaily
phone10SmsConsent
zipCode
primaryEmailConsent
salutation
primarySMSConsent
ssn
state
title
COL1
COL2
COL3
COL4
COL5
COL6
COL7
COL8
COL9
COL10
COL11
COL12
COL13
COL14
COL15
COL16
COL17
COL18
COL19
COL20
COL21
COL22
COL23
COL24
COL25
COL26
COL27
COL28
COL29
COL30
COL31
COL32
COL33
COL34
COL35
COL36
COL37
COL38
COL39
COL40
COL41
COL42
COL43
COL44
COL45
COL46
COL47
COL48
COL49
COL50
COL51
COL52
COL53
COL54
COL55
COL56
COL57
COL58
COL59
COL60
COL61
COL62
COL63
COL64
COL65
COL66
COL67
COL68
COL69
COL70
COL71
COL72
COL73
COL74
COL75
COL76
COL77
COL78
COL79
COL80
COL81
COL82
COL83
COL84
COL85
COL86
COL87
COL88
COL89
COL90
COL91
COL92
COL93
COL94
COL95
COL96
COL97
COL98
COL99
COL100 

Response Code: 200 OK

Body: text/csv

[binary content]

If you provide the  Accept-Encoding  header with valid value ' gzip ', the served content is compressed. 

Response Code: 200 OK

Body: [binary compressed]

Bulk Retrieval of Contacts (Select Fields)

#Request (JSON)
POST /contact/contacts/bulk
Host: localhost.com
Content-Type: application/json

{
  "exportableFields": [
    "account",
    "dueDate"
  ]
}

#Response (JSON)
200 OK
Content-Type: text/csv

Account,Account Due Date
MF1234,08/27/2018
101243,
4199,09/03/2018
E23456,
HAW1221,
...

amby,
QA12345,
mf1234,
5199,
9191,
5818,
6669,
6868,
9045993747,
test,
QA23456,
QA34567,
CODE

Bulk Retrieval of Contacts (Select Fields) in a Binary Compressed file

#Request (JSON)
POST /contact/contacts/bulk
Host: localhost.com
Content-Type: application/json
Accept-Encoding: gzip

{
  "exportableFields": [
    "account",
    "dueDate"
  ]
}

#Response (JSON)
200 OK
Content-Type: [binary compress] 
CODE

Bulk Retrieval of Updated Contacts (Select Fields) Within a Specified Date Range

#Request (JSON)
POST /contact/contacts/bulk
Host: localhost.com
Content-Type: application/json

{
  "startDate": "2019-05-01",
  "endDate": "2020-01-13",
  "exportableFields": [
    "account",
    "dueDate"
  ]
}

#Response (JSON)
200 OK
Content-Type: text/csv

Account,Account Due Date
MF1234,08/27/2018
E23456,
123456,
11210187,
112233445566,
123456789QA,
0987654321,
11210037,
11210157,
123abc456,
amby,
QA12345,
test,
QA23456,
1122334455,
CODE

Create Contact

Description:  Creates a Contact in the LiveVox contact editor.

User Roles: Sysadmin or Superuser

Method: POST /contact/contacts/

Parameters:

None

Body:

KeyTypeMandatory?Description
createContactDetailsObjectYes

Details of a Contact to create.

KeyTypeMandatory?Description
accountStringYesIdentifier of the account, normally coming from a Client's system of record.
balanceDecimalNoThe balance of the contact.
accountBlockEnumNo

The LiveVox system blocks any dialing to this account for the entire day (Daily Do Not Dial) or permanently (Permanent Do Not Dial) depending on the following values: 

  • DAILY: Sets Daily Do Not Dial (DND).
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
personObjectNo

Information pertaining to the contact owner

KeyTypeMandatory?Description
firstNameStringNoFirst name of the contact.
lastNameStringNoLast name of the contact.
emailStringNoEmail address of the contact.
dateOfBirthDateTimeNo

The date of birth of the contact (in milliseconds).

The dateOfBirth field accepts both formats (DateTime and String).

ssnStringNoThe social security number of the contact.
zipCodeStringNoThe zipcode of the contact.
guarantorObjectNo

Information pertaining to the guarantor of the contact.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the guarantor.
lastNameStringNoLast name of the guarantor.
phoneArrayNo

Phone numbers associated with the contact.

KeyTypeMandatory?Description
phoneStringYesOne of the phone numbers associated with the contact.
ordinalIntegerYesIndicates the position of the phone number (For Example, 1, 2, 3...etc.). The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10.
phoneBlockEnumNo

The LiveVox system blocks dialing to this phone-account combination for the entire day or permanently depending on the following values:

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
accountToSpeakStringNoUsed to TTS the account number in the IVR.
originalAccountNumberStingNoOriginal account number of the contact.
address1StringNo

Main street address of the contact.

address2StringNo

Alternate street address of the contact.

cityStringNoCity of the contacts' address.
stateStringNoState of the contacts' address.
countryStringNo

Country of the contacts' address.

To see the list of countries, use the List Countries Method in Client API.

amountToSpeakDecimalNoUsed to TTS the amount due in the IVR.
dueDateDateNoDate when the account balance is due.
groupIdInteger (ID)NoGroup ID to which the contact belongs.
activeBooleanNoIf set to true, indicates that the account is active in the LiveVox system; if not included property will default to false.
customFieldsArrayNo

Custom field values associated with a contact.

KeyTypeMandatory?Description
fieldEnumYes

Custom field name where the data will be stored. Valid values are:

  • COL1
  • COL2

...

  • COL100
valueStringYes

The value to place into the custom field.

The max length per custom field is 255 characters.

 

primaryEmailConsentBooleanNoUsed to indicate whether the contact has given consent to receive e-mail.

Response Code: 201 Created

Body:

Key or Attribute

Type

Mandatory?

Description

idInteger (ID)YesThe ID of the newly created contact.

Create a Contact

#Request (JSON)
POST /contact/contacts/
Host: localhost.com
Content-Type: application/json
Accept: application/json  

{
  "createContactDetails": {
    "person": {
      "firstName": "James",
      "lastName": "22",
      "dateOfBirth": 621057600000,
      "email": "example@liveox.com",
      "ssn": "123DonotChange",
      "zipCode": "560001"
    },
    "guarantor": {
      "firstName": "aa",
      "lastName": "bbb"
    },
    "phone": [
      {
        "phone": "6503517500",
        "ordinal": 1,
        "phoneBlock": "DAILY_OFF",
        "smsConsent": true,
        "cellConsent": true
      }
    ],
    "customFields": [
      {
        "field": "COL1",
        "value": 123
      }
    ],
    "account": "1234556",
    "active": true,
    "balance": 100.0,
    "accountBlock": "DAILY_OFF",
    "accountToSpeak": "123DonotChange",
    "originalAccountNumber": "oan123",
    "address1": "ABC",
    "address2": "XYZ",
    "city": "San Francisco",
    "state": "CA",
    "country": "UNITED_STATES_OF_AMERICA",
    "amountToSpeak": 100.0,
    "dueDate": 1641963600000,
    "groupId": "12371",
    "primaryEmailConsent": true
  }
}   


#Response
201 Created
Content-Type: application/json    

{
  "id": "3456782"
}
CODE

Create a Contact that Already Exists

#Request (JSON)
POST /contact/contacts/
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "createContactDetails":    {
	  "account": "1246583"
   	  "active": "true",
      "balance": "1000.00",
      "accountBlock": "NONE",
      "originalAccountNumber": "987654",
      "city": "San Francisco",
      "state": "CA",
      "country": "UNITED_STATES_OF_AMERICA",
      "person":       {
         "firstName": "john",
         "lastName": "doe"
      },
      "phone":       [{
         "phone": "4085553593",
         "ordinal": "1",
         "phoneBlock": "NONE"
      }
     ]
   }
}
 
#Response
202 Bad Request
Content-Type: application/json
 
{
   "code": 202,
   "message": "Contact already exists!"
}
CODE

Delete Contact

Description:  Deletes a contact in the LiveVox contact editor.

User Roles: Sysadmin or Superuser

Method: DELETE /contact/contacts/{acct}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
accountacctStringYesThe account of the contact you want to delete.

Body:

None

Response Code: 204 No Content

Body:

None

Delete a Contact

#Request (JSON)
DELETE /contact/contacts/123456789
Host: localhost.com
Content-Type: application/json
Accept: application/json

#Response
204 No Content
Content-Type: application/json
CODE

Delete a Contact that Doesn't Exist

#Request (JSON)
DELETE /contact/contacts/123456789
Host: localhost.com
Content-Type: application/json
Accept: application/json

#Response
404 Not Found
Content-Type: application/json
CODE

Find Matching Contact

Description:  Search for contacts that match the specified criteria.

Method: POST /contact/contacts/search?count={n}&offset={n}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
countnIntegerYes

Specifies the number of items to return in the list. There is a hard cap of 1000 items.

offsetnIntegerYesRequired for pagination. Specifies the offset from 0, based on the count, to start listing from.

Body:

KeyTypeMandatory?Description
searchObjectYes

Filter criteria for the request. There are two types of branches for the filter, a rule, and a condition; a filter can start with either, however, if you want to search by multiple criteria you'll need to start the search with a rule.

Rule:

KeyTypeMandatory?Description
ruleEnumNo

The binary operator to join the left and right side of the rule, possible values are:

  • AND
  • OR
leftObjectNoAn object that contains the search Rule or Condition for the left side of the rule.
rightObjectNoAn object that contains the search Rule or Condition for the right side of the rule.
isNegatedBooleanNo

If set to true, negates the rule, defaults to false.

  • When a rule is negated it negates all conditions under that rule as well as negating the rule itself (i.e. changing 'AND' to 'OR'). 
  • isNegated is applied at the rule level so it does not work for searches with only a condition, to negate a single condition search you need to include the 'AND' or 'OR' rule.

Condition:

KeyTypeMandatory?Description
fieldStringYes

The contact field used in the search condition. 

This property is equivalent to the "Criteria" field in LVP.

Possible fields are:

  • account

  • account_due_date

  • account_due_date_basedon_option

  • last_load_date_basedon_option

  • original_account_number

  • city

  • state

  • country

  • group

  • do_not_dial

  • do_not_dial_daily

  • sms

  • email

  • postalcode

  • name

  • dob

  • phone

  • address

  • guarantor_name

  • paymentbalance

  • amount_to_speak

  • account_dial_yesterday

  • account_dial_today

  • phone1_sms_consent

  • phone1_cell_consent

...

  • phone10_sms_consent

  • phone10_cell_consent

  • phone_sms_consent

  • phone_cell_consent

  • primary_email_consent

  • callattemptstoday

  • callattemptslifetime

  • accountForTodaysResult

  • accountsFor30daysResult

  • email_address

  • COL1

...

  • COL100
criteriaStringYes

The search criteria for the condition.

 This property is equivalent to the "Value" field in LVP.

conditionEnumYes

How to apply the criteria to the search field, possible values are:

  • STARTS_WITH

  • ENDS_WITH

  • EQUALS

  • LESS

  • GREATER

  • GREATER_EQUAL

  • CONTAINS

 To apply a less than or equal to criteria you'll need to use the 'GREATER_EQUAL' condition and set the 'isNegated' property to 'true'.

isNegatedBooleanNo

If set to true, negates the condition, defaults to false.

sortArrayNo

The sort order of the returned contacts.

KeyTypeMandatory?Description
fieldStringYes

The field to sort by. Possible values are:

  • LVACCOUNT_ID
  • CLIENT_ID
  • ACCOUNT
  • B_ACTIVE
  • ACCOUNT_TO_SPEAK
  • FIRST_NAME
  • LAST_NAME
  • DOB
  • EMAIL_ADDRESS
  • SSN
  • PHONE1
  • PHONE2

...

  • PHONE10
  • ADDRESS1
  • ADDRESS2
  • CITY
  • STATE
  • POSTALCODE
  • COUNTRY_ID
  • GUARANTOR_FIRSTNAME
  • GUARANTOR_LASTNAME
  • PAYMENTBALANCE
  • AMOUNT_TO_SPEAK
  • ACCOUNT_DUE_DATE
  • CALLATTEMPTSTODAY
  • CALLATTEMPTSLIFETIME
  • CREATEDATE
  • CREATEUSER
  • MODIFYDATE
  • MODIFYUSER
  • INITIAL_LOAD_DATE
  • INITIAL_LOAD_CAMPAIGNID
  • LAST_LOAD_DATE
  • LAST_LOAD_CAMPAIGNID
  • DO_NOT_DIAL
  • DO_NOT_DIAL_DAILY
  • GROUP_ID
  • ORIGINAL_ACCOUNT_NUMBER
  • PHONE1_ATTEMPTS_TODAY
  • PHONE1_ATTEMPTS_LIFETIME
  • PHONE1_DND
  • PHONE1_DND_DAILY
  • PHONE2_ATTEMPTS_TODAY
  • PHONE2_ATTEMPTS_LIFETIME
  • PHONE2_DND
  • PHONE2_DND_DAILY

...

  • PHONE10_ATTEMPTS_TODAY
  • PHONE10_ATTEMPTS_LIFETIME
  • PHONE10_DND
  • PHONE10_DND_DAILY
  • SMS
  • EMAIL
  • PHONE1_SMS_CONSENT
  • PHONE1_CELL_CONSENT

...

  • PHONE10_SMS_CONSENT
  • PHONE10_CELL_CONSENT
  • PRIMARY_EMAIL_CONSENT
  • COL1

...

  • COL100
order


EnumYes

How the contacts are sorted. Possible values are:

  • ASC
  • DESC

Response Code: 200 Ok

Body:

KeyTypeMandatory?Description
nextURINoA URI for the next page of entries. If next is not present, or blank, then there are no pages after this one.
findMatchingContactsDetailsArrayNo

An array of contacts that match the specified filter criteria in the request.

KeyTypeMandatory?Description
accountStringYesThe account associated to the contact.
activeBooleanYesIf set to true, indicates that the account is active in the LiveVox system.
balanceDecimalNoThe balance of the contact.
callAttemptsTodayIntegerNoThe number of attempts made to the contact
callAttemptsTotalIntegerNoThe total number of call attempts made to the account by the LiveVox platform over the lifetime of the account.
createDateDateTimeNoDate the contact was created.
initialLoadDateTimeNoThe date/time when the contact was initially loaded into the LiveVox platform.
lastLoadDateTimeNoThe date/time when the contact was last loaded into the LiveVox platform.
accountBlockEnumNo

The LiveVox system blocks any dialing to this account for the entire day or permanently depending on the following values: 

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
originalAccountNumberStingNoOriginal account number of the contact.
accountToSpeakStringNoUsed to TTS the account number in the IVR.
personObjectNo

Information pertaining to the contact owner

KeyTypeMandatory?Description
firstNameStringNoFirst name of the contact.
lastNameStringNoLast name of the contact.
emailStringNoThe email address of the contact.
dateOfBirthStringNo

The date of birth of the contact.

ssnStringNoThe social security number of the contact.
zipCodeStringNoThe zip code of the contact.
guarantorObjectNo

Information pertaining to the guarantor of the contact.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the guarantor.
lastNameStringNoLast name of the guarantor.
phoneArrayNo

Phone numbers associated with the contact.

KeyTypeMandatory?Description
phoneStringYesOne of the phone numbers associated with the contact.
ordinalIntegerYesIndicates the position of the phone number (e.g. 1, 2, 3...etc). The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10.
phoneBlockEnumNo

The LiveVox system blocks dialing to this phone-account combination for the entire day or permanently depending on the following values:

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
smsConsentBooleanNo

Used to indicate whether the contact has given consent to SMS their number.

cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell phone.
address1StringNo

Main street address of the contact.

address2StringNo

Alternate street address of the contact.

cityStringNoCity of the contacts' address.
stateStringNoState of the contacts' address.
countryStringNo

Country of the contacts' address.

To see the list of countries, use the List Countries Method in Client API.

amountToSpeakDecimalNoUsed to TTS the amount due in the IVR.
modifyDateDateNoDate the contact was last changed.
groupIdInteger (ID)NoGroup ID to which the contact belongs.
primaryEmailConsentBooleanNoUsed to indicate whether the contact has given consent to receive e-mail.

 

Search for Contacts by a Single Condition

#Request (JSON)
POST /contact/contacts/search?offset=0&count=5
Content-Type: application/json
Accept: application/json

{
  "search": {
    "field": "account",
    "criteria": "123",
    "condition": "STARTS_WITH"
  },
  "sort": [
    {
      "field": "account",
      "order": "ASC"
    }
  ]
}
 
#Response
200 Ok
Content-Type: application/json
 
{
  "findMatchingContactsDetails": [
    {
      "person": {
        "firstName": "Erwin",
        "lastName": "de Vera",
        "zipCode": "SAS909"
      },
      "guarantor": {},
      "phone": [],
      "account": "12324",
      "active": true,
      "balance": 99.99,
      "accountBlock": "NONE",
      "accountToSpeak": "12324",
      "state": "CA",
      "amountToSpeak": 0,
      "dueDate": 0,
      "groupId": 1120,
      "callAttemptsToday": 0,
      "callAttemptsTotal": 1,
      "initialLoad": 1502127646000,
      "lastLoad": 1502127646000,
      "createDate": 1502127646000,
      "modifyDate": 1516975179000
    },
...
    {
      "person": {
        "firstName": "Erwin",
        "dateOfBirth": 448174800000,
        "email": "erwin@email.com",
        "ssn": "40674",
        "zipCode": "123456789"
      },
      "guarantor": {},
      "phone": [
        {
          "phone": "4152223333",
          "ordinal": 2,
          "phoneBlock": "NONE",
          "smsConsent": false,
          "cellConsent": false
        }
      ],
      "account": "123Erwin",
      "active": true,
      "balance": 20000,
      "accountBlock": "NONE",
      "country": "UNITED_STATES_OF_AMERICA",
      "amountToSpeak": 0,
      "dueDate": 0,
      "groupId": 0,
      "primaryEmailConsent": false,
      "callAttemptsToday": 0,
      "callAttemptsTotal": 0,
      "initialLoad": 1519150484000,
      "lastLoad": 0,
      "createDate": 1519150484000,
      "modifyDate": 1519900465000
    }
  ],
  "next": "contact/contacts/search?offset=4&count=5"
}
CODE

 

Search for Contacts with Multiple Conditions

#Request (JSON)
POST /contact/contacts/search?offset=0&count=5
Content-Type: application/json
Accept: application/json
 
{
  "search": {
    "rule": "OR",
    "right": {
      "rule": "AND",
      "right": {
        "field": "account",
        "criteria": "123",
        "condition": "STARTS_WITH"
      },
      "left": {
        "field": "postalcode",
        "criteria": "SAS",
        "condition": "STARTS_WITH"
      }
    },
    "left": {
      "rule": "AND",
      "right": {
        "field": "paymentbalance",
        "criteria": "18000",
        "condition": "GREATER"
      },
      "left": {
        "rule": "AND",
        "left": {
          "field": "account",
          "criteria": "123",
          "condition": "STARTS_WITH"
        },
        "right": {
          "field": "postalcode",
          "criteria": "07",
          "condition": "STARTS_WITH"
        }
      }
    }
  }
}
 
#Response
200 Ok
Content-Type: application/json
 
{
  "findMatchingContactsDetails": [
    {
      "person": {
        "firstName": "Erwin",
        "lastName": "de Vera",
        "zipCode": "SAS909"
      },
      "guarantor": {},
      "phone": [],
      "account": "12324",
      "active": true,
      "balance": 99.99,
      "accountBlock": "NONE",
      "accountToSpeak": "12324",
      "state": "CA",
      "amountToSpeak": 0,
      "dueDate": 0,
      "groupId": 1120,
      "callAttemptsToday": 0,
      "callAttemptsTotal": 1,
      "initialLoad": 1502127646000,
      "lastLoad": 1502127646000,
      "createDate": 1502127646000,
      "modifyDate": 1516975179000
    },
...
    {
      "person": {
        "email": "atok@gmail.com",
        "zipCode": "07"
      },
      "guarantor": {},
      "phone": [
        {
          "phone": "4088390384",
          "ordinal": 1,
          "phoneBlock": "PERMANENT",
          "smsConsent": true,
          "cellConsent": true
        }
      ],
      "account": "1234555",
      "active": true,
      "balance": 18003,
      "accountBlock": "NONE",
      "accountToSpeak": "1234555",
      "amountToSpeak": 0,
      "dueDate": 0,
      "groupId": 0,
      "primaryEmailConsent": true,
      "callAttemptsToday": 0,
      "callAttemptsTotal": 1,
      "initialLoad": 1508962439000,
      "lastLoad": 1508962439000,
      "createDate": 1508962439000,
      "modifyDate": 1519909797000
    }
  ]
}
CODE

List Contact

Description:  Lists the clients' contacts.

Method: GET /contact/contacts?count={n}&offset={n}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
countnIntegerYes

Specifies the number of items to return in the list. There is a limit of 1000 items.

offsetnIntegerYesRequired for pagination. Specifies the offset from 0, based on count, to start listing from.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
nextURINoA URI for the next page of entries. If next is not present, or blank, then there are no pages after this one.
listContactDetailsArrayNo

An array of contacts

KeyTypeMandatory?Description
personObjectNo

Information pertaining to the contact owner.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the contact.
lastNameStringNoLast name of the contact.
emailStringNoThe email address of the contact.
dateOfBirthStringNo

The date of birth of the contact.

ssnStringNoThe social security number of the contact.
zipCodeStringNoThe zipcode of the contact.
accountStringYesThe account associated with the contact.
activeBooleanYesIf set to true, indicates that the account is active in the LiveVox system.
balanceDecimalNoThe balance of the contact.
callAttemptsTodayIntegerNoThe number of attempts made to the contact
callAttemptsTotalIntegerNoThe total number of call attempts made to the account by the LiveVox platform over the lifetime of the account.
createDateDateTimeNoDate the contact was created.
initialLoadDateTimeNoThe date/time when the contact was initially loaded into the LiveVox platform.
lastLoadDateTimeNoThe date/time when the contact was last loaded into the LiveVox platform.
accountBlockEnumNo

The LiveVox system blocks any dialing to this account for the entire day or permanently depending on the following values: 

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
originalAccountNumberStingNoOriginal account number of the contact.
accountToSpeakStringNoUsed to TTS the account number in the IVR.
phoneArrayNo

The array of phone numbers associated with the contact.

KeyTypeMandatory?Description
phoneStringYesOne of the phone numbers associated with the contact.
ordinalIntegerYesIndicates the position of the phone number (For Example, 1, 2, 3, etc.). The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10.
phoneBlockEnumNo

The LiveVox system blocks dialing to this phone-account combination for the entire day or permanently depending on the following values:

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
address1StringNo

Main street address of the contact.

address2StringNo

Alternate street address of the contact.

cityStringNoCity of the contacts' address.
stateStringNoState of the contacts' address.
countryStringNo

Country of the contacts' address.

To see the list of countries, use the List Countries Method in Client API.

guarantorObjectNo

Information pertaining to the guarantor of the contact.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the guarantor.
lastNameStringNoLast name of the guarantor.
amountToSpeakDecimalNoUsed to TTS the amount due in the IVR.
modifyDateDateNoDate the contact was last changed.
groupIdInteger (ID)NoGroup ID to which the contact belongs.
primaryEmailConsentBooleanNoUsed to indicate whether the contact has given consent to receive e-mail.

List Contacts for a Client

#Request (JSON)
GET /contact/contacts?offset=0&count=10
Host: localhost.com
Content-Type: application/json
Accept: application/json

#Response
200 Ok
Content-Type: application/json
 
{
   "listContactDetails":    [
            {
         "person":          {
            "firstName": "Bruce",
            "lastName": "Banner",
            "dateOfBirth": null,
            "email": null,
            "ssn": null,
            "zipCode": null
         },
         "guarantor":          {
            "firstName": null,
            "lastName": null
         },
         "phone": [],
         "customFields": null,
         "account": "101243",
         "active": true,
         "balance": 0,
         "accountBlock": "NONE",
         "accountToSpeak": "101243",
         "originalAccountNumber": "OrgAcctNum1",
         "address1": null,
         "address2": null,
         "city": null,
         "state": null,
         "country": null,
         "amountToSpeak": 0,
         "dueDate": 1506470400000,
         "groupId": 0,
         "callAttemptsToday": 0,
         "callAttemptsTotal": 5,
         "initialLoad": 1508931850000,
         "lastLoad": null,
         "createDate": 1501587068000,
         "modifyDate": 1508931850000
      },
            {
         "person":          {
            "firstName": "Agent",
            "lastName": "One",
            "dateOfBirth": 1187841600000,
            "email": "abc@xyz.com",
            "ssn": "0095",
            "zipCode": null
         },
         "guarantor":          {
            "firstName": "Gua",
            "lastName": "Tor"
         },
         "phone":          [
                        {
               "phone": "4158149720",
               "ordinal": 1,
               "phoneBlock": "PERMANENT"
            },
                        {
               "phone": "4042168962",
               "ordinal": 2,
               "phoneBlock": "NONE"
            }
         ],
         "customFields": null,
         "account": "2222",
         "active": true,
         "balance": 100,
         "accountBlock": "NONE",
         "accountToSpeak": "2222",
         "originalAccountNumber": "ABC2222",
         "address1": "Route 66",
         "address2": null,
         "city": null,
         "state": "CA",
         "country": "UNITED_STATES_OF_AMERICA",
         "amountToSpeak": 100,
         "dueDate": 0,
         "groupId": 0,
         "callAttemptsToday": 0,
         "callAttemptsTotal": 8,
         "initialLoad": 0,
         "lastLoad": null,
         "createDate": 1500954412000,
         "modifyDate": 1509550250000
      },
...
            {
         "person":          {
            "firstName": "Firstname",
            "lastName": "Lastname",
            "dateOfBirth": null,
            "email": null,
            "ssn": null,
            "zipCode": null
         },
         "guarantor":          {
            "firstName": null,
            "lastName": null
         },
         "phone": [         {
            "phone": "6503517452",
            "ordinal": 1,
            "phoneBlock": "NONE"
         }],
         "customFields": null,
         "account": "101242",
         "active": true,
         "balance": 0,
         "accountBlock": "NONE",
         "accountToSpeak": "101242",
         "originalAccountNumber": "OrgAcctNum1",
         "address1": null,
         "address2": null,
         "city": null,
         "state": null,
         "country": null,
         "amountToSpeak": 0,
         "dueDate": 0,
         "groupId": 0,
         "callAttemptsToday": 0,
         "callAttemptsTotal": 0,
         "initialLoad": 1504579232000,
         "lastLoad": null,
         "createDate": 1504579232000,
         "modifyDate": 1504579232000
      },
            {
         "person":          {
            "firstName": "Firstname",
            "lastName": "Lastname",
            "dateOfBirth": null,
            "email": null,
            "ssn": null,
            "zipCode": null
         },
         "guarantor":          {
            "firstName": null,
            "lastName": null
         },
         "phone": [],
         "customFields": null,
         "account": "4321",
         "active": true,
         "balance": 0,
         "accountBlock": "NONE",
         "accountToSpeak": "4321",
         "originalAccountNumber": "OrgAcctNum1",
         "address1": null,
         "address2": null,
         "city": null,
         "state": null,
         "country": null,
         "amountToSpeak": 0,
         "dueDate": 0,
         "groupId": 0,
         "callAttemptsToday": 0,
         "callAttemptsTotal": 0,
         "initialLoad": 1506954478000,
         "lastLoad": null,
         "createDate": 1505747625000,
         "modifyDate": 1506954478000
      }
   ],
   "next": "contact/contacts?offset=10&count=10"
}
CODE

Read Contact

Description: Reads information about specific contact. 

Method: GET /contact/contacts/{acct}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
accountacctStringYesThe Account of the contact to read.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
readContactDetailsObjectNo

Details of the contact

KeyTypeMandatory?Description
accountStringYesThe account associated with the contact.
accountBlockEnumNo

The LiveVox system blocks any dialing to this account for the entire day or permanently depending on the following values: 

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
activeBooleanYesIf set to true, indicates that the account is active in the LiveVox system.
originalAccountNumberStingNoOriginal account number of the contact.
balanceDecimalNoThe balance of the contact.
callAttemptsTodayIntegerNoThe number of attempts made to the contact.
callAttemptsTotalIntegerNoThe total number of call attempts made to the account by the LiveVox platform over the lifetime of the account.
initialLoadDateNo

The date when the contact was initially loaded into the LiveVox platform.

If you provide the date with time, the time part is ignored.

lastLoadDateNo

The date when the contact was last loaded into the LiveVox platform.

If you provide the date with time, the time part is ignored.

personObjectNo

Information pertaining to the contact owner.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the contact.
lastNameStringNoLast name of the contact.
emailStringNoThe email address of the contact.
dateOfBirthStringNo

The date of birth of the contact.

ssnStringNoThe social security number of the contact.
zipCodeStringNoThe zipcode of the contact.
guarantorObjectNo

Information pertaining to the guarantor of the contact.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the guarantor.
lastNameStringNoLast name of the guarantor.
phoneArrayNo

The array of phone numbers associated with the contact.

KeyTypeMandatory?Description
phoneStringYesOne of the phone numbers associated with the contact.
ordinalIntegerYesIndicates the position of the phone number (e.g. 1, 2, 3...etc). The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10.
phoneBlockEnumNo

The LiveVox system blocks dialing to this phone-account combination for the entire day or permanently depending on the following values:

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
address1StringNo

Main street address of the contact.

address2StringNo

Alternate street address of the contact.

cityStringNoCity of the contacts' address.
stateStringNoState of the contacts' address.
countryStringNo

Country of the contacts' address.

To see the list of countries, use the List Countries Method in Client API.

accountToSpeakStringNoUsed to TTS the account number in the IVR.
amountToSpeakDecimalNoUsed to TTS the amount due in the IVR.
modifyDateDateNoDate the contact was last changed.
groupIdInteger (ID)NoGroup ID to which the contact belongs.
dueDateDateNoDate when the account balance is due.
createDateDateNoDate when the Contact was created.
customFieldsArrayNo

Custom field values associated with a contact.

KeyTypeMandatory?Description
fieldEnumYes

Custom field name where the data will be stored. Valid values are:

  • COL1
  • COL2

...

  • COL100
valueStringYesThe value to place into the custom field.
primaryEmailConsentBooleanNoUsed to indicate whether the contact has given consent to receive e-mail.

Read Contact

#Request (JSON)
GET /contact/contacts/1234567
Host: localhost.com
Content-Type: application/json
Accept: application/json

#Response
200 OK
Content-Type: application/json

{"readContactDetails": {
   "person":    {
      "firstName": "james",
      "lastName": "bond",
      "dateOfBirth": null,
      "email": "khugft@ghjgh.com",
      "ssn": "5656",
      "zipCode": "454455"
   },
   "guarantor":    {
      "firstName": "jam",
      "lastName": "bond"
   },
   "phone":    [
            {
         "phone": "6565556666",
         "ordinal": 1,
         "phoneBlock": "DAILY"
      },
            {
         "phone": "6564445559",
         "ordinal": 7,
         "phoneBlock": "DAILY"
      }
   ],
   "active": true,
   "balance": 1,
   "accountBlock": "DAILY",
   "accountToSpeak": "KA124",
   "originalAccountNumber": "Oan123",
   "address1": "rttrrt",
   "address2": "uyuyu",
   "city": "trt",
   "state": "ty",
   "country": "UK",
   "amountToSpeak": 1,
   "dueDate": 0,
   "groupId": 12345,
   "account": "1234567",
   "callAttemptsToday": 0,
   "callAttemptsTotal": 0,
   "initialLoad": 0,
   "lastLoad": null,
   "createDate": 1484673045000,
   "modifyDate": 1484673045000
}}
CODE

Update Contact

Description:  Updates the information for a contact.

User Roles: Sysadmin or Superuser

Method: PUT /contact/contacts/{account}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
accountaccountStringYesThe identifier for the contact you want to update.

Body:

KeyTypeMandatory?Description
updateContactDetailsObjectNo

The details of a contact that will be updated.

KeyTypeMandatory?Description
balanceDecimalNoThe balance of the contact.
accountBlockEnumNo

The LiveVox system blocks any dialing to this account for the entire day or permanently depending on the following values: 

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.

The result of an assigning the above values (action) depends on the current status, as shown below.


Current Status
DAILYPERMANENTNONEBOTH
Sent ValueDAILYDAILYBOTHDAILYBOTH
PERMANENTBOTHPERMANENTPERMANENTBOTH
NONENONENONENONENONE
BOTHBOTHBOTHBOTHBOTH
DAILY_OFFNONEPERMANENTNONEPERMANENT
PERMANENT_OFFDAILYNONENONEDAILY
amountToSpeakDecimalNoUsed to TTS the amount due in the IVR.
accountToSpeakStringNoUsed to TTS the account number in the IVR.
personObjectNo

Information pertaining to the contact owner

KeyTypeMandatory?Description
firstNameStringNoFirst name of the contact.
lastNameStringNoLast name of the contact.
emailStringNoThe email address of the contact.
dateOfBirthStringNo

The date of birth of the contact.

ssnStringNoThe social security number of the contact.
zipCodeStringNoThe zipcode of the contact.
guarantorObjectNo

Information pertaining to the guarantor of the contact.

KeyTypeMandatory?Description
firstNameStringNoFirst name of the guarantor.
lastNameStringNoLast name of the guarantor.
originalAccountNumberStringNoOriginal account number of the contact.
phoneArrayNo

Phone numbers associated with the contact.

KeyTypeMandatory?Description
phoneStringYesOne of the phone numbers associated with the contact.
ordinalIntegerYesIndicates the position of the phone number (e.g. 1, 2, 3...etc). The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10.
phoneBlockEnumNo

The LiveVox system will block dialing to this phone-account combination for the entire day or permanently depending on the following values:

  • DAILY: Sets Daily DND.
  • PERMANENT: Sets Permanent DND.
  • NONE: Turns off both DNDs.
  • BOTH: Sets both DNDs.
  • DAILY_OFF: Turns off Daily DND.
  • PERMANENT_OFF: Turns off Permanent DND.

The result of an assigning the above values (action) depends on the current status, as shown below. 


Current Status
DAILYPERMANENTNONEBOTH
Sent ValueDAILYDAILYBOTHDAILYBOTH
PERMANENTBOTHPERMANENTPERMANENTBOTH
NONENONENONENONENONE
BOTHBOTHBOTHBOTHBOTH
DAILY_OFFNONEPERMANENTNONEPERMANENT
PERMANENT_OFFDAILYNONENONEDAILY
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
address1StringNo

Main street address of the contact.

address2StringNo

Alternate street address of the contact.

cityStringNoCity of the contacts' address.
stateStringNoState of the contacts' address.
countryStringNo

Country of the contacts' address.

To see the list of countries, use the List Countries Method in Client API.

dueDateDateNoDate when the account balance is due.
groupIdInteger (ID)NoGroup ID to which the contact belongs.
activeBooleanNoIf set to true, indicates that the account is active in the LiveVox system.
customFieldsArrayNo

Custom field values associated with a contact.

KeyTypeMandatory?Description
fieldEnumYes

Custom field name where the data will be stored. Valid values are:

  • COL1
  • COL2

...

  • COL100
valueStringYes

The value to place into the custom field.

The max length per custom field is 255 characters.

accountStringYesIdentifier of the account, normally coming from a Client's system of record.
primaryEmailConsentBooleanNoUsed to indicate whether the contact has given consent to receive e-mail.

Response Code: 204 No Content

Body:

None

Update a Contact

#Request (JSON)
PUT /contact/contacts/DOC1625198460001 
Host: localhost.com
Content-Type: application/json
Accept: application/json  

{
  "updateContactDetails": {
    "person": {
      "firstName": "Jame",
      "lastName": "222",
      "dateOfBirth": 621057600000,
      "email": "example@liveox.com",
      "ssn": "1234DonotChange",
      "zipCode": "560002"
    },
    "guarantor": {
      "firstName": "aaa",
      "lastName": "bbab"
    },
    "phone": [
      {
        "phone": "6503517501",
        "ordinal": 1,
        "phoneBlock": "PERMANENT_OFF",
        "smsConsent": false,
        "cellConsent": false
      }
    ],
    "customFields": [
      {
        "field": "COL1",
        "value": true
      }
    ],
    "active": false,
    "balance": 101.0,
    "accountBlock": "PERMANENT_OFF",
    "accountToSpeak": "1234DonotChange",
    "originalAccountNumber": "oan1234",
    "address1": "ABC",
    "address2": "XYZ",
    "city": "San Francisco",
    "state": "CA",
    "country": "UNITED_STATES_OF_AMERICA",
    "amountToSpeak": 101.0,
    "dueDate": 1641963600000,
    "groupId": "6460",
    "primaryEmailConsent": false
  }
}  

#Response
204 No Content
Content-Type: application/json
 
CODE

Update Contact that Doesn't Exist

#Request (JSON)
PUT /contact/contacts/1234567
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "updateContactDetails":    {
      "person":       {
         "firstName": "mike",
         "lastName": "bonds"
      },
      "phone":       [{
         "phone": "4565553748",
         "ordinal": "2",
         "phoneBlock": "DAILY"
      }
      ]
   }
}
 
#Response
404 Not Found
Content-Type: application/json
CODE

Update Contact DND

Description:  Updates the DND fields of a Contact only.

User Roles: Sysadmin or Superuser

Method: PUT /contact / contacts/{account}/dnd

Parameters:

Query Parameter Name

Variable Name

Type

Mandatory?

Description

accountaccountStringYesIdentifier of the account, normally coming from a Client's system of record.

Body :

Key

Type

Mandatory?

Description

updateContactDNDArrayNo

 An array of phone numbers associated with the contact and how their DND settings will be updated

KeyTypeMandatory?Description
phoneStringYesThe phone number that will have its DND settings updated.
ordinalIntegerYesIndicates the position (e.g. 1, 2, 3...) associated with the phone number. The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10
phoneBlockEnumNo

The LiveVox system will block dialing to this phone-account combination for the entire day or permanently if this property is set to 'DAILY' or 'PERMANENT' respectively. Possible values are:

  • DAILY
  • PERMANENT
  • NONE
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
accountBlockEnumNo

 The LiveVox system will block dialing to this phone-account combination for the entire day or permanently if this property is set to 'DAILY' or 'PERMANENT' respectively. Possible values are:

  • DAILY
  • PERMANENT
  • NONE

Response Code: 204 No Content

Body:

None

Update the DND Settings of an Account

#Request (JSON)
PUT /contact/contacts/1234567/dnd
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "updateContactDND":    [{
      "phone": "4085550384",
      "ordinal": "1",
      "phoneBlock": "DAILY"
   }]
}
 
#Response
204 No Content
Content-Type: application/json
CODE

Update a Contact That Doesn't Exist

#Request (JSON)
PUT /contact/contacts/5555555/dnd
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "updateContactDND":    [{
      "phone": "4085550384",
      "ordinal": "1",
      "phoneBlock": "DAILY"
   }]
}
 
#Response
404 Not Found
Content-Type: application/json
 
{
   "code": 203,
   "message": "No Record Found"
}
CODE

Update Multiple Contacts' DND

Description: Updates Multiple Contacts' DND in a single request.

User Roles: Sysadmin or Superuser

Method: POST /contact/contacts/dnd

Parameters: None

Body :

Key

Type

Mandatory?

Description

 contactDndArrayYes

 An array of Contact phones and their dnd settings

KeyTypeMandatory?Description
accountStringYesIdentifier of the account, normally coming from a Client's system of record.
updateContactDNDArrayNo

 An array of phone numbers associated with the contact and how their DND settings will be updated

KeyTypeMandatory?Description
phoneStringYesThe phone number that will have its DND settings updated.
ordinalIntegerYesIndicates the position (e.g. 1, 2, 3...) associated with the phone number. The position is used for features such as campaign dialing rules. The max number of the ordinal field is 10
phoneBlockEnumNo

The LiveVox system will block dialing to this phone-account combination for the entire day or permanently if this property is set to 'DAILY' or 'PERMANENT' respectively. Possible values are:

  • DAILY
  • PERMANENT
  • NONE
smsConsentBooleanNoUsed to indicate whether the contact has given consent to SMS their number.
cellConsentBooleanNoUsed to indicate whether the contact has given consent to dial their cell number.
accountBlockEnumNo

 The LiveVox system will block dialing to this phone-account combination for the entire day or permanently if this property is set to 'DAILY' or 'PERMANENT' respectively. Possible values are:

  • DAILY
  • PERMANENT
  • NONE

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
updatedIntegerYesTotal number of records updated

Updates Multiple Contacts' DNC options

#Request (JSON)
Post /contact/contacts/dnd
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
  "contactDnd": [
    {
      "account": "31576555260000",
      "accountBlock": "DAILY",
      "updateContactDND": [
        {
          "phone": "4565553748",
          "ordinal": "1",
          "phoneBlock": "NONE"
        },
        {
          "phone": "9133333331",
          "ordinal": "2",
          "phoneBlock": "NONE"
        },
        {
          "phone": "9133342342",
          "ordinal": "3",
          "phoneBlock": "NONE"
        }
      ]
    },
    {
      "account": "2q1578628860000",
      "accountBlock": "NONE",
      "updateContactDND": [
        {
          "phone": "4565553748",
          "ordinal": "1",
          "phoneBlock": "DAILY"
        }
      ]
    }
  ]
}
 
#Response
200 OK
Content-Type: application/json

{
    "updated": 2
}
CODE

Update a Contact That Doesn't Exist

#Request (JSON)
Post /contact/contacts/dnd
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
  "contactDnd": [
    {
      "account": "nyts0",
      "accountBlock": "NONE",
      "updateContactDND": [
        {
          "phone": "4565553748",
          "ordinal": "1",
          "phoneBlock": "DAILY"
        }
      ]
    }
  ]
}
 
#Response
200 OK
Content-Type: application/json
 
{
    "updated": 0
}
CODE

List Accounts Associated with the Contact

Description:  Get a list of accounts associated with the contact

User Roles: Sysadmin, Superuser, or Manager

Method:  GET /contact/contacts/{contactId}/accounts?count={n}&offset={n}

Parameters: 

Path Parameter Name

Type

Mandatory?

Description

contactId

String

Yes

The ID of the contact. It is a unique ID to identify a contact in Contact Manager.

Query Parameter Name

Variable Name

Type

Mandatory?

Description

countnIntegerYesSpecifies the number of items to return in the list. There is a hard cap of 1000 items.
offsetnIntegerYesRequired for pagination. Specifies the offset from 0, based on count, to start listing from.

Body:

None

Response Code: 200 OK

Body (JSON):

KeyTypeMandatory?Description
nextURINoA uniform resource identifier ( URI) for the next page of entries. If next is not present, or blank, then there are no pages after this one.
listAccountsArrayNo

A list of accounts.

The list is sorted by "name".

KeyTypeMandatory?Description

id

Integer

Yes

Account ID

createdDateDateYesThe creation date of the account  ( Unix timestamp format )
createdByStringYesThe username who created the account
modifiedDateDateYesThe most recent modification date of the account   ( Unix timestamp format )
modifiedByStringYesThe username who last modified the account

name

String

Yes

Account name 

description

String

No

Description of the account

industry

String

No

Industry to which the account belongs 

annualRevenue

Integer

No

Annual revenue of the account

phoneFax

String

No

Phone or fax number

billingAddress

String

No

Billing address

KeyTypeMandatory?Description
streetStringNoStreet name
cityStringNoCity name
stateStringNoState name
postalCodeStringNoPostal code
countryStringNoCountry name

 

rating

String

No

The account’s prospect rating. For example, Hot, Warm, or Cold.

phoneOffice

String

No

Office phone number

phoneAlternate

String

No

Alternate phone number

website

String

No

The website of this account

ownershipType

String

No

Ownership type for the account. For example Private, Public, or Subsidiary.

numOfEmployees

Integer

No

Number of employees 

tickerSymbol

String

No

The stock ticker symbol for the account

shippingAddress

String

No

Shipping address

KeyTypeMandatory?Description
streetStringNoStreet name
cityStringNoCity name
stateStringNoState name
postalCodeStringNoPostal code
countryStringNoCountry name

 

campaignId

String

No

The campaign ID assigned to the account

accountNumber

String

No

Unique account number assigned to the account

originalAccountNumber

String

No

Unique account number assigned to the account from originating source, like Salesforce

agentId

Integer

No

The agent ID assigned to the account

agentTeamId

Integer

No

The agent team ID assigned to the account

location

String

No

Name of the account’s location ("site" in Salesforce term)

accountSource

String

No

The source of the account record. For example,  Advertisement,  Data.com, or  Trade Show. 

sicCodeStringNoStandard Industrial Classification (SIC) code of the account's main business categorization
sicDescStringNoA brief description of an organization’s line of business, based on its SIC code.

classificationId

Integer

No

The account classification ID

customFields

Array

No

Custom field values associated with an account.

KeyTypeMandatory?Description
fieldEnumYes

Custom field name where the data will be stored. Valid values are:

  • COL1
  • COL2

...

  • COL100
valueStringYes

The value to place into the custom field.

The max length per custom field is 255 characters.

 

typeId

Integer

No

The account type ID

classificationName

String

No

The account classification name 

typeName

String

No

The account type name 

agentName

String

No

Name of the agent assigned to the account

agentTeamName

String

No

Name of the agent team assigned to the account

Get a List of Accounts Associated with the Contact

#Request (JSON)
POST /contact/contacts/qa123/:account/accounts?offset=0&count=2
Host: localhost.com
Content-Type: application/json

#Response
200 OK
Content-Type: application/json
 
{
  "next": "contact/contacts/qa123/accounts?offset=2&count=2",
  "listAccount": [
    {
      "name": "2q041220032454",
      "description": "2q041220032454",
      "industry": "2q041220032454",
      "annualRevenue": 100,
      "phoneFax": "6503510000",
      "billingAddress": {
        "street": "Bangalore_1",
        "city": "Bangalore",
        "state": "KA",
        "postalCode": "560001",
        "country": "INDIA"
      },
      "rating": "Hot",
      "phoneOffice": "6503517000",
      "phoneAlternate": "6503517400",
      "website": "www.livevox.com",
      "ownershipType": "Private",
      "numOfEmployees": 1000,
      "tickerSymbol": "LV",
      "shippingAddress": {
        "street": "Bangalore_2",
        "city": "Bangalore2",
        "state": "KA2",
        "postalCode": "560001",
        "country": "IND"
      },
      "campaignId": 28569800,
      "accountNumber": "qaapi12345",
      "originalAccountNumber": "OAN12",
      "agentId": 595348,
      "agentTeamId": 16001,
      "location": "Bang",
      "accountSource": "Advertisement",
      "sicCode": "qa12345678",
      "sicDesc": "qa1234567",
      "classificationId": 173,
      "typeId": 184,
      "customFields": [],
      "id": 53939,
      "createdDate": 1586679899820,
      "createdBy": "apiSysAdmin",
      "modifiedDate": 1591042275833,
      "modifiedBy": "dlu",
      "classificationName": "Silver",
      "typeName": "Grocery",
      "agentTeamName": "apitest"
    },
    {
      "name": "DOC123x",
      "description": "Test for Doc",
      "industry": "Telecom Software",
      "annualRevenue": 5000,
      "phoneFax": "8456911158",
      "billingAddress": {
        "street": "MG Road",
        "city": "Bangalore",
        "state": "Karnataka",
        "postalCode": "560005",
        "country": "India"
      },
      "rating": "Excellent",
      "phoneOffice": "9176754178",
      "phoneAlternate": "6178498807 ",
      "website": "www.livevox.com",
      "ownershipType": "Private",
      "numOfEmployees": 450,
      "tickerSymbol": "LV",
      "shippingAddress": {
        "street": "Trinity Circle",
        "city": "Banagalore",
        "state": "Karnataka",
        "postalCode": "560006",
        "country": "India"
      },
      "campaignId": 28571101,
      "accountNumber": "DOC1231",
      "originalAccountNumber": "ONA12",
      "agentId": 595348,
      "agentTeamId": 16001,
      "location": "Bangalore",
      "accountSource": "Advertisement",
      "sicCode": "qa12345678",
      "sicDesc": "qa12345678",
      "classificationId": 172,
      "typeId": 48,
      "customFields": [
        {
          "field": "COL1",
          "value": "15"
        }
      ],
      "id": 604423,
      "createdDate": 1594635589054,
      "createdBy": "apiSysAdmin",
      "modifiedDate": 1595322442540,
      "modifiedBy": "apiSysAdmin",
      "classificationName": "Gold",
      "typeName": "Hospital",
      "agentTeamName": "apitest"
    }
  ]
}
CODE

Contact Groups

The Contact Groups APIs allow you to create, read, update and list contact groups; it does not yet allow you to delete a contact group.

Create Contact Group

Description:  Creates a Contact group.

User Roles: Sysadmin or Superuser

Method: POST /contact/contactGroups

Parameters:

None

Body:

KeyTypeMandatory?Description
nameStringYesThe name of the contact group.

Response Code: 201 Created

Body:

Key or Attribute

Type

Mandatory?

Description

idInteger (ID)YesThe ID of the newly created Contact Group

Create a Contact Group

#Request (JSON)
POST /contact/contactGroups
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "name": "Client BOA"
}
 
#Response
201 Created
Content-Type: application/json
 
{"id": 2200}
CODE

List Contact Group

Description: Lists the Contact Groups for a client.

Method: GET /contact/contactGroups?count={n}&offset={n}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
countnIntegerYes

Specifies the number of items to return in the list. There are hardcap of1000 items.

offsetnIntegerYesRequired for pagination. Specifies the offset from 0, based on the count, to start listing from.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
nextURINoA URI for the next page of entries. If next is not present, or blank, then there are no pages after this one.
contactGroupArrayNo

An array of contact groups configured for the client.

KeyTypeMandatory?Description
idIntegerYesID of the contact group.
nameStringYesName of the contact group.
createdByStringNoUser who created the contact group.
modifiedByStringNoUser who last modified the contact group.
createdAtDateTimeNoDate when the contact group was created.
modifiedAtDateTimeNoDate when the contact group was last modified.

List Contact Groups for a Client

#Request (JSON)
GET /contact/contactGroups?count={10}&offset={0}
Host: localhost.com
Content-Type: application/json
Accept: application/json

 
#Response
200 OK
Content-Type: application/json
 
{
   "contactGroup":    [
            {
         "id": 1120,
         "name": "Old Group",
         "createdBy": "LiveVox\\Park, Peter",
         "modifiedBy": "LiveVox\\Park, Peter",
         "createdAt": 1427119248000,
         "modifiedAt": 1427119264000
            {
         "id": 2000,
         "name": "Olg Group-1",
         "createdBy": "Product Management\\Shaw, Anindita",
         "modifiedBy": "Product Management\\Shaw, Anindita",
         "createdAt": 1505108737000,
         "modifiedAt": 1505108737000
      },
...
            {
         "id": 2201,
         "name": "Client BOA",
         "createdBy": "Product Management\\Tokugawa, Arlan",
         "modifiedBy": "Product Management\\Tokugawa, Arlan",
         "createdAt": 1509551568000,
         "modifiedAt": 1509551568000
      },
            {
         "id": 2202,
         "name": "Client BOA",
         "createdBy": "Product Management\\Tokugawa, Arlan",
         "modifiedBy": "Product Management\\Tokugawa, Arlan",
         "createdAt": 1509551747000,
         "modifiedAt": 1509551747000
      }
   ],
   "next": "contact/contactGroups/?offset=10&count=10"
}
CODE

Read Contact Group

Description: Reads information about a specific Contact Group. 

Method: GET /contact/contactGroups/{id}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
ididIntegerYesThe ID of the contact group to read.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
idIntegerYesID of the contact group.
nameStringYesName of the contact group.
createdByStringNoUser who created the contact group.
modifiedByStringNoUser who last modified the contact group.
createdAtDateTimeNoDate when the contact group was created.
modifiedAtDateTimeNoDate when the contact group was last modified.

Read Contact Group

#Request (JSON)
GET /contact/contactGroups/2200
Host: localhost.com
Content-Type: application/json
Accept: application/json

#Response
200 OK
Content-Type: application/json

{
   "id": 2200,
   "name": "Client BOA",
   "createdBy": "Product Management\\Simpson, Homer",
   "modifiedBy": "Product Management\\Strong, Man",
   "createdAt": 1509551523000,
   "modifiedAt": 1509551523000
}
CODE

Update Contact Group

Description:  Updates the information for a Contact Group.

User Roles: Sysadmin or Superuser

Method: PUT /contact/contactGroups/{id}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
ididStringYesThe ID of the contact group to be updated.

Body:

KeyTypeMandatory?Description
nameStringYes

The new name of the contact group.

Response Code: 204 No Content

Body:

None

Update a Contact Group

#Request (JSON)
PUT /contact/contactGroups/1234567
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "name": "BOA Group Agents"
}

#Response
204 No Content
Content-Type: application/json
 
CODE

Update Contact Group that Doesn't Exist

#Request (JSON)
PUT /contact/contactGroups/1234567353
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
   "name": "BOA Group Agents"
}

#Response
404 Not Found
Content-Type: application/json

{
   "code": 203,
   "message": "Contact group with 22007 not found"
}
CODE

Contact Notes

The Contact Notes APIs allow you to read and list Contact Notes.

List Contact Notes

Description: List all Contact Notes for an account.

Method: GET /contact/contacts/{account}/notes/

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
accountaccountStringYesThe account to list the Contact Notes for.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
listContactNotesArrayYes

An array of Contact Notes for the account.

KeyTypeMandatory?Description
idInteger (ID)YesThe ID of the Contact Note.
noteStringYesContents of the note.

List the Contact Notes for an Account

#Request (JSON)
GET /contact/contacts/123456/notes/
Accept: application/json
 

#Response
200 OK
Content-Type: application/json
 
{
  "listContactNotes": [
    {
      "id": 1489384,
      "note": "Caller was hostile"
    },
    {
      "id": 234567,
      "note": "Do not accept check payments from this account."
    }
  ]
}
CODE

Read Contact Note

Description: Read a Contact Note.

Method: GET /contact/contacts/{account}/ notes/{id}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatory?Description
accountaccountStringYesSpecifies the account that the note is assigned to.
ididInteger (ID)YesThe ID of the Contact Note to be read.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
idInteger (ID)YesThe ID of the Contact Note.
noteStringYesContents of the note.
sessionIdStringYesThe session ID of the call the note was created on.
transactionIdIntegerYesThe transaction ID where the note was created.
createDatedateTimeYesDate and time the note was created.
modifiedDatedateTimeYesDate and time the note was last modified.

Read a Contact Note

#Request (JSON)
GET /contact/contacts/123456/notes/1489384
Accept: application/json
 

#Response
200 OK
Content-Type: application/json

 
{
   "id": 1489384,
   "note": "LV_SH1: Contact was hostile",
   "transactionId": 5534420908,
   "sessionId": "U1FF238B4736@10.201.17.196",
   "createDate": 1502285778000,
   "modifiedDate": 1502285778000
}
CODE

Custom Field

The Custom Field APIs allow you to update, list, and read the custom fields; it does not, however, allow you to update the values contained in those fields. To do this you'll need to use the Update Contact method.

List Custom Field

Description: List the custom fields configured for the Client.

User Roles: Sysadmin, Superuser, Manager, or IT User

Method: GET /contact/contacts/customFields

Parameters:

None

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
customFieldsArrayNo

An array of custom fields configured for the client.

KeyTypeMandatory?Description
labelStringYesLabel for the custom field
fieldEnumYes

Custom field the label is assigned to; possible values include:

  • COL1
  • COL2

...

  • COL100
dataTypeEnumYes

Possible Values:

  • NUMBER
  • STRING
  • DATE
  • BOOLEAN
  • LIST
listValuesArrayNo

Only returned if the dataType is 'LIST' and contains the predefined list of values.

TypeMandatory?Description
StringYesThe predefined list of values for list fields

List Custom Fields for a Client

#Request (JSON)
GET /contact/contacts/customFields
Host: localhost.com
Content-Type: application/json
Accept: application/json

 
#Response
200 OK
Content-Type: application/json
 
{
  "customFields": [
    {
      "field": "COL9",
      "label": "Company",
      "dataType": "STRING"
    },
    {
      "field": "COL8",
      "label": "Phone 1 Status Description",
      "dataType": "STRING"
    },
...
    {
      "field": "COL25",
      "label": "Last Agent Routing",
      "dataType": "STRING"
    },
    {
      "field": "COL24",
      "label": "Score Type",
      "dataType": "NUMBER"
    }
  ]
}
CODE

Read Custom Field

Description: Read a specific custom field.

User Roles: Sysadmin, Superuser, Manager, or IT User

Method: GET /contact/contacts/customFields/{field}

Parameters:

Path/Query Parameter NameVariable NameTypeMandatoryDescription
fieldfieldStringYesField name assigned to the custom field. This is the COL1-COL100 field name not the label of the field.

Body:

None

Response Code: 200 OK

Body:

KeyTypeMandatory?Description
labelStringYesLabel for the custom field
fieldEnumYes

Custom field the label is assigned to; possible values include:

  • COL1
  • COL2

...

  • COL100
dataTypeEnumYes

Possible Values:

  • NUMBER
  • STRING
  • DATE
  • BOOLEAN
  • LIST
listValuesArrayNo

Only returned if the dataType is 'LIST' and contains the predefined list of values.

TypeMandatory?Description
StringYesThe predefined list of values for list fields

Read a Custom Field

#Request (JSON)
GET /contact/contacts/customFields/COL7
Host: localhost.com
Content-Type: application/json
Accept: application/json

 
#Response
200 OK
Content-Type: application/json
 
{
  "listValues": [
    "blue",
    "green",
    "red"
  ],
  "field": "COL30",
  "label": "Test",
  "dataType": "LIST"
}
CODE

Update Custom Field

Description: Update a custom field. This will not replace or remove the current values in the custom fields, it will only update the properties of that field.

User Roles: Sysadmin or IT User

Method: PUT /contact/contacts/customFields

Parameters:

None

Body:

KeyTypeMandatory?Description
customFieldsArrayYes

An array of custom fields and the labels you want to be assigned to them.

KeyTypeMandatory?Description
fieldEnumYes

The custom field name to be updated; possible values include:

  • COL1
  • COL2

...

  • COL100
labelStringYesThe new label for the custom field.
dataTypeEnumNo

The default is "NUMBER" if the "dataType" field is missing in the request. Possible values:

  • NUMBER
  • STRING
  • DATE
  • BOOLEAN
  • LIST
listValuesArrayNo

Only returned if the dataType is 'LIST' and contains the predefined list of values.

Type

Mandatory?

Description

StringYes

The predefined list of values for list fields 

Updating list values works as a full replace so you must include all current values if you want them to continue to be available.

Response Code: 204 No Content

Body:

None

Update Custom Field

#Request (JSON)
PUT /contact/contacts/customFields
Host: localhost.com
Content-Type: application/json
Accept: application/json

{
  "customFields": [
    {
      "field": "COL11",
      "label": "Balance Due After Date"
    }
  ]
}
 
#Response
204 No Content
CODE

Errors

For more information, see the Errors section on the REST APIs page.

Top of Page