Download PDF
Download page Contact API.
Contact API
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.
Context API Resource | Link |
---|---|
Contact WADL | |
Contact Swagger | |
Contact Groups WADL | |
Contact Groups Swagger |
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 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
startDate | Date | No | The 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). | ||||||||
endDate | Date | No | The 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). | ||||||||
exportableFields | Object | Yes | 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
|
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,
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]
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,
Create Contact
Description: Creates a Contact in the LiveVox contact editor.
User Roles: Sysadmin or Superuser
Method: POST /contact/contacts/
Parameters:
None
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
createContactDetails | Object | Yes | Details of a Contact to create.
|
Response Code: 201 Created
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The 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"
}
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!"
}
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 Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
account | acct | String | Yes | The 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
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
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 Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a hard cap of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count, to start listing from. |
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
search | Object | Yes | 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:
Condition:
| ||||||||||||||||||||||||||||||||||||||||
sort | Array | No | The sort order of the returned contacts.
|
Response Code: 200 Ok
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | No | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findMatchingContactsDetails | Array | No | An array of contacts that match the specified filter criteria in the request.
|
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"
}
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
}
]
}
List Contact
Description: Lists the clients' contacts.
Method: GET /contact/contacts?count={n}&offset={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a limit of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on count, to start listing from. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | No | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
listContactDetails | Array | No | An array of contacts
|
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"
}
Read Contact
Description: Reads information about specific contact.
Method: GET /contact/contacts/{acct}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
account | acct | String | Yes | The Account of the contact to read. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
readContactDetails | Object | No | Details of the contact
|
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
}}
Update Contact
Description: Updates the information for a contact.
User Roles: Sysadmin or Superuser
Method: PUT /contact/contacts/{account}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
account | account | String | Yes | The identifier for the contact you want to update. |
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
updateContactDetails | Object | No | The details of a contact that will be updated.
|
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
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
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 |
---|---|---|---|---|
account | account | String | Yes | Identifier of the account, normally coming from a Client's system of record. |
Body :
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
updateContactDND | Array | No | An array of phone numbers associated with the contact and how their DND settings will be updated
| ||||||||||||||||||||||||
accountBlock | Enum | No | The LiveVox system will block dialing to this phone-account combination for the entire day or permanently if this property is set to
|
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
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"
}
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 | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
contactDnd | Array | Yes | An array of Contact phones and their dnd settings
|
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
updated | Integer | Yes | Total 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
}
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
}
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 |
---|---|---|---|---|
count | n | Integer | Yes | Specifies the number of items to return in the list. There is a hard cap of 1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on count, to start listing from. |
Body:
None
Response Code: 200 OK
Body (JSON):
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | No | A 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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
listAccounts | Array | No | A list of accounts. The list is sorted by "
|
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"
}
]
}
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:
Key | Type | Mandatory? | Description |
---|---|---|---|
name | String | Yes | The name of the contact group. |
Response Code: 201 Created
Body:
Key or Attribute | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The 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}
List Contact Group
Description: Lists the Contact Groups for a client.
Method: GET /contact/contactGroups?count={n}&offset={n}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
count | n | Integer | Yes | Specifies the number of items to return in the list. There are hardcap of1000 items. |
offset | n | Integer | Yes | Required for pagination. Specifies the offset from 0, based on the count, to start listing from. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
next | URI | No | A URI for the next page of entries. If next is not present, or blank, then there are no pages after this one. | ||||||||||||||||||||||||||||
contactGroup | Array | No | An array of contact groups configured for the client.
|
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"
}
Read Contact Group
Description: Reads information about a specific Contact Group.
Method: GET /contact/contactGroups/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | id | Integer | Yes | The ID of the contact group to read. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer | Yes | ID of the contact group. |
name | String | Yes | Name of the contact group. |
createdBy | String | No | User who created the contact group. |
modifiedBy | String | No | User who last modified the contact group. |
createdAt | DateTime | No | Date when the contact group was created. |
modifiedAt | DateTime | No | Date 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
}
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 Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
id | id | String | Yes | The ID of the contact group to be updated. |
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
name | String | Yes | 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
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"
}
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 Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
account | account | String | Yes | The account to list the Contact Notes for. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
listContactNotes | Array | Yes | An array of Contact Notes for the account.
|
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."
}
]
}
Read Contact Note
Description: Read a Contact Note.
Method: GET /contact/contacts/{account}/ notes/{id}
Parameters:
Path/Query Parameter Name | Variable Name | Type | Mandatory? | Description |
---|---|---|---|---|
account | account | String | Yes | Specifies the account that the note is assigned to. |
id | id | Integer (ID) | Yes | The ID of the Contact Note to be read. |
Body:
None
Response Code: 200 OK
Body:
Key | Type | Mandatory? | Description |
---|---|---|---|
id | Integer (ID) | Yes | The ID of the Contact Note. |
note | String | Yes | Contents of the note. |
sessionId | String | Yes | The session ID of the call the note was created on. |
transactionId | Integer | Yes | The transaction ID where the note was created. |
createDate | dateTime | Yes | Date and time the note was created. |
modifiedDate | dateTime | Yes | Date 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
}
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:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customFields | Array | No | An array of custom fields configured for the client.
|
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"
}
]
}
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 Name | Variable Name | Type | Mandatory | Description |
---|---|---|---|---|
field | field | String | Yes | Field 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:
Key | Type | Mandatory? | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
label | String | Yes | Label for the custom field | ||||||
field | Enum | Yes | Custom field the label is assigned to; possible values include:
...
| ||||||
dataType | Enum | Yes | Possible Values:
| ||||||
listValues | Array | No | Only returned if the dataType is
|
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"
}
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:
Key | Type | Mandatory? | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customFields | Array | Yes | An array of custom fields and the labels you want to be assigned to them.
|
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
Errors
For more information, see the Errors section on the REST APIs page.