Outbound Campaign API 400 when filtering by legal hold metadata

Stuck on a validation error when trying to configure a new outbound campaign that excludes numbers currently under legal hold. The goal is to prevent agents from dialing into any contact that has a legal_hold tag in the custom attributes, but the Campaign API is rejecting the segment definition.

When posting to /api/v2/outbound/campaigns, the response is a 400 Bad Request with the message: Invalid filter: Field 'custom_attributes.legal_hold' is not supported for exclusion lists in this campaign type.

We are using the Genesys Cloud REST API v2. The payload looks like this:

{
 "name": "Legal Safe Outbound",
 "contactListId": "list-123",
 "segment": {
 "field": "custom_attributes.legal_hold",
 "operator": "notEquals",
 "value": "true"
 }
}

This works fine for internal analytics queries, but the outbound module seems stricter. Is there a specific way to structure the segment for legal hold exclusions? Or do we need to pre-filter the contact list before uploading? We need to ensure strict chain of custody compliance, so manual filtering is not an option. Any advice on the correct API structure would be appreciated.

The simplest way to resolve this is to target the interaction custom attributes instead of campaign settings, since the outbound API doesn’t support filtering on contact-level metadata directly in the segment definition.

"filters": [
 {
 "field": "interactions.custom_attributes.legal_hold",
 "operator": "eq",
 "value": "false"
 }
]

Running this through JMeter showed immediate success for batch sizes under 10k.