All API updates are backwards compatible. We reserve the right to introduce new JSON keys in existing API responses at any time. We recommend handling responses defensively by disregarding any unrecognized keys to ensure continued functionality.
The API endpoints fall into a one of a few groupings
Requests use basic authentication. To create API credentials go to Settings-> Developer Settings-> API Credentials
{{username}}
variable{{password}}
variableEvery installation will have their own subdomain. To find the subdomain, locate the url in your browser, it should look like:
Take that subdomain, the most left value, and substitute it into the {{subdomain}} variable. The remainder would be substituted into the {{domain}} variable.
In the above example, {{subdomain}} would be “customer” and {{domain}} would be “rest.of.url.com”
The API uses the following base URL for all of its API requests
https://{{subdomain}}.{{domain}}/manager/api/v1
where a mention to “/calls” means https://{{subdomain}}.{{domain}}/manager/api/v1/calls
The system limits requests to a rate of 1 request per second per customer.
Agent Endpoints provide a means to get agent objects. Each agent object represents a single agent inside of our platform. Please review the model below to see which fields may be considered PII
[
{
"id": 0,
"email": "string", //This may be considered PII
"created_at": "2018-05-30T20:46:31.333Z",
"last_login_time": "2018-05-30T20:46:31.333Z",
"first_name": "string", //This may be considered PII
"middle_name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"avatar_url": "string",
"agent_number": "string",
"status": {
"id": 0,
"wfm_id": 0,
"name": "string",
"color": "string",
"setting": {
"restricted": true,
"all_roles_restricted": true,
"breakthrough_enabled": true
},
"custom_roles": [1,2,3]
},
"status_updated_at": "2018-05-30T20:46:31.333Z",
"crm_authenticated": true,
"online": true,
"wrap_up": true,
"call_count": 0,
"chat_count": 0,
"location": "string",
"roles": [
"agent"
],
"availability_preferences": {
"id": 0,
"created_at": "2018-05-30T20:46:31.333Z",
"updated_at": "2018-05-30T20:46:31.333Z",
"user_count": 0,
"filter_rules": {
"voice_call": {
"ivr": {
"incoming": true,
"campaign": true,
"voicemail": true,
"scheduled": true,
"callback": true
},
"mobile": {
"incoming": true,
"voicemail": true,
"scheduled": true,
"callback": true
},
"web": {
"incoming": true,
"voicemail": true,
"scheduled": true,
"callback": true
},
"transfer": true
},
"chat": {
"mobile": {
"incoming": true
},
"web": {
"incoming": true
},
"sms": {
"incoming": true
},
"whatsapp": {
"incoming": true
},
"transfer": true
}
}
},
"teams": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"agents_count": 0
}
],
"channels": [
{
"channel_type": "chat",
"menu": {
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"hidden": "string",
"menu_type": "ivr_menu",
"output_msg": "string"
}
}
]
}
]
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
page | FALSE | String | Pairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{per}} |
id[] | FALSE | Array[String] | Array[Strings]. Id of records to search and return | {{id[]}} |
agent_number[] | FALSE | Array[String] | Agent numbers as assigned by the admin at the time of creating an agent | {{agent_number[]}} |
status_id[] | FALSE | Array[String] | Filters by agent status | {{status_id[]}} |
online[] | FALSE | Boolean | Filter by if agents are online or not | {{online[]}} |
wrap_up[] | FALSE | Boolean | Filter by if agents are in wrap up status | {{wrap_up[]}} |
location[] | FALSE | Array[String] | Filters by agent location | {{location[]}} |
last_login_time[from] | FALSE | Time in UTC | creates a lower bound of the last login time field. All records returned will be after the inputted value. | {{last_login_time[from]}} |
last_login_time[to] | FALSE | Time in UTC | creates a upper bound of the last login time field. All records returned will be before the inputted value. | {{last_login_time[to]}} |
status_updated_at[from] | FALSE | Time in UTC | creates a lower bound of the status updated at field. All records returned will be after the inputted value. | {{status_updated_at[from]}} |
status_updated_at[to] | FALSE | Time in UTC | creates a upper bound of the status updated at field. All records returned will be before the inputted value. | {{status_updated_at[to]}} |
Agents Current Status returns all logged in agents and their current status, how long they have been in that status, and additional information to indicate if the agent is on hold and for how long.
Agent activity logs are records created at any time the widget’s state has changed. It can be from logging into the widget, getting a deltacast call notification, or accepting a call among other statuses. Each activity creates a new new object. Please review the model below to see which fields may be considered PII
[
{
"id": 0,
"agent_id": 0,
"whodunnit": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
},
"status": {
"id": 0,
"wfm_id": 0,
"name": "string",
"color": "string",
"setting": {
"restricted": true,
"all_roles_restricted": true,
"breakthrough_enabled": true
},
"custom_roles": [1,2,3]
},
"started_at": "2018-06-06T21:12:24.766Z",
"ended_at": "2018-06-06T21:12:24.766Z",
"duration": 0,
"activity": "login",
"call_id": 0,
"chat_id": 0
}
]
Below is a summary of every activity that can result in an an activity log to be created.
Activity | Description |
---|---|
chat_picked_up | Event that occurs when an agent picks up an agent |
chat_pick_up_attempt | Event that occurs when an agent attempts to become the responding agent |
chat_notification_offered | Event that occurs once an end user request a chat session and a notification is sent to agents assigned to that queue. |
call_notification_offered | Event that occurs when an end user calls and a multicast or deltacast call notification is offered to the agent. |
call_pick_up_attempt | Event that occurs when an agent attempts to pick up a multicast or deltacast call. |
call_picked_up | Event that occurs when an agent answers a multicast or deltacast call. |
deltacast_call_notification_offered | Event that notes that an end user has called into a queue with multicast where a deltacast call is then broadcasted to an agent in that queue. |
deltacast_call_pick_up_attempt | Event that occurs when an agent tries to answer a deltacsted call |
deltacast_call_picked_up | Event that occurs when an agent successfully answers a deltacasted call. |
deltacast_call_missed | Event that occurs when an agent does not answer their deltacasted call |
multicast_call_notification_offered | Event that notes that an end user has called into a queue with multicast where a multicast call is then broadcasted to the agents in that queue |
multicast_call_pick_up_attempt | Event that occurs when a multicasted call has been attempted to be answered by an agent |
multicast_call_picked_up | Event that occurs when a multicasted call has been answered by an agent |
call_outbound_dialing | Event that occurs when an agent uses the dial pad in the widget to call an end user. |
user_status_changed | Event that occurs when an agent changes the state their widget is in |
login | Event that occurs when an agent logs out of the widget |
logout | Event that occurs when an agent logs into the widget |
login | Event that occurs when an agent logs out of the widget |
status_after_inquiries_applied | This event logs when the agent’s pending status update is applied in the widget. |
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
sort_column | FALSE | String | Sorts response based on any field in the response object. | {{sort_column}} |
sort_direction | FALSE | ASC or DESC | Notes the direction of the sort, whether ascending or descending | {{sort_direction}} |
page | FALSE | String | Pairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{per}} |
started_at[from] | FALSE | Time in UTC | creates a lower bound of the started at field. All records returned will be after the inputted value. | {{started_at[from]}} |
started_at[to] | FALSE | Time in UTC | creates a upper bound of the started at field. All records returned will be before the inputted value. | {{started_at[to]}} |
ended_at[from] | FALSE | Time in UTC | creates a lower bound of the ended at field. All records returned will be after the inputted value. | {{ended_at[from]}} |
ended_at[to] | FALSE | Time in UTC | creates a upper bound of the ended at field. All records returned will be before the inputted value. | {{ended_at[to]}} |
duration[from] | FALSE | Number | creates a lower bound of the duration field. All records returned will be after the inputted value. | {{duration[from]}} |
duration[to] | FALSE | Number | creates a upper bound of the duration field. All records returned will be before the inputted value. | {{duration[to]}} |
id[] | FALSE | Array[String] | Array[Strings]. Id of records to search and return | {{id[]}} |
agent_id[] | FALSE | Array[String] | Filters response by agent id | {{agent_id[]}} |
activity[] | FALSE | Array[String] | filters records by what task/activity the agent has accomplished. The possible values are: login, logout, call_outbound_dialing, deltacast_call_notification_offered, deltacast_call_pick_up_attempt, deltacast_call_picked_up, deltacast_call_projected, deltacast_call_missed, deltacast_call_bounced, multicast_call_notification_offered, multicast_call_pick_up_attempt, multicast_call_picked_up, user_status_changed, chat_notification_offered, chat_pick_up_attempt, chat_picked_up, status_after_inquiries_applied | {{activity[]}} |
whodunnit_id[] | FALSE | Array[String] | Filters response by agent id. Whodunnit is a subset of the agent object, and uses the same agent_id as its primary key | {{whodunnit_id[]}} |
call_id[] | FALSE | Array[String] | Filters records by inputted call id’s | {{call_id[]}} |
chat_id[] | FALSE | Array[String] | Filters records by inputted chat id’s | {{chat_id[]}} |
A call object is created for every single call that is made into, or out of our platform. Please review the model below to see which fields may be considered PII.
{
"id": 0,
"parent_id": 0,
"lang": "en",
"call_type": "Voice Inbound (App)",
"status": "scheduled",
"sub_status": "Scheduled: Disconnected by unknown",
"created_at": "2018-06-07T19:49:52.896Z",
"queued_at": "2018-06-07T19:49:52.896Z",
"assigned_at": "2018-06-07T19:49:52.896Z",
"connected_at": "2018-06-07T19:49:52.896Z",
"ends_at": "2018-06-07T19:49:52.896Z",
"scheduled_at": "2018-06-07T19:49:52.896Z",
"updated_at": "2018-06-07T19:49:52.896Z",
"wait_duration": 0, //Deprecated, please use queue_duration instead
"queue_duration": 0,
"call_duration": 0,
"hold_duration": 0,
"rating": 0,
"has_feedback": true,
"voip_provider": "voip_provider_twilio",
"out_ticket_id": "string",
"out_ticket_url": "string",
"verified": true,
"recording_url": "string",
"recording_permission": "not_asked",
"voicemail_reason": "not_voicemail",
"deflection": "no_deflection",
"disconnected_by": "disconnected_by_unknown",
"finish_reason": "no_reason",
"fail_details": "string",
"fail_reason": "nothing",
"adapter_fail_code": null,
"adapter_fail_message": null,
"support_number": "string",
"selected_menu": {
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"hidden": "string",
"menu_type": "ivr_menu",
"output_msg": "string"
},
"menu_path": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"agent_info": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
},
"end_user": {
"id": 0, //This may be considered PII
"identifier": "string", //This may be considered PII
"out_contact_id": "string" //This may be considered PII
},
"photos": [
{
"id": 0, //This may be considered PII
"photo_type": "photo", //This may be considered PII
"url": "string" //This may be considered PII
}
],
"videos": [
{
"id": 0, //This may be considered PII
"url": "string" //This may be considered PII
}
],
"transfers": [
{
"id": 0,
"status": "transferring",
"fail_reason": "nothing",
"created_at": "2018-06-07T19:49:52.896Z",
"call_duration": 300,
"wait_duration": 40,
"assigned_at": "2018-06-07T19:50:32.896Z",
"connected_at": "2018-06-07T19:50:35.896Z",
"updated_at": "2018-06-07T19:55:35.896Z",
"deflection": 0,
"from_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"to_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"from_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
},
"to_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
}
}
],
"handle_durations": [
{
"agent_id": 0,
"acw_duration": 0,
"call_duration" 0,
"menu_path_id": 0,
"wait_duration": 0,
"lang": "en",
"transfer": false,
"started_at": "2019-07-17T07:27:14.000Z",
"ended_at": "2019-07-17T07:27:20.000Z",
"event": "call_finished"
}
],
"queue_durations": [
{
"agent_id": 0,
"queue_duration" 0,
"menu_path_id": 0,
"lang": "en",
"transfer": false,
"started_at": "2019-07-17T07:27:14.000Z",
"ended_at": "2019-07-17T07:27:20.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "not_in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60,
"event": "answered"
}
]
"participants": [
{
"id": 0,
"type": "end_user",
"status": "waiting",
"call_id": 0,
"user_id": 0, //This may be considered PII
"end_user_id": 0, //This may be considered PII
"call_duration": 0,
"hold_duration": 0,
"connected_at": "2018-06-07T19:49:52.896Z",
"ended_at": "2018-06-07T19:49:52.896Z",
"fail_reason": "nothing",
"adapter_fail_code": null,
"adapter_fail_message": null
},
"offer_type": null,
"offer_events": [],
"answer_type": "manual",
"outbound_number": null,
"wait_time_sms": [],
"in_call_sms": []
]
}
]
The status field can be in any of the following states
Call Status | Description |
---|---|
Selecting | State that occurs when an end user has called into the contact center, but is still navigating the menu options prior to call request from a leaf node. |
Queued | State that occurs after the end user has selected a leaf menu node and initiated a call request to be deltcasted or multicasted to an agent. |
Assigned | State that occurs when an agent is selected to received the end user call. This occurs when an agent picks up a call. |
Connecting | State that occurs after an agent is assigned, and is waiting to be establish a connection between the end user and agent. |
Connected | State that occurs when the call has established a connection and the agent and end user are both placed into a call. |
Finished | State that occurs when an agent and end user’s conversation ends a call without any errors. |
Failed | State that occurs when a call ends because of an error. When this status is rendered, a failed reason will also be provided for more context |
Switching | State that occurs when a call fails while trying to connect and our platform attempts to connect the call with a different VOIP provider. |
Recovered | State that occurs when a failed call is called back. This new call is a child to the original call. Recovered notes that the call back is finished without error. |
Scheduled | State that occurs when an end user has chosen to be called in the future as part of a deflection option or has selected to be called in the future via In-Web or In-App. |
Action Only | State that occurs when a call that is handled by our client’s own telephony provider is connected to our iOS or Android SDK. |
Action Only Finished | State that occurs when a call that is handled by our client’s own telephony provider is connected to our iOS or Android SDK and finishes |
Deflected | State that occurs based on the configuration for overcapacity queues or after hour calls. Deflection options include voicemail, schedule call among others. Deflection will vary based on channel (In-app, IVR, In-web) |
Voicemail | State that occurs when an end user is deflected to a voicemail option, and opts to leave a voicemail message to listened to later. This state is present when the end user is leaving the voicemail |
Voicemail Received | State that occurs after an end user has left a voicemail and an agent has not listened to the voicemail |
Voicemail Read | State that occurs when an agent has opened the voicemail to listen to. |
The call_type field can only be one of the following values
Call Status | Description |
---|---|
Voice Inbound (IVR) | Incoming PSTN call from an end user’s phone. |
Voice Inbound (App) | Incoming call made from within a iOS or Android application that uses our Mobile SDK. |
Voice Callback (Web) | Incoming call request made from within our Web SDK |
Voice Scheduled (App) | Call made from an agent to an end user that was pre-scheduled using the Mobile SDK scheduling functionality. |
Voice Scheduled (Web) | Call made from an agent to an end user that was pre-scheduled using our Web SDK scheduling functionality |
Voice Outbound | Call made from an agent to an end user dialed via the dial pad or other method to call an outside phone line. |
The service_level_event field can only be one of the following vales
Service Level Event | Description |
---|---|
in_sla | Call was answered within SLA |
not_in_sla | Call was not answered within defined SLA |
excluded | Call was not included in SLA calculation (e.g. if call was abandoned) |
The adapter_fail_code and adapter_fail_message fields can only be one of the following values if not null
Adapter Fail Code | Adapter Fail Message |
---|---|
10001 | This call encountered an unexpected error. |
11001 | This call expired while waiting in queue. |
20001 | This call was cancelled by the customer. |
20002 | This call was rejected by the customer. |
20003 | This call was abandoned by the customer. |
20004 | This call was abandoned by the customer during menu selection. |
21001 | The call could not be connected; the customer’s line is busy. |
21002 | The dialed phone number is invalid. |
21003 | This call was was not answered by the customer. |
22001 | The push notification to start this call failed to send. |
30001 | This call was cancelled. |
30002 | This expired call was not attended. |
31001 | Unable to detect microphone. Please check your device settings and try again. |
31002 | Unable to access microphone. Please check your device permissions and try again. |
32001 | The selected outbound number is invalid. |
32002 | Unable to connect call to the dialled phone number. |
41001 | An unexpected error occurred with the call connection. |
42001 | An unexpected error occurred with the call connection. |
43001 | This call has encountered an unexpected error. |
44001 | This call has encountered an unexpected error. |
44002 | This call is terminated because the connection timed out. |
44003 | This call has encountered an unexpected error. |
90001 | This call is terminated because no audio was detected. |
90002 | Unable to start the audio device. Please check your audio device permissions and try again. |
DEPRECATIONS
wait_duration has been deprecated. Please use queue_duration instead.
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
connected_at[from] | FALSE | Time in UTC | creates a lower bound of the connected at field. All records returned will be before the inputted value. | {{connected_at[from]}} |
connected_at[to] | FALSE | Time in UTC | creates an upper bound of the connected at field. All records returned will be before the inputted value. | {{connected_at[to]}} |
updated_at[from] | FALSE | Time in UTC | creates a lower bound of the updated at field. All records returned will be after the inputted value. | {{updated_at[from]}} |
updated_at[to] | FALSE | Time in UTC | creates an upper bound of the connected at field. All records returned will be before the inputted value. | {{updated_at[to]}} |
queued_at[from] | FALSE | Time in UTC | creates a lower bound of the queued at field. All records returned will be after the inputted value. | {{queued_at[from]}} |
queued_at[to] | FALSE | Time in UTC | creates an upper bound of the queued at field. All records returned will be before the inputted value. | {{queued_at[to]}} |
rating[from] | FALSE | Number 1-5 or null | creates a lower bound of the rating field. All records returned will be after the inputted value. | {{rating[from]}} |
rating[to] | FALSE | Number 1-5 or null | creates an upper bound of the rating field. All records returned will be before the inputted value. | {{rating[to]}} |
call_duration[from] | FALSE | Number | creates a lower bound of the call duration field. All records returned will be after the inputted value. | {{call_duration[from]}} |
call_duration[to] | FALSE | Number | creates an upper bound of the call duration field. All records returned will be before the inputted value. | {{call_duration[to]}} |
hold_duration[from] | FALSE | Number | creates a lower bound of the hold duration field. All records returned will be after the inputted value. | {{hold_duration[from]}} |
hold_duration[to] | FALSE | Number | creates an upper bound of the hold duration field. All records returned will be before the inputted value. | {{hold_duration[to]}} |
agent_id[] | FALSE | Array[String] | Filters response by agent id | {{agent_id[]}} |
end_user_id[] | FALSE | Array[String] | Filters response based on the end user id | {{end_user_id[]}} |
call_status[] | FALSE | Array[String] | Return records of a given state in the call lifecycle. The possible values are: scheduled, queued, assigned, connecting, switching, connected, finished, failed, recovered, deflected, selecting, action_only, action_only_finished, voicemail, voicemail_received, voicemail_read | {{call_status[]}} |
call_fail_reason[] | FALSE | Array[String] | Returns records that have failed in a certain way. The possible values are: nothing, unknown, expired, eu_canceled, eu_rejected, eu_abandoned, eu_in_menu_abandoned, eu_busy, eu_wrong_number, eu_no_answer, eu_noti_failed, ag_canceled, ag_ignored, ag_mic_no_device, ag_mic_denied, voip_twilio_error, voip_tokbox_error, voip_invalid_token, voip_conn_general, voip_conn_timeout, voip_conn_signal | {{call_fail_reason[]}} |
verified[] | FALSE | Boolean | Returns records that either have been verified (True) or have not been verified (False) | {{verified[]}} |
call_type[] | FALSE | Array[String] | Returns records of a given call type. The possible values are: IncomingCallApp, ScheduledCallApp, OutboundCall, AgentScheduledCall, IvrCall, IncomingCallWeb, ScheduledCallWeb, ActionOnlyCall | {{call_type[]}} |
support_number[] | FALSE | Array[String] | Filter by the phone number end user used to contact (only for IVR call) | {{support_number[]}} |
Key | Value | Description |
---|---|---|
Content-Type | application/json |
Below is a model of the chat resource. Please review the fields to see what may be considered PII.
[
{
"id": 31354,
"lang": "en",
"chat_type": "Messaging Inbound (App Chat)",
"status": "finished",
"sub_status": "Disconnected by end user",
"created_at": "2019-07-17T07:27:14.000Z",
"assigned_at": "2019-07-17T07:27:20.000Z",
"ends_at": "2019-07-17T07:29:02.000Z",
"updated_at": "2019-07-17T07:29:02.000Z",
"first_msg_sent_at": "2019-07-17T07:27:26.000Z",
"last_msg_sent_at": "2019-07-17T07:27:28.000Z",
"wait_duration": 0, //Deprecated, please use queue_duration instead
"queue_duration": 0,
"chat_duration": 0,
"verified": false,
"rating": 0,
"has_feedback": false,
"out_ticket_id": "string",
"out_ticket_url": "string",
"finish_reason": "finish_reason_none",
"fail_reason": null,
"message_count": 3,
"average_response_time": 0,
"longest_response_time": 0,
"selected_menu": {
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"hidden": "string",
"menu_type": "ivr_menu",
"output_msg": "string"
},
"menu_path": {
"items_count": 1,
"name": "Ringo",
"materialized_path": "3389"
},
"agent_info": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
},
"end_user": {
"id": 0, //This may be considered PII
"identifier": "string", //This may be considered PII
"out_contact_id": "string" //This may be considered PII
},
"photos": [
{
"id": 0, //This may be considered PII
"photo_type": "photo", //This may be considered PII
"url": "string" //This may be considered PII
}
],
"videos": [
{
"id": 0, //This may be considered PII
"url": "string" //This may be considered PII
}
],
"transfers": [
{
"id": 0,
"status": "transferring",
"fail_reason": "nothing",
"created_at": "2018-06-07T19:49:52.896Z",
"from_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"to_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"from_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
},
"to_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string",
"avatar_url": "string"
}
}
],
"handle_durations": [
{
"agent_id": 0,
"acw_duration": 0,
"chat_duration" 0,
"wait_duration": 0,
"menu_path_id": 0,
"lang": "en",
"transfer": false,
"started_at": "2019-07-17T07:27:14.000Z",
"ended_at": "2019-07-17T07:27:20.000Z",
"event": "chat_finished"
}
],
"queue_durations": [
{
"agent_id": 0,
"queue_duration" 0,
"menu_path_id": 0,
"lang": "en",
"transfer": false,
"started_at": "2019-07-17T07:27:14.000Z",
"ended_at": "2019-07-17T07:27:20.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "not_in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60,
"event": "answered"
}
],
"participants": [
{
"id": 0,
"type": "end_user",
"status": "waiting",
"chat_id": 0,
"user_id": 0, //This may be considered PII
"end_user_id": 0, //This may be considered PII
"entry_type": "queue_or_transfer",
"call_duration": 0,
"hold_duration": 0,
"connected_at": "2018-06-07T19:49:52.896Z",
"ended_at": "2018-06-07T19:49:52.896Z",
"fail_reason": "nothing"
}
]
}
"offer_type": "cascade",
"offer_events": [
{
"casting_time": "2019-07-17T07:27:15.000Z",
"group": "Group 1"
}
]
},
The service_level_event field can only be one of the following vales
Service Level Event | Description |
---|---|
in_sla | Call was answered within SLA |
not_in_sla | Call was not answered within defined SLA |
excluded | Call was not included in SLA calculation (e.g. if call was abandoned) |
DEPRECATIONS
wait_duration has been deprecated. Please use queue_duration instead
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
sort_column | FALSE | String | Sorts response based on any field in the response object. | {{sort_column}} |
sort_direction | FALSE | ASC or DESC | Notes the direction of the sort, whether ascending or descending | {{sort_direction}} |
page | FALSE | String | Pairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{per}} |
assigned_at[from] | FALSE | Time in UTC | creates a lower bound of the assigned at field. All records returned will be after the inputted value. | {{assigned_at[from]}} |
assigned_at[to] | FALSE | Time in UTC | creates an upper bound of the assigned at field. All records returned will be before the inputted value. | {{assigned_at[to]}} |
ends_at[from] | FALSE | Time in UTC | creates a lower bound of the ends at field. All records returned will be after the inputted value. | {{ends_at[from]}} |
ends_at[to] | FALSE | Time in UTC | creates an upper bound of the ends at field. All records returned will be before the inputted value. | {{ends_at[to]}} |
updated_at[from] | FALSE | Time in UTC | creates a lower bound of the updated at field. All records returned will be after the inputted value. | {{updated_at[from]}} |
updated_at[to] | FALSE | Time in UTC | creates an upper bound of the updated at field. All records returned will be before the inputted value. | {{updated_at[to]}} |
created_at[from] | FALSE | Time in UTC | creates a lower bound of the created at field. All records returned will be after the inputted value. | {{created_at[from]}} |
created_at[to] | FALSE | Time in UTC | creates an upper bound of the created at field. All records returned will be before the inputted value. | {{created_at[to]}} |
rating[from] | FALSE | Number 1-5 or null | creates a lower bound of the rating field. All records returned will be after the inputted value. | {{rating[from]}} |
rating[to] | FALSE | Number 1-5 or null | creates an upper bound of the rating field. All records returned will be before the inputted value. | {{rating[to]}} |
first_msg_sent_at[from] | FALSE | Time in UTC | creates a lower bound of the first msg sent at field. All records returned will be after the inputted value. | {{first_msg_sent_at[from]}} |
first_msg_sent_at[to] | FALSE | Time in UTC | creates an upper bound of the first msg sent at field. All records returned will be before the inputted value. | {{first_msg_sent_at[to]}} |
last_msg_sent_at[from] | FALSE | Time in UTC | creates a lower bound of the last msg sent at field. All records returned will be after the inputted value. | {{last_msg_sent_at[from]}} |
last_msg_sent_at[to] | FALSE | Time in UTC | creates an upper bound of the last msg sent at field. All records returned will be before the inputted value. | {{last_msg_sent_at[to]}} |
chat_duration[from] | FALSE | Number | creates a lower bound of the chat duration field. All records returned will be after the inputted value. | {{chat_duration[from]}} |
chat_duration[to] | FALSE | Number | creates an upper bound of the chat duration field. All records returned will be before the inputted value. | {{chat_duration[to]}} |
message_count[from] | FALSE | Number | creates a lower bound of the message count field. All records returned will be after the inputted value. | {{message_count[from]}} |
message_count[to] | FALSE | Number | creates an upper bound of the message count field. All records returned will be before the inputted value. | {{message_count[to]}} |
average_response_time[from] | FALSE | Number | creates a lower bound of the average response time field. All records returned will be after the inputted value. | {{average_response_time[from]}} |
average_response_time[to] | FALSE | Number | creates an upper bound of the average response time field. All records returned will be before the inputted value. | {{average_response_time[to]}} |
longest_response_time[from] | FALSE | Number | creates a lower bound of the longest response time field. All records returned will be after the inputted value. | {{longest_response_time[from]}} |
longest_response_time[to] | FALSE | Number | creates an upper bound of the longest response time field. All records returned will be before the inputted value. | {{longest_response_time[to]}} |
wait_duration[from] | FALSE | Number | creates a lower bound of the wait duration field. All records returned will be after the inputted value. | {{wait_duration[from]}} |
wait_duration[to] | FALSE | Number | creates an upper bound of the wait duration field. All records returned will be before the inputted value. | {{wait_duration[to]}} |
id[] | FALSE | Array[String] | Array[Strings]. Id of records to search and return | {{id[]}} |
agent_id[] | FALSE | Array[String] | Filters response by agent id | {{agent_id[]}} |
end_user_id[] | FALSE | Array[String] | Filters response based on the end user id | {{end_user_id[]}} |
chat_type[] | FALSE | Array[String] | Returns records based on how chat was accessed by the end user. Possible values: Messaging Inbound (App Chat), Messaging Inbound (Web Chat), Messaging (SMS) | {{chat_type[]}} |
chat_status[] | FALSE | Array[String] | Returns records based on where the user is in the chat lifecycle. Possible values: queued, assigned, finished, canceled, failed, no_response | {{chat_status[]}} |
verified[] | FALSE | Boolean | Returns records that either have been verified (True) or have not been verified (False) | {{verified[]}} |
chat_fail_reason[] | FALSE | Array[String] | Returns records based on why a chat may have failed. Possible values: nothing, unknown, no_response, expired | {{chat_fail_reason[]}} |
The service_level_event value can have the following values.
|Service Level Event|Description|
|:——-|:————–|
|in_sla |Call was answered within SLA|
|not_in_sla|Call was not answered within defined SLA|
|excluded|Call was not included in SLA calculation (e.g. if call was abandoned) |
Below is a model of the email support resource. Please review the fields to see what may be considered PII.
[
{
"id": 1442,
"lang": "en",
"email_status": "paused",
"created_at": "2024-01-30T07:09:48.813Z",
"assigned_at": "2024-01-30T07:09:49.000Z",
"finished_at": "2024-02-29T10:00:11.000Z",
"updated_at": "2024-02-29T10:00:11.948Z",
"queue_duration": 0,
"email_duration": 10207,
"out_ticket_id": null,
"out_ticket_url": null,
"total_thread_numbers": 2,
"selected_menu": {
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"hidden": "string",
"menu_type": "email_menu",
"output_msg": "string"
},
"menu_path": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"agent_info": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string", //This may be considered PII
"avatar_url": "string"
},
"end_user": {
"id": 0,
"identifier": "string", //This may be considered PII
"out_contact_id": "string"
},
"email_attachments": [
{
"id": 0,
"file_type": "email_content",
"url": "string" //This may be considered PII
}
],
"email_threads": [
{
"id": 0,
"subject": "string", //This may be considered PII
"attachment_count": 0,
"direction": "string",
"is_read": true,
"is_draft": false,
"created_at": "2023-12-27T09:55:05.546Z",
"updated_at": "2023-12-27T09:55:50.701Z"
},
],
"transfers": [
{
"id": 0,
"status": "transferring",
"created_at": "2024-01-12T19:49:52.896Z",
"updated_at": "2024-01-12T19:55:35.896Z",
"from_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"to_menu": {
"items_count": 0,
"name": "string",
"materialized_path": "string"
},
"from_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string", //This may be considered PI
"avatar_url": "string"
},
"to_agent": {
"id": 0,
"name": "string", //This may be considered PII
"last_name": "string", //This may be considered PII
"first_name": "string", //This may be considered PII
"agent_number": "string", //This may be considered PI
"avatar_url": "string"
}
}
],
"handle_durations": [
{
"agent_id": 0,
"email_duration": 0,
"menu_path_id": 0,
"menu_path": "string",
"lang": "en",
"transfer": false,
"transfer_id": 1,
"assignment_type": "string",
"started_at": "2024-01-10T07:27:14.000Z",
"ended_at": "2024-01-10T07:27:20.000Z",
}
],
"queue_durations": [
{
"agent_id": 0,
"queue_duration": 0,
"menu_path_id": 0,
"menu_path": "string",
"lang": "en",
"started_at": "2024-01-10T07:27:14.000Z",
"ended_at": "2024-01-10T07:27:20.000Z",
"assignment_type": "string",
}
],
"consumer_handle_durations": [
{
"id": 100,
"email_duration": 314,
"attachments_count": 10,
"started_at": "2016-02-19T18:50:08.000Z",
"ended_at": "2016-02-19T18:55:22.000Z"
}
]
},
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
sort_column | FALSE | String | Sorts response based on any field in the response object. | {{sort_column}} |
sort_direction | FALSE | ASC or DESC | Notes the direction of the sort, whether ascending or descending. | {{sort_direction}} |
page | FALSE | String | Pairs with per to note what page of records. For instance, if per is made to be 200 and page is 2, the response would contain record 201-400. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance, if per is made to be 200 and page is 2, the response would contain record 201-400. | {{per}} |
assigned_at[from] | FALSE | Time in UTC | Creates a lower bound of the assigned at field. All records returned will be after the inputted value. | {{assigned_at[from]}} |
assigned_at[to] | FALSE | Time in UTC | Creates an upper bound of the assigned at field. All records returned will be before the inputted value. | {{assigned_at[to]}} |
finished_at[from] | FALSE | Time in UTC | Creates a lower bound of the finished at field. All records returned will be after the inputted value. | {{finished_at[from]}} |
finished_at[to] | FALSE | Time in UTC | Creates an upper bound of the finished at field. All records returned will be before the inputted value. | {{finished_at[to]}} |
updated_at[from] | FALSE | Time in UTC | Creates a lower bound of the updated at field. All records returned will be after the inputted value. | {{updated_at[from]}} |
updated_at[to] | FALSE | Time in UTC | Creates an upper bound of the updated at field. All records returned will be before the inputted value. | {{updated_at[to]}} |
created_at[from] | FALSE | Time in UTC | Creates a lower bound of the created at field. All records returned will be after the inputted value. | {{created_at[from]}} |
created_at[to] | FALSE | Time in UTC | Creates an upper bound of the created at field. All records returned will be before the inputted value. | {{created_at[to]}} |
id[] | FALSE | Array[String] | Array of strings. Id of records to search and return. | {{id[]}} |
agent_id[] | FALSE | Array[String] | Filters response by agent id. | {{agent_id[]}} |
end_user_id[] | FALSE | Array[String] | Filters response based on the end user id. | {{end_user_id[]}} |
email_status[] | FALSE | Array[String] | Returns records based on where the email is in the email lifecycle. Possible values: unopened, active, paused, resolved, closed, reopened | {{email_status[]}} |
total_thread_numbers[from] | FALSE | Number | Creates a lower bound of the total thread numbers field. All records returned will be after the inputted value. | {{total_thread_numbers[from]}} |
total_thread_numbers[to] | FALSE | Number | Creates an upper bound of the total thread numbers field. All records returned will be before the inputted value. | {{total_thread_numbers[to]}} |
Menus represent a queue that an agent may be assigned to, and options that an end user may select when reaching out to an agent. Each object represents a single menu.
There are three menu endpoints
Please review the model below to see which fields may be considered PII.
{
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"hidden": "string",
"menu_type": "ivr_menu",
"output_msg": "string",
"agent_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "chat",
"assignee": {
"id": 0,
"name": "string", // This may be considered PII
"last_name": "string", // This may be considered PII
"first_name": "string", // This may be considered PII
"agent_number": "string",
"avatar_url": "string"
}
}
],
"team_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "chat",
"team": {
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"agents_count": 0,
"assignees": {
"id": 0,
"name": "string", // This may be considered PII
"last_name": "string", // This may be considered PII
"first_name": "string", // This may be considered PII
"agent_number": "string",
"avatar_url": "string"
}
}
}
]
}
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
sort_column | FALSE | String | Sorts response based on any field in the response object. | {{sort_column}} |
sort_direction | FALSE | ASC or DESC | Notes the direction of the sort, whether ascending or descending | {{sort_direction}} |
page | FALSE | String | Pairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{per}} |
id[] | FALSE | Array[String] | Array[Strings]. Id of records to search and return | {{id[]}} |
name[] | FALSE | Array[String] | Returns records based on name of resource. | {{name[]}} |
parent_id[] | FALSE | Array[String] | Returns records based on the parent id of the given records | {{parent_id[]}} |
position[] | FALSE | Array[String] | Returns records based on what position a menu is in | {{position[]}} |
menu_type[] | FALSE | Array[String] | Returns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu | {{menu_type[]}} |
hidden[] | FALSE | Boolean | Returns records that have been hidden (True) or not including records that have been hidden (False) | {{hidden[]}} |
with_deleted | FALSE | Boolean | Returns records that have been deleted (True) or not including records that have been deleted (False) | {{with_deleted}} |
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
menu_type | FALSE | String | Returns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu | {{menu_type}} |
lang | FALSE | String | Returns records that have a specific language property. Possible Values: en, es, fr, de | {{lang}} |
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
record_id | FALSE | String | Returns specific record based on id | {{record_id}} |
with_deleted | FALSE | Boolean | Returns records that have been deleted (True) or not including records that have been deleted (False) | {{with_deleted}} |
Menus Current Status returns all menus with currently queued calls or chats with additional data on durations of those queued items.
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
channel | TRUE | String | String. Values accepted: call, chat | {{channel}} |
minutes | TRUE | String | String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path | {{minutes}} |
Key | Value | Description |
---|---|---|
channel | {{channel}} | String. Values accepted: call, chat |
minutes | {{minutes}} | String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path |
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
channel | TRUE | String | String. Values accepted: call, chat | {{channel}} |
minutes | TRUE | String | String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path | {{minutes}} |
Key | Value | Description |
---|---|---|
channel | {{channel}} | String. Values accepted: call, chat |
minutes | {{minutes}} | String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path |
Returns all menu operation hour definitions
User status represents a state that an agent can be in at any time. Each status (either out of the box or a newly configured status) is represented in a single object
[
{
"id": 0,
"wfm_id": 0,
"name": "string",
"color": "string",
"setting": {
"restricted": true,
"all_roles_restricted": true,
"breakthrough_enabled": true
},
"custom_roles": [1,2,3]
}
]
Teams represent a grouping that an agent may be assigned to, which can then be assigned to a queue. Each object represents a single team.
There are three team endpoints
Please review the model below to see which fields may be considered PII.
[
{
"id": 0,
"name": "string",
"parent_id": 0,
"position": 0,
"deleted": true,
"agents_count": 0,
"assignees": {
"id": 0,
"name": "string", // This may be considered PII
"last_name": "string", // This may be considered PII
"first_name": "string", // This may be considered PII
"agent_number": "string", // This may be considered PII
"avatar_url": "string"
}
}
]
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
sort_column | FALSE | String | Sorts response based on any field in the response object. | {{sort_column}} |
sort_direction | FALSE | ASC or DESC | Notes the direction of the sort, whether ascending or descending | {{sort_direction}} |
page | FALSE | String | Pairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{page}} |
per | FALSE | String | Pairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200. | {{per}} |
agents_count[from] | FALSE | Number | creates a lower bound of the agents count field. All records returned will be after the inputted value. | {{agents_count[from]}} |
agents_count[to] | FALSE | Number | creates a upper bound of the agents count field. All records returned will be before the inputted value. | {{agents_count[to]}} |
id[] | FALSE | Array[String] | Array[Strings]. Id of records to search and return | {{id[]}} |
name[] | FALSE | Array[String] | Returns records based on name of resource. | {{name[]}} |
parent_id[] | FALSE | Array[String] | Returns records based on the parent id of the given records | {{parent_id[]}} |
position[] | FALSE | Array[String] | Returns records based on what position a menu is in | {{position[]}} |
with_deleted | FALSE | Boolean | Returns records that have been deleted (True) or not including records that have been deleted (False) | {{with_deleted}} |
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
record_id | FALSE | String | Returns specific record based on id | {{record_id}} |
with_deleted | FALSE | Boolean | Returns records that have been deleted (True) or not including records that have been deleted (False) | {{with_deleted}} |
A campaign refers to an outbound auto-dialer feature that sequentially reaches out to a list of contacts, initiates outbound calls, and connects each contact to an available agent. Campaign endpoints provide access to campaign-related data, allowing retrieval of campaign and contact objects.
Please review the model below to see which fields may be considered PII.
[
{
"campaign_type" : "default",
"id" : 67,
"external_campaign_id" : null,
"max_abandonment_percent" : 3,
"max_redial_count" : 3,
"mode" : "preview",
"name" : "string",
"overdial_adjustment_multiplier" : 1,
"queue" : {
"deleted" : false,
"hidden" : false,
"id" : 60,
"menu_type" : "ivr_menu",
"name" : "string",
"output_msg" : null,
"parent_id" : 59,
"position" : 4
},
"redial_interval_minutes" : 120,
"status" : "dialing",
"target_number_to_process" : 1000,
"created_at" : "2023-04-01T23:23:43.000Z",
"starts_at" : "2023-04-01T23:28:08.000Z",
"ends_at" : null,
"updated_at" : "2023-04-01T23:28:08.000Z",
"contact_stats" : {
"Abandoned by Contact" : 0,
"Abandoned by Dialer" : 0,
"Average Redials per Number" : 0,
"Carrier Error" : 0,
"Completed" : 50,
"Connected" : 0,
"Contacts" : 1000,
"Dialer General Error" : 0,
"Dialing" : 0,
"Do Not Call" : 0,
"Finished" : 40,
"Invalid Number or Name" : 0,
"Invalid outbound number" : 0,
"Not Picked Up" : 0,
"Not Reached to Contact" : 0,
"Not reached" : 10,
"Not yet reached" : 960,
"Queued" : 0,
"Reached" : 0,
"Redial Scheduled" : 0,
"Redials" : 0,
"Remaining" : 950,
"Running" : 0,
"Skipped" : 0,
"Skipped & Closed" : 10,
"Transferred" : 0,
"Transferred and Finished" : 0,
"Upcoming" : 950,
"Voicemail Hung Up" : 0
}
}
]
The status field can be in any of the following states
Campaign Status | Description |
---|---|
created | State that occurs when a campaign is created but not started to do outbound calls. |
started | State that occurs when a campaign has just started to do outbound calls but the first dialing out is not yet happening. |
dialing | State that occurs when a campaign is in middle of dialing outbound calls. |
pause | State that occurs after a campaign has been paused by agent or manager. |
finished | State that occurs after a campaign has completed all the calls. |
The mode field can be in any of the following values
Campaign Mode | Description |
---|---|
preview | For Preview Campaign, an agent is going to connect to the end-user or choose what action to take for a given contact because generally the contact or end-user is known. |
predictive | For Predictive Campaign, an agent is connected to a reservation call and with that call we turn on machine detection, which tells us the response to an outbound call is a human or a machine (ie. voice mail), and only connect the agent to a hunman. |
progressive | For Progressive Campaign, the dialer would first connect to the first available agent. Upon connection, the dialer would call and deliver the first available (a contact that has not been called yet for a given campaign) contact to the agent. |
The campaing_type field can be in any of the following values
Campaign Type | Description |
---|---|
default | Campaign contacts are from user uploaded CSV files |
external_list | Campaign contacts are from external/third-party services |
Key | Value | Type |
---|---|---|
subdomain | ||
username | ||
password | ||
page | ||
per | ||
id[] | ||
agent_number[] | ||
status_id[] | ||
online[] | ||
wrap_up[] | ||
location[] | ||
last_login_time[from] | ||
last_login_time[to] | ||
status_updated_at[from] | ||
status_updated_at[to] | ||
sort_column | ||
sort_direction | ||
started_at[from] | ||
started_at[to] | ||
ended_at[from] | ||
ended_at[to] | ||
call_count[from] | ||
call_count[to] | ||
chat_count[from] | ||
chat_count[to] | ||
whodunnit_id[] | ||
agent_id[] | ||
changed_columns | ||
assigned_at[from] | ||
assigned_at[to] | ||
ends_at[from] | ||
ends_at[to] | ||
scheduled_at[from] | ||
scheduled_at[to] | ||
created_at[from] | ||
created_at[to] | ||
connected_at[from] | ||
connected_at[to] | ||
queued_at[from] | ||
queued_at[to] | ||
rating[from] | ||
rating[to] | ||
call_duration[from] | ||
call_duration[to] | ||
hold_duration[from] | ||
hold_duration[to] | ||
end_user_id[] | ||
call_status[] | ||
call_fail_reason[] | ||
verified[] | ||
call_type[] | ||
support_number[] | ||
first_msg_sent_at[from] | ||
first_msg_sent_at[to] | ||
last_msg_sent_at[from] | ||
last_msg_sent_at[to] | ||
chat_duration[from] | ||
chat_duration[to] | ||
message_count[from] | ||
message_count[to] | ||
average_response_time[from] | ||
average_response_time[to] | ||
longest_response_time[from] | ||
longest_response_time[to] | ||
wait_duration[from] | ||
wait_duration[to] | ||
chat_type[] | ||
chat_status[] | ||
chat_fail_reason[] | ||
name[] | ||
parent_id[] | ||
position[] | ||
menu_type | string | |
menu_type[] | ||
hidden[] | ||
with_deleted | ||
agents_count[from] | ||
agents_count[to] | ||
duration[from] | ||
duration[to] | ||
call_id[] | ||
chat_id[] | ||
activity[] | ||
record_id | ||
lang | string | |
lang[] | ||
updated_at[from] | ||
updated_at[to] |