Studio Session Handover to Cognigy Voicebot returning 400 Bad Request on Transfer

We’re integrating a CXone Studio IVR with a NICE Cognigy voicebot for complex intent handling. The flow works in the sandbox, but production transfers are failing consistently. I’m using the Assign block to set the transferTarget and transferType to VOICE, then hitting the Transfer block.

The issue is the Cognigy endpoint URL. When I use the standard REST proxy pattern, the studio logs show a 400 Bad Request from the Cognigy backend, specifically complaining about missing sessionContext in the initial POST. I assumed the Transfer block handles this payload injection automatically based on the transferData map.

Here’s the JSON mapping I’m passing into the transfer block:

{
 "transferTarget": "https://my-cognigy-instance.niceincontact.com/api/v1/bots/MyBot/conversations",
 "transferType": "VOICE",
 "transferData": {
 "sessionId": "{{session.id}}",
 "contactId": "{{contact.id}}",
 "initialUtterance": "{{lastUtterance.text}}"
 }
}

The Cognigy docs say it expects a specific headers object and a body with session details. Studio’s Transfer block doesn’t seem to let me inject custom HTTP headers like Authorization or Content-Type directly into the handshake payload. I’ve tried putting the auth token in the transferData, but Cognigy ignores it for the initial session creation.

Is there a way to hook into the outgoing WebSocket or HTTP transfer request in Studio to modify the headers? Or do I need to use a GetRESTProxy block to manually POST to Cognigy and then bridge the audio streams myself? That feels like a hack. The Studio transfer block seems too rigid for custom bot integrations that require non-standard headers.