I’m trying to update participant attributes during an active conversation using the Embeddable Client App SDK. The goal is to set a custom attribute queue_priority to high when a supervisor toggles a flag in our custom desktop extension.
Here is the snippet I’m using:
const updatePayload = {
"attributes": {
"queue_priority": "high"
}
};
await sdkInstance.conversations.updateParticipantAttributes(
conversationId,
participantId,
updatePayload
);
The request fails with a 400 Bad Request. The error message is generic: Invalid request body. I’ve checked the API docs for PATCH /api/v2/conversations/{conversationId}/participants/{participantId} and the schema seems to expect a participant object wrapper, not just the attributes map.
I tried wrapping it like this:
{
"participant": {
"attributes": {
"queue_priority": "high"
}
}
}
But that gives a 409 Conflict, saying the participant state is locked. Is there a specific SDK method or API endpoint that handles attribute updates without locking the whole participant object? Or am I missing a header requirement for mid-conversation updates?