We are building an external system that needs to update participant attributes on a live voice call. The goal is to push custom data back into Genesys Cloud while the agent is on the line. I’m using the Python SDK and calling put_conversations_conversation_id_participants_participant_id with a JSON payload containing the new attributes.
The code looks like this:
payload = {
"attributes": {
"vip_status": "true",
"priority_level": "high"
}
}
api_instance.put_conversations_conversation_id_participants_participant_id(
conversation_id, participant_id, body=payload
)
The call returns a 200 OK, which is good. But when I check the conversation object later, the attributes are gone. It seems like the update isn’t persisting or maybe I’m missing a specific flag to save them permanently. We’re in the EU region, so the endpoint is api.eu.genesys.cloud. I’ve double-checked the OAuth scopes and they include conversation:write.
Is there something specific about how participant attributes are handled during an active call? Or do I need to use a different method to ensure they stick around after the call ends? The docs are a bit vague on this part.