CXone Personal Connection API returning 403 Forbidden despite correct scopes

I’ve been trying to automate outbound calls using the CXone Personal Connection API for the last few days and I’m hitting a wall with a 403 Forbidden error. The goal is to trigger a call from a specific user’s Personal Connection profile rather than a standard outbound campaign.

I’ve verified that the service account has the necessary scopes, including user:personalconnection:write and user:personalconnection:read. I’m making the request using the Platform SDK in Python. Here is the code snippet I’m using to make the call:

from genesyscloud.api import ConversationApi
from genesyscloud.rest import ApiException

api_instance = ConversationApi(api_client)
try:
 # Attempting to create a conversation via Personal Connection
 api_response = api_instance.post_conversation_personal_connection(
 body=personal_connection_request_body,
 x_request_id='test-request-123'
 )
 print("Call initiated successfully:", api_response)
except ApiException as e:
 print("Exception when calling ConversationApi->post_conversation_personal_connection: %s\n" % e)

The personal_connection_request_body JSON payload looks like this:

{
 "to": [{"phoneNumber": "+442071234567"}],
 "from": {"phoneNumber": "+442079876543"},
 "personalConnectionId": "abc123-def456-ghi789"
}

The error message returned is quite generic: {"message": "Forbidden", "errors": ["Access denied"]}. I’ve double-checked the personalConnectionId against the UI and it matches exactly. The user associated with the Personal Connection is active and has the correct permissions to make outbound calls in the CXone portal.

I’m wondering if there’s a specific configuration I’m missing on the Personal Connection profile itself, or if the API expects a different format for the from field when using Personal Connection. I’ve also tried using a different service account with admin privileges, but the result is the same. Any insights on what could be causing this access denial would be appreciated. I’m out of ideas at this point.