The API returns a 400 Bad Request with the message: “Validation failed for field ‘contactListId’. The specified contact list does not exist or is not accessible.”
This is occurring while attempting to programmatically create a new outbound campaign via the Genesys Cloud REST API (POST /api/v2/outbound/campaigns). The integration is built as a Premium App using Node.js 18 and the @genesyscloud/api-client-node SDK v4.5.2. The authentication flow uses multi-tenant OAuth with a service account that has the outbound:campaign:write and outbound:contactlist:read permissions explicitly granted in the admin console.
The contactListId being passed is a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8, which is confirmed to exist and be active in the target organization. Manual verification via the Admin UI shows the list contains 1,200 contacts and has no active locks. Furthermore, a GET /api/v2/outbound/contactlists/{contactListId} call using the same bearer token returns a 200 OK with the full list details, confirming access rights are intact.
The request payload is structured as follows:
name: "Automated Survey Campaign - Batch 4"
contactListId: "a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8"
campaignType: "PREDICTIVE"
rules:
- id: "rule_01"
condition: "callDispositionCode == 'SURVEY_COMPLETE'"
action: "STOP"
predictiveCampaign:
predictRate: 0.75
targetAbandonPercent: 5
maxCallsPerHour: 500
dialingPattern: "SEQUENTIAL"
wrapUpTime: 30
The error persists across multiple attempts with different contactListId values from the same org. Rate limiting is not the issue, as the requests are spaced 5 seconds apart and no 429 headers are present. The environment is mypurecloud.com (US East). Has anyone encountered a discrepancy where a valid, accessible contact list is rejected during campaign creation specifically for PREDICTIVE types? I suspect this might be related to a backend validation step that checks for predictive-specific metadata on the list, but the documentation does not specify additional requirements beyond the list ID.