Cognigy webhook payload mapping for CXone dynamic routing

We’re wiring up a NICE Cognigy bot to drop into a NICE CXone queue based on intent confidence. The flow is straightforward: Cognigy hits a CXone REST endpoint to create the interaction and assign it to the right queue. The issue is the payload structure. CXone’s /api/v2/interactions/webchat endpoint expects a specific format for the data, but the documentation is vague on how to pass custom attributes that trigger the dynamic rules.

I’ve tried passing the intent data in the custom_attributes field, but the CXone Architect flow isn’t picking it up. Here’s the JSON payload I’m sending from Cognigy:

{
 "channels": ["webchat"],
 "to": {
 "id": "user_123",
 "type": "user"
 },
 "from": {
 "id": "bot_cognigy",
 "type": "user"
 },
 "custom_attributes": {
 "cognigy_intent": "billing_support",
 "intent_confidence": 0.95
 }
}

The interaction gets created, but it lands in the default queue. The rule in CXone checks for the attribute cognigy_intent, but it seems empty when the conversation starts. I’ve verified the attribute name matches exactly. Is there a delay in attribute propagation? Or do I need to use a different endpoint, like /api/v2//queues/{queueId}/memberships to force the assignment? We’re losing customers because they’re bouncing to the wrong agents. The logs show the payload arriving, but the engine ignores the custom data. Need a working example of the exact payload structure that triggers dynamic from an external webhook.