Endpoints
The API endpoints fall into a one of a few groupings
- Agent Endpoints - represents individual agent resources
- User Status Endpoints - represents individual statuses that the agent widget can be in
- Agent Activity Endpoints - represents whenever an agent widget changes user status, or receives a notification
- Calls - Represents a single call resource
- Chats - Represents a single chat resource
- Menu Endpoints - represents the queues that agents are assigned to, and end users will access to receive support from an agent
- Team Endpoints - represents the teams for which an agent belongs
Basic Authentication
Requests use basic authentication. To create API credentials go to Settings-> Developer Settings-> API Credentials
- The subdomain is used as the
{{username}}
variable - The token is used as the
{{password}}
variable
Every 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"
Base URL
The API uses the following base URL for all of its API requests
https://{{subdomain}}.{{domain}}/apps/api/v1
where a mention to "/calls" means https://{{subdomain}}.{{domain}}/apps/api/v1/calls
Rate Limits
The system limits requests to a rate of 1 request per second per customer.
Variables
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[] | ||
hidden[] | ||
with_deleted | ||
agents_count[from] | ||
agents_count[to] | ||
duration[from] | ||
duration[to] | ||
call_id[] | ||
chat_id[] | ||
activity[] | ||
record_id | ||
lang[] | ||
updated_at[from] | ||
updated_at[to] |
Endpoints
- Agent Endpoints
- Agent Activity Logs Endpoints
- Calls Endpoints
- Chats Endpoints
- Menu Endpoints
- User Status Endpoints
- Teams
Agent Endpoints
Agent Endpoints provide a means to get agent objects. Each agent object represents a single agent inside of CCAI Platform. Please review the model below to see which fields may be considered PII
[
{
"id": 0,
"email": "string",
"created_at": "2018-05-30T20:46:31.333Z",
"last_login_time": "2018-05-30T20:46:31.333Z",
"first_name": "string",
"middle_name": "string",
"last_name": "string",
"avatar_url": "string",
"agent_number": "string",
"status": {
"id": 0,
"wfm_id": 0,
"name": "string",
"color": "string"
},
"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"
],
"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"
}
}
]
}
]
1. Agents
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]}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/agents
More example Requests/Responses:
I. Example Request: Agents example
Body: None
I. Example Response: Agents example
[
{
"id": 45,
"email": "craigT@nelson.com",
"roles": [
"agent"
],
"first_name": "Craig T",
"middle_name": null,
"last_name": "Nelson",
"avatar_url": "https://subdomain.somedomain.com/default-profile.png",
"agent_number": null,
"crm_authenticated": false,
"status": {
"id": -6,
"name": "Wrap-up",
"color": "purple",
"wfm_id": 33
},
"online": false,
"wrap_up": false,
"call_count": 0,
"chat_count": 0,
"location": null,
"created_at": "2016-11-10T00:15:04.000Z",
"last_login_time": "2016-11-10T00:17:57.000Z",
"status_updated_at": null,
"teams": [
{
"id": 163,
"name": "team CTN",
"parent_id": null,
"position": 11,
"agents_count": 12,
"deleted": false
}
],
"channels": [
{
"channel_type": "voice_call",
"menu": {
"id": 2029,
"name": "Mobile Queue",
"parent_id": null,
"position": 0,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false
}
}
]
},
{
"id": 60,
"email": "notanakinskywalker@empire.com",
"roles": [
"agent"
],
"first_name": "Darth",
"middle_name": null,
"last_name": "Vader",
"avatar_url": "https://subdomain.somedomain.com/default-profile.png",
"agent_number": null,
"crm_authenticated": false,
"status": {
"id": -7,
"name": "In-call",
"color": "light_blue",
"wfm_id": 34
},
"online": false,
"wrap_up": false,
"call_count": 0,
"chat_count": 0,
"location": null,
"created_at": "2017-02-03T19:44:14.000Z",
"last_login_time": "2017-02-03T20:05:31.000Z",
"status_updated_at": "2017-02-04T12:36:11.000Z",
"teams": [],
"channels": [
{
"channel_type": "voice_call",
"menu": {
"id": 1693,
"name": "Premium Support",
"parent_id": null,
"position": 0,
"deleted": false,
"menu_type": "ivr_menu",
"output_msg": "You selected premium support",
"hidden": false
}
}
]
},
{
"id": 81,
"email": "email@email.com",
"roles": [
"agent"
],
"first_name": "Barry",
"middle_name": null,
"last_name": "Allen",
"avatar_url": "https://subdomain.somedomain.com/default-profile.png",
"agent_number": null,
"crm_authenticated": false,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"online": false,
"wrap_up": false,
"call_count": 0,
"chat_count": 0,
"location": null,
"created_at": "2017-03-13T23:47:39.000Z",
"last_login_time": "2017-03-13T23:48:17.000Z",
"status_updated_at": "2017-03-13T23:56:04.000Z",
"teams": [],
"channels": [
{
"channel_type": "voice_call",
"menu": {
"id": 2028,
"name": "Speed Issues",
"parent_id": 2027,
"position": 0,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false
}
}
]
}
]
Status Code: 200
2. Agents Current Status
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.
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/agents/current_status
More example Requests/Responses:
I. Example Request: Agents Current Status
Body: None
I. Example Response: Agents Current Status
[
{
"id": 1,
"status": "Available",
"status_id": 0,
"status_updated_at": "2021-05-10T17:45:01.000Z",
"on_hold": false,
"on_hold_duration": 0
}
]
Status Code: 0
Agent Activity Logs Endpoints
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",
"last_name": "string",
"first_name": "string",
"agent_number": "string",
"avatar_url": "string"
},
"status": {
"id": 0,
"wfm_id": 0,
"name": "string",
"color": "string"
},
"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 |
1. Agent Activity Logs
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 | {{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[]}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/agent_activity_logs
More example Requests/Responses:
I. Example Request: Agent Activity Logs Example
Body: None
I. Example Response: Agent Activity Logs Example
[
{
"id": 190578,
"agent_id": 118,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"started_at": "2017-12-22T00:54:18.000Z",
"ended_at": null,
"duration": 0,
"call_id": null,
"chat_id": null,
"activity": "logout",
"whodunnit": null
},
{
"id": 199548,
"agent_id": 118,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"started_at": "2018-01-09T22:54:26.000Z",
"ended_at": null,
"duration": 0,
"call_id": null,
"chat_id": null,
"activity": "logout",
"whodunnit": null
},
{
"id": 190577,
"agent_id": 118,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"started_at": "2017-12-22T00:54:18.000Z",
"ended_at": "2018-01-08T22:54:22.000Z",
"duration": 1548004,
"call_id": null,
"chat_id": null,
"activity": "user_status_changed",
"whodunnit": null
},
{
"id": 199547,
"agent_id": 118,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"started_at": "2018-01-09T22:54:26.000Z",
"ended_at": null,
"duration": 0,
"call_id": null,
"chat_id": null,
"activity": "user_status_changed",
"whodunnit": null
},
{
"id": 190270,
"agent_id": 118,
"status": {
"id": -1,
"name": "Unavailable",
"color": "red",
"wfm_id": 12
},
"started_at": "2017-12-21T21:34:14.000Z",
"ended_at": "2017-12-22T00:54:18.000Z",
"duration": 12004,
"call_id": null,
"chat_id": null,
"activity": "user_status_changed",
"whodunnit": null
},
{
"id": 198036,
"agent_id": 118,
"status": {
"id": -1,
"name": "Unavailable",
"color": "red",
"wfm_id": 12
},
"started_at": "2018-01-08T22:54:22.000Z",
"ended_at": "2018-01-09T22:54:26.000Z",
"duration": 86404,
"call_id": null,
"chat_id": null,
"activity": "user_status_changed",
"whodunnit": null
},
{
"id": 22249,
"agent_id": 129,
"status": {
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
"started_at": "2017-06-19T18:34:39.000Z",
"ended_at": null,
"duration": 0,
"call_id": null,
"chat_id": null,
"activity": "login",
"whodunnit": null
}
]
Status Code: 200
Calls Endpoints
A call object is created for every single call that is made into, or out of CCAI 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",
"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",
"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",
}
],
"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
}
]
"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 CCAI 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 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) |
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.
1. Calls
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[]}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/calls
Headers:
Key | Value | Description |
---|---|---|
Content-Type | application/json |
More example Requests/Responses:
I. Example Request: Calls
Body: None
I. Example Response: Calls
[
{
"id": 1,
"lang": "en",
"call_type": "Voice Inbound (App)",
"status": "finished",
"created_at": "2016-02-19T18:53:56.000Z",
"queued_at": "2016-02-19T18:53:57.000Z",
"assigned_at": "2016-02-19T18:53:58.000Z",
"connected_at": "2016-02-19T18:54:18.000Z",
"ends_at": "2016-02-19T18:54:39.000Z",
"updated_at": "2016-02-19T18:54:39.000Z",
"scheduled_at": null,
"queue_duration": 22,
"wait_duration": 22,
"call_duration": 21,
"hold_duration": 0,
"rating": null,
"has_feedback": false,
"voip_provider": "voip_provider_twilio",
"out_ticket_id": null,
"out_ticket_url": null,
"verified": false,
"recording_url": null,
"recording_permission": "not_asked",
"voicemail_reason": "not_voicemail",
"deflection": "no_deflection",
"disconnected_by": "disconnected_by_unknown",
"fail_reason": "nothing",
"fail_details": null,
"recordings": [
{
"id": 7,
"call_id": 1,
"conference_sid": "CF50ec183fafcff801226b6fc332EC02ba7c4",
"duration": 20,
"recording_type": "default",
"redaction_times": [
{
"start": "2016-02-19T18:54:23.000Z",
"end": "2016-02-19T18:54:25.000Z",
"duration": 2.000,
"start_agent_id": 2,
"end_agent_id": 2
}
],
"started_at": "2016-02-19T18:54:18.000Z"
}
],
"support_number": "+12128675309",
"selected_menu": {
"id": 11,
"name": "Carpentry",
"parent_id": 1,
"position": 1,
"deleted": false,
"hidden": false,
"menu_type": "ivr_menu",
"output_msg": "Thanks for calling Death Star Carpentry"
},
"menu_path": {
"items_count": 1,
"name": "Carpentry",
"materialized_path": "Death Star/Carpentry"
},
"queue_priority_level": 0,
"end_user": {
"id": 3,
"identifier": "Death Star Carpentry Union",
"out_contact_id": "363876643527"
},
"photos": [{
"id": 0,
"photo_type": "photo",
"url": "www.photolocation.co/photo/123456868686"
}],
"videos": [{
"id": 0,
"url": "www.videolocation.co/video/123456868686"
}],
"transfers": [{
"id": 11,
"status": "transferring",
"fail_reason": "nothing",
"created_at": "2016-02-19T18:58:18.000Z",
"from_menu": {
"items_count": 2,
"name": "Cabinetry",
"materialized_path": "Death Star/Cabinetry"
},
"to_menu": {
"items_count": 2,
"name": "Carpentry",
"materialized_path": "Death Star/Carpentry"
},
"from_agent": {
"id": 2,
"name": "San Holo",
"last_name": "San",
"first_name": "Holo",
"agent_number": "6",
"avatar_url": "www.avatarurl.co/avatar/1234543"
},
"to_agent": {
"id": 0,
"name": "Farrison Hord",
"last_name": "Farrison",
"first_name": "Hord",
"agent_number": "12",
"avatar_url": "www.avatarurl.co/avatar/1234545"
}
}],
"participants": [
{
"id": 5,
"type": "end_user",
"status": "finished",
"call_id": 3,
"user_id": null,
"end_user_id": 3,
"call_duration": 21,
"hold_duration": null,
"connected_at": "2016-02-19T18:54:18.000Z",
"ended_at": "2016-02-19T18:54:39.000Z",
"fail_reason": "nothing"
},
{
"id": 3,
"type": "agent",
"status": "finished",
"call_id": 3,
"user_id": 5,
"end_user_id": null,
"call_duration": 21,
"hold_duration": null,
"connected_at": "2016-02-19T18:54:18.000Z",
"ended_at": "2016-02-19T18:54:39.000Z",
"fail_reason": "nothing"
},
{
"id": 6,
"type": "agent",
"status": "finished",
"call_id": 3,
"user_id": 12,
"end_user_id": null,
"call_duration": 21,
"hold_duration": null,
"connected_at": "2016-02-19T18:54:18.000Z",
"ended_at": "2016-02-19T18:54:39.000Z",
"fail_reason": "nothing"
}
],
"offer_type": "cascade",
"offer_events": [
{
"casting_time": "2018-11-12T15:52:38.000Z",
"group": "Group 1"
}
],
"answer_type": "manual",
"outbound_number": null,
"dispositions": [
{
"user_id": 3,
"participant_id": 225,
"code": "Product question"
},
{
"user_id": 3,
"transfer_id": 1,
"participant_id": 226,
"code": "Requires follow up"
}
],
"consumer_handle_durations": [
{
"id": 100,
"call_duration": 314,
"hold_duration": 3,
"started_at": "2016-02-19T18:50:08.000Z",
"ended_at": "2016-02-19T18:55:22.000Z"
}
],
"consumer_in_menu_durations": [
{
"id": 100,
"event": "finished",
"duration": 238,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"started_at": "2016-02-19T18:50:08.000Z",
"ended_at": "2016-02-19T18:54:06.000Z"
}
],
"consumer_event_durations": [
{
"id": 10,
"type": "payment",
"event": "finished",
"duration": 20,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"started_at": "2016-02-19T18:54:38.000Z",
"ended_at": "2016-02-19T18:54:58.000Z"
},
{
"id": 11,
"type": "csat",
"event": "abandoned",
"duration": 4,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"started_at": "2016-02-19T18:54:39.000Z",
"ended_at": "2016-02-19T18:54:43.000Z"
}
],
"handle_durations": [
{
"id": 10001,
"agent_id": 5,
"acw_duration": 0,
"bcw_duration": 0,
"call_duration": 21,
"assigned_connection_duration": 10,
"hold_duration": 3,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"barged": 0,
"transfer": 0,
"transfer_id": null,
"transfer_cold": 0,
"started_at": "2016-02-19T18:54:18.000Z",
"ended_at": "2016-02-19T18:54:39.000Z",
"scheduled_at": null
},
{
"id": 10002,
"agent_id": 5,
"acw_duration": 25,
"bcw_duration": 0,
"call_duration": 0,
"assigned_connection_duration": 0,
"hold_duration": 0,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"barged": 0,
"transfer": 0,
"transfer_id": null,
"transfer_cold": 0,
"started_at": "2016-02-19T18:54:39.000Z",
"ended_at": "2016-02-19T18:55:04.000Z",
"scheduled_at": null
},
{
"id": 10003,
"agent_id": 12,
"acw_duration": 1,
"bcw_duration": 0,
"call_duration": 21,
"assigned_connection_duration": 5,
"hold_duration": 0,
"menu_path_id": 4,
"menu_path": "Deathstar/Returns",
"lang": "en",
"barged": 0,
"transfer": 1,
"transfer_id": 11,
"transfer_cold": 0,
"started_at": "2016-02-19T18:54:18.000Z",
"ended_at": "2016-02-19T18:54:39.000Z",
"scheduled_at": null
}
],
"queue_durations": [
{
"id": 20011,
"agent_id": 5,
"queue_duration": 12,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": 0,
"transfer_id": null,
"transfer_cold": 0,
"started_at": "2016-02-19T18:54:06.000Z",
"ended_at": "2016-02-19T18:54:18.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60
},
{
"id": 20012,
"agent_id": 12,
"queue_duration": 10,
"menu_path_id": 21,
"menu_path": "Deathstar/Returns",
"lang": "en",
"transfer": 1,
"transfer_id": 11,
"transfer_cold": 0,
"started_at": "2016-02-19T18:54:08.000Z",
"ended_at": "2016-02-19T18:54:18.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "not_in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60
}
],
"virtual_agent": {
"id": 10,
"name": "D2-R2"
},
"virtual_agent_deflected_escalations": [
{
"id": 1,
"deflection": "after_hours",
"escalation_id": 1,
"escalation_reason": "by_end_user_message",
"escalated_at": "2016-02-19T18:54:06.000Z",
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"virtual_agent": {
"id": 10,
"name": "D2-R2"
}
}
],
"virtual_agent_handle_durations": [
{
"id": 1,
"virtual_agent": {
"id": 10,
"name": "D2-R2"
},
"call_duration": 11,
"escalation_reason": "by_end_user_message",
"sentiment": 85,
"response_count": 11,
"fallback_response_count": 1,
"initiated_by": "end_user",
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": false,
"transfer_id": null,
"started_at": "2016-02-19T18:52:36.000Z",
"ended_at": "2016-02-19T18:54:06.000Z"
}
]
}
]
Status Code: 200
Chats Endpoints
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",
"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",
"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",
"last_name": "string",
"first_name": "string",
"agent_number": "string",
"avatar_url": "string"
},
"end_user": {
"id": 0,
"identifier": "string",
"out_contact_id": "string"
},
"photos": [
{
"id": 0,
"photo_type": "photo",
"url": "string"
}
],
"videos": [
{
"id": 0,
"url": "string"
}
],
"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",
"last_name": "string",
"first_name": "string",
"agent_number": "string",
"avatar_url": "string"
},
"to_agent": {
"id": 0,
"name": "string",
"last_name": "string",
"first_name": "string",
"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",
}
],
"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
}
],
"participants": [
{
"id": 0,
"type": "end_user",
"status": "waiting",
"call_id": 0,
"user_id": 0,
"end_user_id": 0,
"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
1. Chats
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) |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/chats
More example Requests/Responses:
I. Example Request: Chats
Query:
Key | Value | Description |
---|---|---|
updated_at[from] | {{updated_at[from]}} | Time in UTC. creates a lower bound of the updated at field. All records returned will be after the inputted value. |
updated_at[to] | {{updated_at[to]}} | Time in UTC. creates a upper bound of the updated at field. All records returned will be before the inputted value. |
Body: None
I. Example Response: Chats
[
{
"id": 1,
"lang": "en",
"chat_type": "Messaging Inbound (App Chat)",
"status": "finished",
"created_at": "2016-02-26T18:35:54.000Z",
"assigned_at": "2016-02-26T18:36:05.000Z",
"ends_at": "2016-02-26T18:37:24.000Z",
"updated_at": "2016-02-26T18:37:24.000Z",
"first_msg_sent_at": null,
"last_msg_sent_at": null,
"chat_duration": 11,
"wait_duration": 22,
"queue_duration": 22,
"verified": true,
"rating": 5,
"has_feedback": false,
"out_ticket_id": "209",
"out_ticket_url": null,
"fail_reason": null,
"message_count": 0,
"average_response_time": 0,
"longest_response_time": 0,
"selected_menu": null,
"menu_path": null,
"agent_info": {
"id": 4,
"agent_number": "007",
"name": "Storm Trooper 1",
"last_name": "Storm",
"first_name": "Trooper 1",
},
"end_user": {
"id": 1,
"identifier": "Death Star Carpentry",
"out_contact_id": "360949501087"
},
"photos": [
{
"id": 3,
"photo_type": "photo",
"url": "true"
}
],
"consumer_handle_durations": [
{
"id": 100,
"chat_duration": 314,
"message_count": 10,
"response_count": 6,
"response_time_total": 85,
"response_time_max": 25,
"response_time_avg": 12,
"started_at": "2016-02-19T18:50:08.000Z",
"ended_at": "2016-02-19T18:55:22.000Z"
}
],
"consumer_event_durations": [
{
"id": 11,
"type": "csat",
"event": "finished",
"duration": 4,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"started_at": "2016-02-19T18:54:39.000Z",
"ended_at": "2016-02-19T18:54:43.000Z"
}
],
"handle_durations": [
{
"id": 30001,
"agent_id": 4,
"acw_duration": 0,
"chat_duration": 11,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": 0,
"transfer_id": null,
"started_at": "2016-03-02T23:24:08.000Z",
"ended_at": "2016-03-02T23:24:42.000Z",
"response_count": 11,
"response_time_total": 259,
"response_time_max": 29,
"response_time_avg": 24,
"assigned_connection_duration": 10
}
],
"queue_durations": [
{
"id": 41234,
"agent_id": 5,
"queue_duration": 22,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": 0,
"transfer_id": null,
"transfer_cold": 0,
"started_at": "2016-03-02T23:23:56.000Z",
"ended_at": "2016-03-02T23:24:08.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "not_in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60
}
]
"videos": [],
"transfers": [],
"participants": [],
"virtual_agent": null,
"virtual_agent_deflected_escalations": [],
"virtual_agent_handle_durations": []
},
{
"id": 2,
"lang": "en",
"chat_type": "in-app",
"status": "finished",
"created_at": "2016-03-02T23:24:05.000Z",
"assigned_at": "2016-03-02T23:24:08.000Z",
"ends_at": "2016-03-02T23:24:42.000Z",
"updated_at": "2016-03-02T23:24:42.000Z",
"first_msg_sent_at": null,
"last_msg_sent_at": null,
"wait_duration": 12,
"queue_duration": 12,
"chat_duration": 34,
"verified": false,
"rating": 2,
"has_feedback": false,
"out_ticket_id": "214",
"out_ticket_url": null,
"fail_reason": null,
"message_count": 0,
"average_response_time": 0,
"longest_response_time": 0,
"selected_menu": null,
"menu_path": null,
"agent_info": null,
"end_user": {
"id": 1,
"identifier": "Death Star Carpentry",
"out_contact_id": "360949501087"
},
"photos": [],
"videos": [],
"transfers": [],
"participants": [],
"handle_durations": [
{
"id": 30001,
"agent_id": 4,
"acw_duration": 0,
"chat_duration": 34,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": 0,
"transfer_id": null,
"started_at": "2016-03-02T23:24:08.000Z",
"ended_at": "2016-03-02T23:24:42.000Z",
"response_count": 11,
"response_time_total": 259,
"response_time_max": 29,
"response_time_avg": 24,
"assigned_connection_duration": 10
}
],
"queue_durations": [
{
"id": 41234,
"agent_id": 5,
"queue_duration": 12,
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": 0,
"transfer_id": null,
"transfer_cold": 0,
"started_at": "2016-03-02T23:23:56.000Z",
"ended_at": "2016-03-02T23:24:08.000Z",
"service_level_abandon_time_threshold": 10,
"service_level_event": "not_in_sla",
"service_level_target_percent": 90,
"service_level_target_time": 60
}
],
"virtual_agent": {
"id": 10,
"name": "D2-R2"
},
"virtual_agent_deflected_escalations": [
{
"id": 1,
"deflection": "after_hours",
"escalation_reason": "by_end_user_message",
"escalated_at": "2016-03-02T23:23:56.000Z",
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"virtual_agent": {
"id": 10,
"name": "D2-R2"
}
}
],
"virtual_agent_handle_durations": [
{
"id": 1,
"virtual_agent": {
"id": 10,
"name": "D2-R2"
},
"chat_duration": 11,
"escalation_reason": "by_end_user_message",
"response_count": 11,
"response_time_total": 34,
"response_time_max": 4,
"response_time_avg": 3,
"fallback_response_count": 1,
"initiated_by": "end_user",
"menu_path_id": 11,
"menu_path": "Deathstar/Shipping",
"lang": "en",
"transfer": false,
"transfer_id": null,
"started_at": "2016-03-02T23:23:16.000Z",
"ended_at": "2016-03-02T23:23:56.000Z"
}
]
}
]
Status Code: 200
Menu Endpoints
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
- /menu - pulls a list of menus
- /menu/tree - pulls menus in a tree structure, which mimics the path an end user would use to get in touch with an agent
- /menu/{:id} - pulls a single menu resource
- /menu/current_status - Returns current queue status for menus with consumers waiting in queue.
- /menu/sla - Returns SLA for all menu paths from now through the previous specified number of minutes.
- /menu/sla_by_queue_group - Returns SLA for all queue groups from now through the previous specified number of minutes.
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"
}
}
}
]
}
1. Menu List
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus
More example Requests/Responses:
I. Example Request: Menu List
Body: None
I. Example Response: Menu List
[
{
"id": 1693,
"name": "Death Star",
"parent_id": null,
"position": 0,
"deleted": false,
"menu_type": "ivr_menu",
"output_msg": "You have reached the Death Star",
"hidden": false,
"agent_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "voice_call",
"assignee": {
"id": 97,
"agent_number": 97,
"name": "Darth Vader",
"last_name": "Darth",
"first_name": "Vader"
}
},
{
"lang": "it",
"queue_level": "primary",
"channel_type": "voice_call",
"assignee": {
"id": 1407,
"agent_number": 123,
"name": "Moff Tarkin",
"last_name": "Moff",
"first_name": "Tarkin"
}
}
],
"team_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "voice_call",
"team": {
"id": 10,
"name": "Storm Troopers",
"parent_id": null,
"position": 1,
"agents_count": 48,
"deleted": false,
"assignees": [
{
"id": 1,
"agent_number": null,
"name": "Storm Troooper 1",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
},
{
"id": 2,
"agent_number": null,
"name": "Storm Troooper 2",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
},
{
"id": 3,
"agent_number": null,
"name": "Storm Troooper 3",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
}
]
}
}
]
}]
Status Code: 200
2. Menu Tree
Parameter | Required | Data Type | Definition | Postman Variable |
---|---|---|---|---|
menu_type[] | FALSE | Array[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[]}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus/tree
More example Requests/Responses:
I. Example Request: Menu Tree
Body: None
I. Example Response: Menu Tree
[
{
"id": 2029,
"name": "Mobile 1",
"parent_id": null,
"position": 0,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": []
},
{
"id": 2024,
"name": "Death Star Venting System",
"parent_id": null,
"position": 1,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": []
},
{
"id": 2025,
"name": "Droid Repair",
"parent_id": null,
"position": 2,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": []
},
{
"id": 2049,
"name": "Emperor's Hotline",
"parent_id": null,
"position": 3,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": []
},
{
"id": 2026,
"name": "Storm Trooper Armor",
"parent_id": null,
"position": 4,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": [
{
"id": 2036,
"name": "Armor Polishing Team",
"parent_id": 2026,
"position": 0,
"deleted": false,
"menu_type": "mobile_menu",
"output_msg": null,
"hidden": false,
"children": []
}
]
}]
Status Code: 200
3. Single Menu
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus/{{menu_id}}
More example Requests/Responses:
I. Example Request: Single Menu
Body: None
I. Example Response: Single Menu
[
{
"id": 1693,
"name": "Death Star",
"parent_id": null,
"position": 0,
"deleted": false,
"menu_type": "ivr_menu",
"output_msg": "You have reached the Death Star",
"hidden": false,
"agent_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "voice_call",
"assignee": {
"id": 97,
"agent_number": 97,
"name": "Darth Vader",
"last_name": "Darth",
"first_name": "Vader"
}
},
{
"lang": "it",
"queue_level": "primary",
"channel_type": "voice_call",
"assignee": {
"id": 1407,
"agent_number": 123,
"name": "Moff Tarkin",
"last_name": "Moff",
"first_name": "Tarkin"
}
}
],
"team_assignments": [
{
"lang": "en",
"queue_level": "primary",
"channel_type": "voice_call",
"team": {
"id": 10,
"name": "Storm Troopers",
"parent_id": null,
"position": 1,
"agents_count": 48,
"deleted": false,
"assignees": [
{
"id": 1,
"agent_number": null,
"name": "Storm Troooper 1",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
},
{
"id": 2,
"agent_number": null,
"name": "Storm Troooper 2",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
},
{
"id": 3,
"agent_number": null,
"name": "Storm Troooper 3",
"last_name": "Storm ",
"first_name": "Admin1",
"avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
}
]
}
}
]
}]
Status Code: 200
4. Menus Current Status
Menus Current Status returns all menus with currently queued calls or chats with additional data on durations of those queued items.
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus/current_status
More example Requests/Responses:
I. Example Request: Menus Current Status
Body: None
I. Example Response: Menus Current Status
[
{
"menu_id": 10,
"lang": "en",
"menu_path_id": 5,
"menu_path": "zdco IVR Support/1 Day Shipping",
"comm_type": "Call",
"in_queue_count": 2,
"oldest_in_queue": "2021-05-10T22:17:21.000Z",
"oldest_duration_in_queue": 300,
"total_queue_duration": 400,
"average_queue_duration": 200
}
]
Status Code: 0
5. Menu SLA
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus/sla
Query params:
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 |
More example Requests/Responses:
I. Example Request: Menu SLA
Query:
Key | Value | Description |
---|---|---|
channel | {{channel}} | String. Values accepted: call, chat |
minutes | {{lminutes}} | 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 |
Body: None
I. Example Response: Menu SLA
[
{
"menu_path_id": 100,
"lang": "en",
"menu_path": "Support/1 Day Shipping",
"sla": 96.5
},
{
"menu_path_id": 100,
"lang": "es",
"menu_path": "Support/1 Day Shipping Spanish",
"sla": 99.0
},
{
"menu_path_id": 101,
"lang": "en",
"menu_path": "Support/3 Day Shipping",
"sla": 0.0
}
]
Status Code: 200
6. Queue Groups SLA
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/menus/sla_by_queue_groups
Query params:
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 |
More example Requests/Responses:
I. Example Request: Queue Groups SLA
Query:
Key | Value | Description |
---|---|---|
channel | {{channel}} | String. Values accepted: call, chat |
minutes | {{lminutes}} | 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 |
Body: None
I. Example Response: Queue Groups SLA
[
{
"queue_group_id": 20,
"queue_group_name": "Shipping",
"sla": null
},
{
"queue_group_id": 24,
"queue_group_name": "Customer Support",
"sla": 99.2
},
{
"queue_group_id": 29,
"queue_group_name": "Escalations",
"sla": 98.3
}
]
Status Code: 200
User Status Endpoints
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"
}
]
1. User Statuses
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/user_statuses
More example Requests/Responses:
I. Example Request: User Statuses
Body: None
I. Example Response: User Statuses
[
{
"id": 0,
"name": "Available",
"color": "green",
"wfm_id": 11
},
{
"id": -1,
"name": "Unavailable",
"color": "red",
"wfm_id": 12
},
{
"id": -2,
"name": "Break",
"color": "yellow",
"wfm_id": 29
},
{
"id": -3,
"name": "Special Task",
"color": "pink",
"wfm_id": 30
},
{
"id": -4,
"name": "Meal",
"color": "brown",
"wfm_id": 31
},
{
"id": -5,
"name": "Missed Call",
"color": "blue_grey",
"wfm_id": 32
},
{
"id": -6,
"name": "Wrap-up",
"color": "purple",
"wfm_id": 33
},
{
"id": -7,
"name": "In-call",
"color": "light_blue",
"wfm_id": 34
},
{
"id": -8,
"name": "In-chat",
"color": "indigo",
"wfm_id": 35
},
{
"id": -10,
"name": "Offline",
"color": "grey",
"wfm_id": 36
},
{
"id": 5,
"name": "Meal",
"color": "green",
"wfm_id": 45
}
]
Status Code: 200
Teams
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
- /team - pulls a list of team
- /team/tree - pulls teams in a tree structure
- /team/{:id} - pulls a single team resource
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"
}
}
]
1. Team List
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/teams
More example Requests/Responses:
I. Example Request: Team List
Body: None
I. Example Response: Team List
[
{
"id": 11,
"name": "Forest Moon of Endor Team",
"parent_id": null,
"position": 28,
"agents_count": 3,
"deleted": false,
"assignees": [
{
"id": 19,
"agent_number": "77",
"name": "Storm Trooper 1",
"last_name": "Storm",
"first_name": "Trooper 1"
},
{
"id": 20,
"agent_number": "78",
"name": "Storm Trooper 2",
"last_name": "Storm",
"first_name": "Trooper 2"
},
{
"id": 21,
"agent_number": "79",
"name": "Storm Trooper 3",
"last_name": "Storm",
"first_name": "Trooper 3"
}
]
},
{
"id": 12,
"name": "Death Star Team",
"parent_id": null,
"position": 28,
"agents_count": 3,
"deleted": false,
"assignees": [
{
"id": 34,
"agent_number": "80",
"name": "Storm Trooper 5",
"last_name": "Storm",
"first_name": "Trooper 5"
},
{
"id": 35,
"agent_number": "81",
"name": "Storm Trooper 6",
"last_name": "Storm",
"first_name": "Trooper 6"
},
{
"id": 36,
"agent_number": "82",
"name": "Storm Trooper 7",
"last_name": "Storm",
"first_name": "Trooper 7"
}
]
}
]
Status Code: 200
2. Single Team
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}} |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/teams/{{team_id}}
More example Requests/Responses:
I. Example Request: Single Team
Body: None
I. Example Response: Single Team
{
"id": 11,
"name": "Forest Moon of Endor Team",
"parent_id": null,
"position": 28,
"agents_count": 3,
"deleted": false,
"assignees": [
{
"id": 19,
"agent_number": "77",
"name": "Storm Trooper 1",
"last_name": "Storm",
"first_name": "Trooper 1"
},
{
"id": 20,
"agent_number": "78",
"name": "Storm Trooper 2",
"last_name": "Storm",
"first_name": "Trooper 2"
},
{
"id": 21,
"agent_number": "79",
"name": "Storm Trooper 3",
"last_name": "Storm",
"first_name": "Trooper 3"
}
]
}
Status Code: 200
3. Team Tree
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/teams/tree
More example Requests/Responses:
I. Example Request: Team Tree
Body: None
I. Example Response: Team Tree
[
{
"id": 147,
"name": "Storm Trooper Reigment",
"parent_id": null,
"position": 1,
"agents_count": 9,
"deleted": false,
"children": [
{
"id": 34,
"name": "Storm Trooper 1st Regiment",
"parent_id": 147,
"position": 1,
"agents_count": 2,
"deleted": false,
"children": []
}
]
}
]
Status Code: 200