Analytics API

Endpoints for metrics, reports, and data export.

Overview Metrics

GET/api/analytics/overviewAuth: Session

Get overview KPI metrics.

Query Parameters:

ParameterTypeRequiredDescription
periodstringRequired"today", "yesterday", "7d", "30d", or "90d"

Response (200):

json
{
"metrics": {
"serviceLevel": {
"value": 82.5,
"target": 80,
"unit": "%"
},
"averageHandleTime": {
"value": 185,
"target": 300,
"unit": "seconds",
"formatted": "3:05"
},
"averageSpeedOfAnswer": {
"value": 18,
"target": 20,
"unit": "seconds"
},
"occupancy": {
"value": 78.2,
"target": 85,
"unit": "%"
},
"adherence": {
"value": 91.5,
"target": 90,
"unit": "%"
},
"contactVolume": {
"offered": 1250,
"handled": 1180,
"abandoned": 70,
"abandonRate": 5.6
}
},
"period": "7d",
"dateRange": {
"startDate": "2026-01-22",
"endDate": "2026-01-29"
}
}

Service Level

GET/api/analytics/service-levelAuth: Session

Get service level trends.

Query Parameters:

ParameterTypeRequiredDescription
periodstringRequiredTime period (7d, 30d, etc.)
groupBystringOptional"day" or "hour"

Response (200):

json
{
"trends": [
{
"label": "2026-01-22",
"serviceLevel": 85.2,
"aht": 180,
"asa": 15,
"occupancy": 78.5,
"contacts": 180,
"abandoned": 8,
"abandonRate": 4.4
},
{
"label": "2026-01-23",
"serviceLevel": 82.1,
"aht": 195,
"asa": 22,
"occupancy": 81.2,
"contacts": 210,
"abandoned": 12,
"abandonRate": 5.7
}
],
"average": {
"serviceLevel": 83.4,
"aht": 188,
"asa": 18
}
}

Agent Performance

GET/api/analytics/agent-performanceAuth: Session

Get agent performance scorecards.

Query Parameters:

ParameterTypeRequiredDescription
periodstringRequiredTime period
sortBystringOptional"adherence", "occupancy", "hours", "name"
teamIdstringOptionalFilter by team

Response (200):

json
{
"agents": [
{
"id": "uuid",
"name": "John Doe",
"employeeNumber": "EMP001",
"teamName": "Sales",
"metrics": {
"adherence": 92.5,
"occupancy": 78.3,
"hoursWorked": 38.5,
"shiftsWorked": 5,
"contactsHandled": 245,
"avgHandleTime": 175,
"productiveTime": {
"onCall": 1200,
"acw": 180,
"available": 420,
"break": 60
}
}
}
],
"teamAverages": {
"adherence": 89.5,
"occupancy": 76.2,
"totalHours": 385
}
}

Forecast Accuracy

GET/api/analytics/forecast-accuracyAuth: Session

Compare forecast to actual results.

Query Parameters:

ParameterTypeRequiredDescription
forecastIdstringOptionalSpecific forecast to analyze
startDatestringOptionalStart date (YYYY-MM-DD)
endDatestringOptionalEnd date (YYYY-MM-DD)

Response (200):

json
{
"accuracy": {
"overall": 94.2,
"volume": 95.1,
"aht": 93.3
},
"comparison": [
{
"date": "2026-01-22",
"interval": "08:00",
"forecasted": { "volume": 45, "aht": 180 },
"actual": { "volume": 42, "aht": 175 },
"variance": { "volume": -6.7, "aht": -2.8 }
}
]
}

Data Export

POST/api/analytics/exportAuth: Session

Export analytics data.

Request Body:

json
{
"format": "csv",
"type": "service-level",
"startDate": "2026-01-01",
"endDate": "2026-01-31",
"metrics": ["serviceLevel", "aht", "volume"]
}
ParameterTypeRequiredDescription
formatstringRequired"csv" or "json"
typestringRequired"service-level", "agent-performance", "adherence", "contact-volume"
startDatestringRequiredStart date
endDatestringRequiredEnd date
metricsarrayOptionalSpecific metrics to include

Response (200):

Returns file download (CSV) or JSON data based on format.