What’s the right way to push a disposition update back to Genesys from an external bot when the agent drops the call? The Slack integration grabs the callId from the campaign:call:status webhook and fires a PATCH to /api/v2/outbound/campaigns/{campaignId}/contacts/{contactId}, but the response is always a 400 Bad Request. Checked the campaign settings and the custom code is active, yet the API acts like it doesn’t exist. Swapped the string for the integer ID, still getting the same error. Logs show the request body hits the proxy fine, but Genesys drops it immediately. Tried adding the updatedBy field explicitly, didn’t change anything. The bot service account has the outbound:contact:update permission granted, so auth isn’t the blocker here. Just sitting there doing jack all while the queue fills up.
- Environment: Outbound API v2, Node SDK 2.3.1, Campaign ID
cam_99281x. - Webhook trigger:
campaign:call:statuswithdispositionCodein payload. - Payload uses
dispositionCodestring instead of the internal ID.
{
"dispositionCode": 4402,
"callId": "call_abc123",
"updatedBy": "user_bot_01"
}
Endpoint returns {"message":"Invalid disposition code provided"}.