Queue aggregate analytics API

Hi,

our end customer wants to extract basic aggregate queue KPIs via API (per 30 min intervals): offered, attended, abandoned, AHT, AverageACW...

But it seems there is no way to get via API an equivalent to what they can see via UI (performance - queues)

I have played with this endpoint /api/v2/analytics/conversations/aggregates/query, but it's no valid because it's not queue focused, and thus you cannot obtain for example offered/attended/abandoned

/api/v2/analytics/queues/observations/query is either not an option because the want aggregate data for 30 min intervals.

Is there any option? This is the most basic set of KPIs for a contact center, there should be one. It's very weird that that exact data is available through UI but not via API

Thanks

Hello,

The Performance Queues UI leverages a set of API requests. They are all public.
What the UI does is not documented. But you can enable your browser Developer Tools (like in Chrome) and check the Network tab to see what Platform API requests are leveraged in a Performance view (and so you can also see what requests body they have).

It should likely be using the following ones:

You may also need GET /api/v2/users to get a list of user IDs.

See this other post.

Regards,

We have no trouble validating back to queue performance using /api/v2/analytics/conversations/aggregates/query

The groupby let's you specify queueId among other details;

{"interval":"2021-09-15T04:00:00.000Z/2021-09-15T05:00:00.000Z","granularity":"PT30M","timeZone":"UTC","groupBy":["userId","queueId","requestedRoutingSkillId","direction","mediaType","requestedLanguageId"],"metrics":["nBlindTransferred","nConnected","nConsult","nConsultTransferred","nError","nOffered","nOutbound","nOutboundAbandoned","nOutboundAttempted","nOutboundConnected","nOverSla","nStateTransitionError","nTransferred","oExternalMediaCount","oMediaCount","oServiceLevel","oServiceTarget","tAbandon","tAcd","tAcw","tAgentResponseTime","tAlert","tAnswered","tContacting","tDialing","tFlowOut","tHandle","tHeld","tHeldComplete","tIvr","tMonitoring","tNotResponding","tShortAbandon","tTalk","tTalkComplete","tUserResponseTime","tVoicemail","tWait"],"flattenMultivaluedDimensions":true}

We stored the ongoing results of that in our reporting data mart and then use additional aggregates as necessary to view it by queue, user, or skill, language, or across combinations.

Parsing the results can be tricky, but if you are only interested in high level queue information you can reduce your group by complexity and make that much easier.

Hi Jerome, I did a bit of reverse engineering via Developer Tools, and it's quite tricky how the UI extracts that info

Although there is no nAnswered or nAbandoned available in the endpoint, it seems we can use count on tAnswered as if it was nAnswered, and calculate nAbandoned = nOffered - count(tAnswered)

That should do it. Thanks a lot

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.