Cognigy webhook payload not passing intent to CXone routing queue

Hey team. I’m trying to set up a flow where a NICE Cognigy bot passes the detected intent to a NICE CXone routing queue via a webhook. The goal is to route the conversation to the correct skill group based on what the user asked for.

I’ve configured the webhook in Cognigy to send a POST request to the CXone Conversation API. Here’s the payload I’m sending:

{
 "to": "user:abc-123",
 "from": "bot:my-bot",
 "type": "chat",
 "metadata": {
 "intent": "billing_inquiry",
 "priority": "high"
 }
}

The webhook call returns a 200 OK response, which makes me think the request is hitting the endpoint successfully. However, the conversation doesn’t seem to be routing correctly. I checked the CXone logs and the conversation is created, but it’s going to the default queue instead of the ‘Billing’ queue. I suspect the routing profile isn’t picking up the intent from the metadata.

I’ve tried adding the intent to the skills array in the payload like this:

{
 "to": "user:abc-123",
 "from": "bot:my-bot",
 "type": "chat",
 "skills": [
 {
 "name": "billing_inquiry",
 "level": 5
 }
 ]
}

But now I’m getting a 400 Bad Request error with the message Invalid skills format. I’m not sure if I’m structuring the skills object correctly or if there’s a specific field I need to use for intent-based routing.

Has anyone done this before? I’ve been staring at the CXone API docs for hours and can’t find a clear example of how to pass intent from an external webhook to the routing engine. Any help would be appreciated. I’m using CXone version 2023-10 and Cognigy version 6.5.