We are attempting to configure a webhook endpoint in NICE Cognigy that receives intent data and uses it to drive dynamic routing logic within NICE CXone. The goal is to pass the detected intent from Cognigy directly into the CXone queue routing rules via a custom webhook call.
The issue arises when mapping the JSON payload from Cognigy to the CXone API expectations. We are using POST /api/v2/routing/users/{userId}/available to update the user’s availability based on the intent, but the payload structure seems to be causing a 400 Bad Request error. Here is the JSON payload we are sending:
{
"available": true,
"skills": [
{
"skillId": "intent-skill-123",
"level": 10
}
]
}
The error response from CXone is:
{
"message": "The request is malformed.",
"errors": [
{
"message": "Skill ID 'intent-skill-123' not found"
}
]
}
We have verified that the skill ID exists in CXone, and the user is correctly authenticated via OAuth. The problem might be in how Cognigy is formatting the webhook request or how we are handling the skill assignment in the CXone API call. We are using terraform_cxone to manage the skill definitions, so the skill ID should be valid.
Is there a specific way to format the webhook payload in Cognigy to ensure compatibility with CXone’s dynamic routing API? Or is there a different endpoint we should be using for intent-based skill assignment? We are currently running CXone version 2023-05-01 and Cognigy version v2.5.0.
Any insights on the correct payload structure or API endpoint would be appreciated.