Call Center API
This API is used for configuring queues in the Call Center app and updating the membership of recipients in queues.
API Calls
- List queues
- Queue status
- Queue list status
- Queue information
- Create a queue
- Modify a queue
- List queue sessions
- Set the queue membership
- Clear a queue membership
Parameters
The table shows the possible parameters and actions available for call center queue API calls.
Key | Description | Type | Min/Max/Default/Values |
---|---|---|---|
agent_wrapup_time |
Indicates the wait period (in seconds) that is applied after an agent handles a customer call. | integer | 0 |
force_away_on_reject |
If set to true, and a recipient rejects a call, they will be forced to away state. | boolean | false |
hold_treatment |
The ID, or media URI, of the media that should play while caller is on hold. | string | |
name |
A friendly name for the queue. | string | 1-128 characters |
queue_router |
The queue router used for routing and delivering calls to recipients. | string | route_round_robin |
queue_type |
The type of queue. | string | queue_basic |
ring_timeout |
The amount of time (in seconds) that Call Center waits for the agent to successfully answer a call. | integer | min=1, default=20 |
tick_time |
The time between delivery ticks in milliseconds. | integer |
min=250, default=1000 |
timeout |
The maximum amount of time in seconds that a call will wait in queue. | integer | min=10, default= 600 |
timeout_if_size_exceeds |
If set to a non-zero value the queue will immediately time out any call entering the queue over the size. | integer | 0 |
timeout_immediately_if_empty |
If set to true and a call enters the queue while it has no logged in agents, the call will time out. | boolean | false |
timeout_redirect |
The ID of a queue that the call will be sent to in the event of a timeout. | string | N/A |
active-session-count |
Count of currently active sessions in the queue. | integer | N/A |
recipient-count |
Count of total configured recipients for the queue. | integer | N/A |
active-recipient-count |
Count of currently active recipients (logged in). | N/A | |
available-recipient-count |
Count of currently available recipients (ready to take a call). | integer | N/A |
estimated-wait |
The currently estimated wait time for a session in queue. | integer | N/A |
average-wait |
The DAILY average wait time for all sessions. | integer | N/A |
total-sessions |
The DAILY total session count for the queue. | integer | N/A |
missed-sessions |
The DAILY total count of missed sessions (sessions that timed out without being handled). | integer | N/A |
abandoned-sessions |
The DAILY total count of abandoned sessions (session left queue prior to being handled). | integer | N/A |
node |
The node that the queue process is running on. | integer | N/A |
add |
Adds the list of ID's to queue membership. | N/A | N/A |
remove |
Removes the list of ID's from queue membership. | N/A | N/A |
set |
Sets the membership to exactly the list of ID's provided . | N/A | N/A |
List queues
Lists all queues that are configured for the specified account.
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues
Response
{
"page_size":{RESULT_COUNT},
"data":[
{
"id": "{QUEUE_ID}",
"name": "{QUEUE_NAME}"
}
],
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
Queue status
Returns the status of the queue.
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/status
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/status
Response
{
"data": {
"active_recipient_count": {ACTIVE_RECIPIENT_COUNT},
"available_recipient_count": {AVAILABLE_RECIPIENT_COUNT},
"stats": {
"estimated_wait": {EST_WAIT_TIME},
"average_wait": {AVG_WAIT_TIME},
"recipient_count": {RECIPIENT_COUNT},
"active_session_count": {ACTIVE_SESSION_COUNT},
"total_sessions": {TOTAL_SESSION_COUNT},
"missed_sessions": {MISSED_COUNT},
"abandoned_sessions": {ABANDONED_COUNT}
},
"node": {RUNNING_ON_NODE}
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
Queue List Status
Returns the status for the listed queues
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues/status
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/status -d
Response
'{"data":{"queue_ids":[{QUEUE_ID_1},{QUEUE_ID_2}]}}'
{
"data":{
{QUEUE_ID_1}: {
"active_recipient_count": {ACTIVE_RECIPIENT_COUNT},
"available_recipient_count": {AVAILABLE_RECIPIENT_COUNT},
"stats": {
"estimated_wait": {EST_WAIT_TIME},
"average_wait": {AVG_WAIT_TIME},
"recipient_count": {RECIPIENT_COUNT},
"active_session_count": {ACTIVE_SESSION_COUNT},
"total_sessions": {TOTAL_SESSION_COUNT},
"missed_sessions": {MISSED_COUNT},
"abandoned_sessions": {ABANDONED_COUNT}
},
"node": {RUNNING_ON_NODE}
},
{QUEUE_ID_2}: {
"active_recipient_count": {ACTIVE_RECIPIENT_COUNT},
"available_recipient_count": {AVAILABLE_RECIPIENT_COUNT},
"stats": {
"estimated_wait": {EST_WAIT_TIME},
"average_wait": {AVG_WAIT_TIME},
"recipient_count": {RECIPIENT_COUNT},
"active_session_count": {ACTIVE_SESSION_COUNT},
"total_sessions": {TOTAL_SESSION_COUNT},
"missed_sessions": {MISSED_COUNT},
"abandoned_sessions": {ABANDONED_COUNT}
},
"node": {RUNNING_ON_NODE}
}
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
Queue information
Returns all configuration data for a specific queue.
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}
Response
{
"data":{
"name":"{QUEUE_NAME}",
"queue_type":"queue_basic",
"queue_router":"{ROUTER_TYPE}",
"timeout":{TIMEOUT},
"hold_treatment":"{MEDIA_ID_FOR_HOLD_TREATMENT}",
"agent_wrapup_time":{AGENT_WRAPUP},
"tick_time":1000,
"members":{
{MEMBERS_LIST}
},
"id":"{QUEUE_ID}",
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
The {MEMBERS_LIST} for a queue consists of a list of key value mappings where the key is the ID of a Call Center enabled user (recipient) and the value is an empty string.
"members":{
"{USER_ID}":"",
"{USER2_ID}":""
}
Create a queue
Creates a queue.
Method and endpoint
PUT /v2/accounts/{ACCOUNT_ID}/qubicle_queues/
Request
curl -v -X PUT -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues -d '{"data":{"name":"{QUEUE_NAME}"}}'
Response
{
"data":{
"name":"{QUEUE_NAME}",
"agent_connect_timeout":15,
"agent_wrapup_time":2,
"queue_router":"route_round_robin",
"queue_timeout":3600,
"queue_type":"queue_basic",
"tick_time":1000,
"id":"{QUEUE_ID}"
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
Modify a queue
Modifies the queue configuration with a PATCH request as follows:
Method and endpoint
PATCH /v2/accounts/{ACCOUNT_ID}/qubicle/queues/{QUEUE_ID}
Request
curl -v -X PATCH -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID} -d '{"data":{"queue_timeout":"2000"}}'
Response
{
"data":{
"name":"{QUEUE_NAME}",
"agent_connect_timeout":{AGENT_CONNECT_TIMEOUT},
"agent_wrapup_time":{AGENT_WRAPUP_TIME},
"queue_router":{QUEUE_ROUTER},
"queue_timeout":2000,
"queue_type":{QUEUE_TYPE},
"tick_time":1000,
"id":"{QUEUE_ID}"
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
List queue sessions
Lists all sessions that are in the queue currently.
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/sessions
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/sessions
Response
{
"data": [
{
"queue_id":"{QUEUE_ID}",
"session_list": [{SESSION1}, {SESSION2}]
}
],
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
List queue recipients
Lists all recipients that are in the queue currently, as well as their permissions.
Method and endpoint
GET /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients
Request
curl -v -X GET -H "X-Auth-Token: {AUTH_TOKEN}" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients
Response
{
"data": [
{
"id":{RECIP_1_ID},
"permission_roles": {RECIP_1_ROLES},
"permissions": [{RECIP_1_PERMISSIONS}]
}
],
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
Set the queue membership
Modifies the membership of a queue.
Method and endpoint
POST /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients
Request
curl -v -X POST -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients -d '{"data": {"action": {ACTION}, "members":["{USER_ID_1}", "{USER_ID_2}"]}}'
Response
{
"data":{
"name":"{QUEUE_NAME}",
"queue_type":"queue_basic",
"queue_router":"route_round_robin",
"timeout":{TIMEOUT},
"agent_connect_timeout":15,
"hold_treatment":"{MEDIA_ID}",
"agent_wrapup_time":2,
"tick_time":1000,
"members":{
{USER_ID_1}:"",
{USER_ID_2}:""
},
"id":"{QUEUE_ID}"
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}
NOTE: Members is a list of user ID's.
Clear a queue membership
Deletes queue memberships.
Method and endpoint
DELETE /v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients
Request
curl -v -X DELETE -H "X-Auth-Token: {AUTH_TOKEN}" -H "Content-Type: application/json" http://{SERVER}:8000/v2/accounts/{ACCOUNT_ID}/qubicle_queues/{QUEUE_ID}/recipients
Response
{
"data":{
"name":"{QUEUE_NAME}",
"queue_type":"queue_basic",
"queue_router":"route_round_robin",
"timeout":{TIMEOUT},
"agent_connect_timeout":15,
"hold_treatment":"{MEDIA_ID}",
"agent_wrapup_time":2,
"tick_time":1000,
"members":{
},
"id":"{QUEUE_ID}"
},
"request_id":"{REQUEST_ID}",
"status":"success",
"auth_token":"{AUTH_TOKEN}"
}