CXone Personal Connection API returns 500 when initiating outbound call

Hey everyone,

I’m trying to integrate our legacy IVR system with CXone by triggering outbound calls via the Personal Connection API. The goal is simple: when a specific condition is met in our backend, we want to kick off a call to a customer using the POST /api/v2/interactions/outbound endpoint.

I’ve got the OAuth tokens sorted (using client credentials for the server-to-server bit). The payload looks straightforward, but I keep hitting a 500 Internal Server Error from the gateway. The error message isn’t super descriptive, just “An unexpected error occurred.”

Here’s the JSON body I’m sending:

{
 "originator": {
 "type": "user",
 "id": "my-agent-user-id"
 },
 "target": {
 "type": "person",
 "id": "555-0199"
 },
 "interactionType": "voice",
 "properties": {
 "campaignId": "my-campaign-id"
 }
}

I’ve double-checked the originator ID. It’s a valid user in the CXone instance with outbound permissions. The target ID is a clean phone number formatted with dashes. I’ve also tried swapping the target type to phone and using E.164 format, but same result.

The weird part is that the campaignId exists and is active. I can see it in the UI. I’m running this from a US/Pacific timezone, so time-based restrictions shouldn’t be an issue right now.

Has anyone hit this specific 500 error with the Personal Connection outbound endpoint? Is there a hidden validation rule I’m missing? I’m using Python requests for this, so I know the HTTP request itself is valid.

Appreciate any pointers. I’m stuck on this one.