We are building a custom reporting dashboard that needs to visualize agent utilization metrics at a granular level. Specifically, we require the total handle time (tHandle), after-call work (tAcw), and hold time (tHold) broken down into 30-minute intervals. The goal is to identify peak load periods for specific queues during our operational hours in Central European Time.
I have been experimenting with the GET /api/v2/analytics/conversations/queues endpoint. The documentation suggests using the interval parameter to define the time bucket. I set the interval to PT30M and provided a startTime and endTime spanning a single business day. However, the response payload seems to aggregate the metrics across the entire period rather than providing discrete buckets for each 30-minute slice. Or perhaps I am misinterpreting the structure of the returned JSON.
Here is the simplified request configuration we are using:
GET /api/v2/analytics/conversations/queues
{
"startTime": "2023-10-25T08:00:00.000Z",
"endTime": "2023-10-25T17:00:00.000Z",
"interval": "PT30M",
"groupBy": ["queueId"],
"metrics": ["tHandle", "tAcw", "tHold"]
}
The response contains a values array, but the intervalStart and intervalEnd fields appear to be identical for all entries, or the data is collapsed into a single summary object per queue. This makes it impossible to plot the utilization trend over time. I suspect there might be a specific query parameter or a different endpoint variant required to force the API to return time-series data instead of a period aggregate.
Has anyone successfully extracted these specific metrics at a 30-minute granularity? We need the raw values to calculate the percentage of time agents spend on calls versus hold and ACW within each half-hour block. The current output is too high-level for our optimization needs.