Omnichannel Reporting and Data APIs

Build rich and relevant customer experiences by unifying the customer’s journey across touchpoints and engagement systems. Dialpad's Omnichannel Contact Center uses an AI-centric approach where customer context, conversation, and workflow data are continuously processed to create consistent, personalized, and empathetic experiences in real-time.

While the Dialpad dashboard provides basic insight and reporting, you can use our APIs to build custom dashboards to dive into the data that matters to you the most.

Let's dive into the details. 

Data Retention Policy

The Dialpad Digital Experience platform stores customer history for one year, though additional storage and archival options are available for a fee. This data is accessed through the APIs, daily reports, and manual data extraction.
Dialpad runtime/dashboard analysis data is stored for 30 days. This data is displayed in the Dashboard, Statusboard, and other runtime screens.

Get a Digital Engagement API key

If you'd like to build a custom dashboard, you'll need a Digital Experience API key. This unique identifier API key allows partners to access the Dialpad APIs.

Note
Digital Engagement API keys are not the same single-use keys generated from your Company Authentication settings. For more information on Dialpad API keys, head to this Help Center article.

To get a Digital Engagement API key, head to your Admin Settings from Dialpad.com 

  1. Navigate Ai Contact Centers
  2. Select your Digital Contact Center
  3. Navigate to Advanced Settings
  4. Select Configure Digital Engagement 


  5. Select Essential Mode
  6. Select Admin
  7. Select Profile
  8. Select Integrations
  9. Select the Eye icon to unhide your API key, then copy it as required

REST APIs

REST APIs are standard APIs allowing partners to access the Dialpad Digital Experience data.

The Dialpad digital experience cloud instance is a secure and scalable environment that hosts data. API services can fetch data from the cloud instance as needed, eliminating the need for an on-premise data aggregation service.

Response Document
The response will be a JSON array of messages, sent in the following format:

[
   {
        "messages"[
             {},
             {}
         ]
    }
]

The message will be:

Response status:
● 200OK -> Payload will be an array of messages or an empty array if no
messages found.
● There be an appropriate HTTP status code for all other error conditions.
● The response will be an empty array if an invalid or non-existent customersessionid is given for the customer session API

API endpoints

An API endpoint is a specific web address that allows different software applications to communicate and exchange data with each other. It serves as a doorway or access point to access a particular functionality or resource provided by an API.

Let's look at the different API Endpoints Dialpad's Digital Engagement offers.

Get redacted message for a customer session

A customer session is the interaction by the customer with bots and agents during a
given session. This API returns all messages associated with the customer session.

API

GET

KoopidPartnerServer/api/APIEndpoint/Dashboard/{{Provid
erId}}/RedactedMessages

 

Request

Headers     

Authorization: Bearer {{apikey}}
Content-Type: application/json
Accept: application/json

Parameters

 

providerid: {{providerid}}

Digital experience accountid

customersessionid:
{{customersession}}

This will be in the form (-)xxxx.xxxx

limit

Number of entries to be returned Default: 0

offset

Offset for next fetch

Default: 0

start

Start time in epoch

end

End time in epoch

End-start shouldn't be more than 7 days

Response

Status

200 or other HTTP status

 

Body

JSON array

 

Get redacted message for a provider

API to retrieve all customer interactions for the given duration in a company. This API

is useful if a business has their own reporting infrastructure and want to get data
regularly. Maximum duration allowed is 7 days

API

POST

KoopidPartnerServer/api/APIEndpoint/Dashboard/Messages

 

Request

Headers     

Authorization: Bearer {{apikey}}
Content-Type: application/json
Accept: application/json

Parameters

 

providerid: {{providerid}}

Digital experience accountid

Body 

{

"providerId":{{provider
id}},
"start" : {{start}},
"end" : {{end}},
"limit" : 0,
"offset": 0,
"interval": "1d"
}

  • providerid: available on the admin portal
  • start: start time in epoch
  • end: end time in epoch. The difference can not be more than 7 days
  • limit: Number of messages to be returned
  • offset: Offset for subsequent request
  • interval: This parameter is not used.

Response

Status

200 or other HTTP status

 

Body

JSON array

 

Data field description and reference

Your extracted JSON data has a number of fields.

Let's take a look at each of the available fields.

  • text: the text of the message
  • timestamp: time when the message was created in a human-readable format
  • ts: time when the message was created in Unix epoch format (time elapsed in milliseconds since Midnight 1 January 1970). It is the same time as timestamp in
  • a different format.
  • sendername * : the name of the user who created the message
  • senderemail * : the email of the user who created the message
  • sendertype *: the type of user who created the message
    • Possible values are customer/bot/agent
  • sessionid: this field is specified as x.y where x is a unique conversation id and y is the
    session id for this message. 
    • Conversations consist of several consecutive segments
      numbered starting from 1.
    • For example, 12.5 refers to the 5th segment in the conversation with id=12. Note two different conversations may have similar segment ids. For example, 12.5 and 13.5 refer to different segments in different conversations.
  • sentiment:the sentiment for the text field of the message. 
    • Positive values indicate positive sentiment, negative values indicate negative sentiment, and 0 indicates a
      neutral sentiment.
  • workflow * : the name of the encompassing workflow for this message
  • workflownodeid *: the id of the workflow node that resulted in this message
    • The value of this field is taken from the json definition of the workflow.
  • topic: the inferred intent of the text based on the intent definitions that exist for this provider
  • score: the confidence (probability) for the inferred intent or topic value
  • topmatches: shows the top 3 inferred intents for the text in the message, their confidences, and their closest matched text
  • lang: detected language of the text
  • customersessionid:A session id spanning across multiple sessionids.
    • For eg. if a customer connects to the bot, then to an agent, then gets transferred to another agent and again to a bot for survey, there will be a common customersessionid for all these sessionids.
  • sessionchannel: The digital channel where the session is initiated
  • sessionchannelinfo: Metadata associated with the session channel. This will include information like WhatsApp number or twitter handle account details of the business.
  • chattype: Indicates if the given message is part of a bot or agent interaction

* optional field

Entity types

The export of redacted messages may have entity replacement performed as part of privacy and redaction policy. Any provider-specific custom entities will be replaced according to their definition.

Let's take a deeper look at the types of entities that may be replaced.

EntityRedaction NameDescription
Location****GPE****Major cities and countries in the world
Dates****DATE****Some of the supported formats are May 23; May 23, 2018; 02/03/2019; 02-03-2019
Time****TIME****Common time formats
Organization****ORG****

Major organizations such as Citibank, Trader Joe’s, Whole Foods, Chase Bank.

There may
not be support for non-US organizations.

People****NAME****

People names (format firstname lastname).

Ex: Adam Smith, John Doe.
There is limited support for names that have non-Anglo origins.

Money****MONEY****Currency values
Email****EMAIL****Email addresses
Numeric****NUMERIC****String of numbers
Identifier****ID****String of digits and/or letters