Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Data service

Data service is a REST+GraphQL based microservice following the REST and GraphQL API specifications. A 3rd party application can implement these services to return any kind of real-time and historical data to be displayed on Dashboards and Wallboards. We do not expect the data service to implement any sort of authentication on REST and/or GraphQL APIs for now. 

REST APIs

Each data service must support the following endpoints with the following data:

1. Get available attributes

GET /service-name/attribute
Responses

HTTP Code

Description

Schema

200

List of attributes and filters will be returned on success response.

Dashboards & Wallboards API Specs GuidedataContract

Example HTTP request
Request path
/agent-service/attribute
Example HTTP response
Response 200
{
  "attributes" : [{"name": "aht", description: "Average handling time", "group": "voice", "dataType": "FLOAT", historical: true}], 
"filterAttributes" : ["team", "skillGroup"],
"multipleFilters" : true
}

2. Get filter values

GET /service-name/<name-of-filter>
Responses

HTTP Code

Description

Schema

200

List of the values of the given filter

<Dashboards & Wallboards API Specs GuidefilterValues> array

Example HTTP request
Request path
/agent-service/team
Example HTTP response
Response 200
[{
"id" : 1 "name" : "team1"
},
{
"id" : 2 "name" : "team2"
}]

3. Get Service Status

GET /service-name/status
Responses

HTTP Code

Description

Schema

200

Service is up and running

string

Example HTTP request
Request path
/agent-service/status
Example HTTP response
Response 200
{"status": "ok"}

Schema

Anchor
dataContract
dataContract
dataContract

...

Name

Description

Schema

attributes

List of all the attributes that the data service exposes.

Example : [{"name": "currentState", description: "Current state of the Agent", "group": "voice", "dataType": "FLOAT", historical: true}]

<Dashboards & Wallboards API Specs Guideattribute> array

filterAttributes

List of all the filter attributes. The filterValue API will use these names to create the URL path for getting the filter values.

Example : ["team", "skillGroup"]

< string > array

multipleFilters

Should be true if data service supports multiple filter selection.

Example : true

boolean

...

Name

Description

Schema

name

Name of the attribute

Example : "team1"

string

id

Integer ID of the object. This value will be given in the arguments of the queries where filter values are required. See below for details.

Example : "1"

string

GraphQL schema

Every data service will have to expose the following GraphQL queries. Description of the schema is as follows:

Queries

Real-time data

This query will return a list of given attributes and optionally filter the list based on the provided arguments. Following input arguments must be supported:

...

[{
   agentName: “SomeAgent”
   AHT: “20”,
   answeredEmails: “50”,
   ...
},
{
   agentName: “SomeOtherAgent”
   AHT: “30”,
   answeredEmails: “60”,
   ...
}]

Aggregated real-time data

Each data service should support SUM and AVERAGE data aggregation of any numerical attribute and Row Count of any numerical/non-numerical attributes.

...

[{
   name: “Ready”,
   value: “20”
},
{
   name: “Not ready”,
   value: “5”
}]


Historical data

This query will give historical stats of the given attribute/s. It should support the following input arguments:

...