I’m trying to push CRM data into an active voice conversation using the Genesys Cloud API, but it’s not sticking. The goal is to have an external system read the current participant attributes, add a loyalty_tier value, and write them back.
I’m using the PATCH /api/v2/conversations/voice/{conversationId} endpoint. Here is the payload I’m sending:
{
"participants": [
{
"id": "caller-id-123",
"attributes": {
"loyalty_tier": "gold",
"last_seen": "2023-10-27"
}
}
]
}
The request returns a 200 OK, which is good. But when I immediately hit GET /api/v2/conversations/voice/{conversationId}/participants/{participantId}, the attributes object is empty. No errors, just missing data.
I’ve checked the routing rules, and they aren’t stripping anything. Is there a specific flag I need to set on the participant object for the attributes to persist? Or is the PATCH method behaving differently for live voice calls compared to web messaging? I’m following the standard docs, but nothing shows up on the agent screen. The call is still active, so I can’t test with a closed conversation yet.