Agent endpoints

Agent endpoints provide a means to get agent objects. Each agent object represents a single agent inside of CCAI Platform. Review the following model to see which fields might contain personally identifiable information (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"
        }
      }
    ]
  }
]

Agents

Parameter Required Data Type Definition
page FALSE String Pairs with per to note what page of records. For example 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 FALSE String Pairs with page to note how many records would be included in a page of records. For example 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.
id[] FALSE Array[String] Array[Strings]. Id of records to search and return
agent_number[] FALSE Array[String] Agent numbers as assigned by the administrator at the time of creating an agent
status_id[] FALSE Array[String] Filters by agent status
online[] FALSE Boolean Filter by if agents are online or not
wrap_up[] FALSE Boolean Filter by if agents are in wrap up status
location[] FALSE Array[String] Filters by agent 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[to] FALSE Time in UTC creates a upper bound of the last login time field. All records returned will be before the inputted value.
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[to] FALSE Time in UTC creates a upper bound of the status updated at field. All records returned will be before the inputted value.

Endpoint:

Method: GET
Type: 
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/agents

More example Requests/Responses:

Example request: Agents example

Body: None

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

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:

Example Request: Agents Current Status

Body: None

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