CXone Personal Connection API triggering but call fails immediately

Trying to fire off an outbound call via the CXone Personal Connection API. I’ve got the studio snippet set up to call GetRESTProxy and post to the endpoint. The request returns a 200 OK with a valid transaction ID, but the agent never gets the call and the status in the portal just sits there.

Here’s the payload I’m sending:

{
 "accountId": "12345",
 "to": "+61412345678",
 "from": "+18005551234",
 "data": {
 "campaignId": "outbound-campaign-01"
 }
}

I’ve checked the routing settings and the campaign is active. The from number is verified. I even tried adding a timeout parameter but that didn’t help. The error log in the studio just says “Call terminated by system” which isn’t very helpful.

Is there a specific header I’m missing for the Personal Connection flow? Or does the campaignId need to match a specific format in the JSON body? I’m stuck on why the API accepts the request but the call engine drops it.