Manager API

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:

https://customer.rest.of.url.com

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 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",
            "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 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",
                "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",
            "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


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

  1. /menu - pulls a list of menus
  2. /menu/tree - pulls menus in a tree structure, which mimics the path an end user would use to get in touch with an agent
  3. /menu/{:id} - pulls a single menu resource
  4. /menu/current_status - Returns current queue status for menus with consumers waiting in queue.
  5. /menu/sla - Returns SLA for all menu paths from now through the previous specified number of minutes.
  6. /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

  1. /team - pulls a list of team
  2. /team/tree - pulls teams in a tree structure
  3. /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