HTTP 400 Bad Request when updating recording configuration via API

We’ve built a sidecar service to inject custom metadata into Genesys Cloud recordings. The goal is to track specific interaction types in New Relic for performance analysis. I’m using the REST API to update the recording configuration on an active conversation.

The endpoint is PATCH /api/v2/recordings/conversations/{conversationId}/recordingconfiguration.

Here is the JSON payload I’m sending:

{
 "enabled": true,
 "customMetadata": {
 "newrelic.traceId": "abc-123",
 "interactionType": "sales"
 }
}

The request fails with a 400 Bad Request. The error body says:

{
 "message": "Failed to parse request body",
 "errors": [
 "Invalid input at 'customMetadata.newrelic.traceId'"
 ]
}

I’ve verified the conversationId is correct and the conversation is in a connected state. The docs mention that custom metadata keys must be alphanumeric or underscores. The dot in newrelic.traceId seems to be the issue.

Can we use dots in the key names for custom metadata? If not, what’s the workaround for mapping hierarchical data like this without losing the structure in the downstream analytics?