Building an outbound dialer module for our custom agent desktop using the Genesys Cloud Embeddable Client App SDK. The goal is straightforward: trigger an outbound call on behalf of the logged-in agent without relying on the standard dialpad, essentially mimicking a click-to-dial action but driven by backend logic.
I’ve been hammering the POST /api/v2/conversations/calls endpoint. The documentation suggests passing the from endpoint as the user object and the to endpoint as the target phone number. Here’s the JSON payload I’m constructing in JavaScript:
{
"from": {
"id": "current_agent_user_id",
"endpointType": "user"
},
"to": {
"phoneNumber": "+15551234567",
"endpointType": "phone"
},
"provider": {
"id": "default_routing_queue_id",
"providerType": "routingQueue"
},
"wrapUpCode": null
}
The request consistently returns a 400 BAD_REQUEST. The error message is terse: Invalid 'from' endpoint. It feels like the system doesn’t recognize the user ID as a valid endpoint for initiating a call in this context, or perhaps the provider object structure is off. I’ve double-checked the user ID against the GET /api/v2/users/me response, so it’s definitely correct. The routing queue ID is also valid and active.
I tried swapping the from endpoint to a phone type using the agent’s direct line, but that requires knowing the extension beforehand, which defeats the purpose of a dynamic user-based dialer. I also verified the OAuth token has the conversations:write scope.
Has anyone successfully initiated an outbound call via this endpoint where the from is a user object? Or is there a specific permission set I’m missing on the user profile? I’m stuck on this validation error.