Contact Object Structure

This section is dedicated to the Contact object structure, which is a central element in contact management. This guide will help you understand the detailed structure of the Contact object used across various endpoints, such as contact details retrieval, updates, and listings.

πŸ“˜

Contact Types

In our system, contacts are categorized as follows:

  • Corporate or Service

These are pre-configured or system-generated contacts that are essential for the functioning of various services or corporate operations.

  • Company

These are user-defined or manually added contacts that represent individuals or company entities outside of the core system functionalities.

This API allows modifications to company contacts only. You can create, update or delete company contacts as needed. Please note that modifications to other types of contacts are not supported

Contact JSON Object Structure

Below is the detailed JSON structure of the Contact object. This structure is utilized in several API endpoints related to contact operations.

{
    "id": "2h_JNsaISleZWA36GRh3YQ",
    "assignedUserId": "2h_JNsaISleZWA36GRh3YQ",
    "branchId": "ovYzzgfDSDqolA3RbhWjbw",
    "branchName": "Tech Support Division",
    "companyName": "8x8 Inc.",
    "contactType": "corporate",
    "createdTimestamp": 1621341000000,
    "customerId": "0016C00000VM1BeQAL",
    "department": "Support",
    "displayWhenNoExtension": true,
    "firstName": "James",
    "hideInAA": false,
    "jobTitle": "Agent",
    "lastName": "Miller",
    "locale": "en_US",
    "middleName": "Edward",
    "name": "James Edward Miller",
    "nickName": "Jim",
    "pbxId": "bhjLT03CTJuVwgAy9y3DOQ",
    "pbxName": "qmsarealenv1",
    "pictureHash": "a046a853f0e131f18001d1174d8588ff76172a1350ba5ff1ba081caa470f6e1e",
    "timeZone": "America/Los_Angeles",
    "updatedTimestamp": 1678182231575,
    "addresses": [
        {
            "id": 23071,
            "apartmentNumber": null,
            "city": "San Jose",
            "country": "United States",
            "county": "Santa Clara",
            "notes": "8x8 Headquarters",
            "postalCode": "95131",
            "primary": true,
            "purposeType": "WORK",
            "state": "California",
            "streetName": "1st St",
            "streetNumber": "675"
        }
    ],
    "emails": [
        {
            "id": 86533,
            "email": "[email protected]",
            "primary": true,
            "purposeType": "WORK"
        }
    ],
    "extensions": [
        {
            "id": 52400,
            "branchId": "ovYzzgfDSDqolA3RbhWjbw",
            "branchName": "ContactSite",
            "contactId": "2h_JNsaISleZWA36GRh3YQ",
            "displayInDirectory": true,
            "extension": "60000001",
            "extensionType": "CC",
            "fqExtension": "1460000001",
            "pbxId": "bhjLT03CTJuVwgAy9y3DOQ",
            "pbxName": "qmsarealenv1",
            "subscriptionId": "aK60JcBERnKIya9Rt7BCxA",
            "subscriptionType": "UE"
        }
    ],
    "phones": [
        {
            "id": 48073,
            "phone": "04029511367",
            "primary": true,
            "purposeType": "WORK",
            "source": "EXTERNAL"
        },
        {
            "id": 48074,
            "phone": "0756124412",
            "primary": false,
            "purposeType": "HOME",
            "source": "EXTERNAL"
        }
    ],
    "tags": [
        {
            "id": 25672,
            "name": "customField2",
            "value": "value2"
        },
        {
            "id": 25673,
            "name": "customField1",
            "value": "value_updated"
        },
        {
            "id": 25674,
            "name": "customField3",
            "value": "value3"
        }
    ]
}

🚧

Legacy Field Usage

In the latest version of our application, we have retained certain fields from the previous system iteration, such as subscriptionId and contactRecordId, for archival and reference purposes. These fields are crucial in preserving historical data linkages and ensuring continuity.

We advise against using these legacy fields for current decision-making or feature development

Detailed Field Descriptions

Basic Information

NameTypeDescriptionExampleApplicabilityRestrictions
id*stringUnique identifier for the contactnull (auto-generated)AllRead Only
assignedUserIdstringIdentifier for the user to whom the contact is assignedbhjT03CtUvWgAy9b3DOQCorporateRead Only
branchIdstringIdentifier for the site where the contact is locatedbr_301AllMax 64 chars
branchNamestringName of the site where the contact is locatedTech Support DivisionAllMax 128 chars
companyNamestringName of the company the contact is associated with8x8 Inc.CompanyMax 128 chars
contactType*stringType of contact, e.g., companycompanyAllRead Only Enum: company, corporate, service
customerId*stringIdentifier for the customer to whom the contact belongs0016C00000VM1BeQAXAllMax 32 chars
departmentstringDepartment within the company where the contact worksSupportCompany, CorporateMax 100 chars
displayWhenNoExtensionbooleanFlag to control visibility of a corporate contact that does not have an extension (i.e. a user with no license). This setting is ignored for corporate contacts that have one more more extensions (extensions[x].displayInDirectory will be used instead)falseCorporateRead Only
firstNamestringFirst name of the contactAliciaCompany, CorporateMax 128 chars
jobTitlestringProfessional title of the contactAccount ManagerCorporateRead Only
lastNamestringLast name of the contactRodriguezCompany, CorporateMax 30 chars
localestringLocale setting representing the contact's language and region formaten_USCompany, CorporateThis expects a language code(en-US), or a string representation(en_US)
locationstringPhysical or office location of the contactNew York OfficeCompanyMax 128 chars
middleNamestringMiddle name of the contactB.Company, CorporateMax 30 chars
nickNamestringNickname or informal name used for the contactAliCompany, CorporateMax 30 chars
pbxIdstringIdentifier for the PBX associated with the contacttVK8Vd5Aj1yskcl_-_13AAllMax 32 chars
pbxNamestringName of the PBX associated with the contactvoedidionworkflow25AllMax 32 chars
pictureHashstringA unique hash value representing the picture, used for verification purposes.a046a853f0e131f18001d1174dCompany, CorporateRead Only
subscriptionIdstringUnique identifier for the subscription0_0qy7cCMFK1HEXLZZAServiceRead Only
subscriptionNamestringThe name of the subscription plan or serviceHelpdeskServiceRead Only
subscriptionTypestringIndicates the service type associated with this extension. It defines which service or functionality the extension is currently linked to or utilizing.CQServiceRead Only Supported Values: UE, VCCE, RG, CQ, AA
subscriptionUserIdstringIdentifier for the user associated with the subscription0eDDyAIIQU1Sb771BB23gServiceRead Only
timeZonestringTime zone where the contact is locatedAmerica/New_YorkCompany, CorporateAccepts region-based zone IDs only (e.g., "America/New_York")

Addresses

NameTypeDescriptionExampleRestrictions
apartmentNumberstringThe specific apartment number within a building or complex102Max 5 digits
citystringThe city of the contact’s addressSan JoseMax 64 chars
countrystringThe nation where the address is locatedUnited StatesMax 64 chars
countystringThe county of the contact's addressSanta ClaraMax 64 chars
notesstringAdditional notes about the address8x8 HeadquartersMax 128 chars
postalCodestringThe postal or ZIP code for the address95131Max 16 chars
primarybooleanIndicates if this is the primary address for the contacttrue
purposeTypestringThe intended use of the address (e.g., WORK, HOME)WORKSupported Values: HOME, WORK, OTHER
statestringThe state or region in which the contact is locatedCaliforniaMax 64 chars
streetNamestringThe name of the street for the address1st StMax 64 chars
streetNumberstringThe house or building number675Max 8 chars

Emails

NameTypeDescriptionExampleRestrictions
email*stringThe email address associated with the contact[email protected]Valid email format; must be unique
primary*booleanIndicates if this is the primary email address for the contacttrueOnly one email can be designated as primary
purposeType*stringThe intended use of the email addressWORKSupported Values: HOME, WORK, OTHER

Phones

NameTypeDescriptionExampleRestrictions
phone*stringPhone number of the contact. Recommended format: E.164 without punctuation+18005551234Valid phone format; must be unique
primary*booleanIndicates if this is the primary phone number for the contacttrueOnly one phone can be designated as primary
purposeType*stringThe intended use of the phone numberWORKSupported Values: HOME, HOME_FAX, WORK, WORK_FAX, MOBILE, PAGER, OTHER
sourcestringOrigin of the phone numberEXTERNALSupported Value: EXTERNAL

Tags

NameTypeDescriptionExampleRestrictions
name*stringThe name or key of the tagcustomField1Limited to 10 values like customField1 through customField10.
valuestringThe value assigned to the tagvalue1Max 254 chars

πŸ“˜

Mandatory Attributes

Fields marked with an asterisk (*) are mandatory for creating a contact. These attributes are essential and a contact cannot exist without them.

Extensions

NameTypeDescriptionExampleRestrictions
branchIdstringUnique identifier for the branchovYzzgfDSDqolA3RbhWjbwRead Only
branchNamestringName of the branch where the extension is locatedDowntownBranchRead Only
contactIdstringUnique identifier for the associated contact2h_JNsaISleZWA36GRh3YQRead Only
displayInDirectorybooleanIndicates if the extension is visible in the directorytrueRead Only
extensionstringExtension number60000001Read Only
extensionTypestringIndicates whether it is a UC or CC extensionCCRead Only
fqExtensionstringFully qualified extension number1460000001Read Only
hideInAAbooleanFlag to hide the contact in the Auto AttendanttrueRead Only
pbxIdstringUnique identifier for the PBXbhjLT03CTJuVwgAy9y3DOQRead Only
pbxNamestringName of the PBX system associated with the extensionqmsarealenv1Read Only
subscriptionIdstringUnique identifier for the subscriptionaK60JcBERnKIya9Rt7BCxARead Only
subscriptionTypestringType of subscriptionUERead Only

🚧

Extensions Operational Restrictions

Considered system-generated resources, we restrict modifications to extensions to maintain system integrity.

Visibility Flags Information

NameTypeDescriptionLevelExample
displayInDirectorybooleanIndicates if the extension is visible in the directoryExtensiontrue
displayWhenNoExtensionbooleanIndicates whether to display the contact when there is no extension number associatedContactfalse
hideInAAbooleanDetermines if the contact should be hidden in the Auto AttendantExtensiontrue