Analytics API: wrapUpCode returns null in detail queries despite valid agent input

Trying to understand why my wrapUpCode field is consistently returning null in the response payload when querying the CXone Analytics Detail API. I am migrating from Five9 and used to being able to pull specific disposition codes directly in the summary calls, but the CXone documentation suggests using the Detail API for granular data.

I am hitting the endpoint POST /api/v2/analytics/details with a JSON body that filters for a specific time window and agent ID. The response returns valid data for conversationId, startTime, and duration, but the wrapUpCode object is always empty or null, even for conversations where I can see the agent selected a code in the Studio recording.

Here is the request body I am using:

{
 "dateFrom": "2023-10-01T00:00:00.000Z",
 "dateTo": "2023-10-01T23:59:59.999Z",
 "interval": "PT1H",
 "groupBy": ["agentId"],
 "filter": {
 "type": "and",
 "clauses": [
 {
 "type": "equals",
 "field": "agentId",
 "value": "agent-uuid-here"
 }
 ]
 }
}

I have already tried the following:

  • Verified that the agent actually applied a wrap-up code by checking the conversation transcript in the Admin UI; the code is present there.
  • Checked if I need to add wrapUpCode to the groupBy array, but the API returned a 400 Bad Request saying that field is not valid for grouping in this context.

Is this a known limitation of the Detail API where wrap-up codes are not exposed in the initial detail response? Do I need to make a secondary call to the Conversations API using the conversationId to fetch the disposition, or am I missing a specific field in my filter? Any help would be appreciated.

Yep, this is a known issue… The detail API often omits wrap-up codes if the interaction type isn’t explicitly filtered or if the code wasn’t applied before the conversation ended. Try adding interactionTypes: ["voice"] to your query body to force the engine to retrieve the specific disposition metadata.