API to perform CRUD operations for skills on a live conversation

We understand that a set skill action can be used while a conversation waits in a queue to add skills. We also recognize that you could perform this in a flow through a number attached to an external contact. We are looking for either the API being used for setskill action or an API that will allow us to do this in a live conversation. Hopefully, you can help.

I believe this could be used please confirm
PATCH
/api/v2/routing/conversations/{conversationId}

Hello,

That's correct.
This API endpoint will allow you to update attributes of an in-queue conversation. Supported attributes: skillIds, languageId, and priority.

Regards,

Is there anything special I need to do? I have an active call the conversation clearly exists I can run the get conversation API etc but when I test this API I'm getting the following error:

{
"message": "Conversation XYZ does not exist.",
"code": "resource.not.found",
"status": 404,
"messageWithParams": "{entity} {id} does not exist.",
"messageParams": {
"id": "fbf09b5d-ee05-4abb-9799-540187e1ba22",
"entity": "Conversation"
},
"contextId": "e6a58f37-c7ab-48f2-80ae-e8ed57fa0ff6",
"details": [],
"errors": []
}

This one only functions while in-queue. Anything that I can use that doesn't have that requirement?

Is your conversation in a queue at the tie you sent the API Request?
If yes, that should work.

If your conversation is not in queue, then the request will fail.
It can only be requested when the conversation is in queue.

Regards,

Anything that I can use that doesn't have that requirement?

No. There is only this API endpoint, which can only be requested when the conversation is in queue.

Bummer. Thanks for the quick response. I'll see what is on the ideas portal.

What's your use case for setting permissions via API when the conversation is not in queue? At what point are you trying to do this?

Hi Tim,

Here are a couple of examples of the use case:
The caller selects the wrong queue and ends up with an agent. That agent needs to transfer the call to another queue but will need to assign certain skills so that the caller gets answered by the correct agent(s) in the new queue.

An agent helps a customer with their support case. Now the agent needs to transfer the customer to the accounting queue but the customer will require an agent in that queue with the appropriate state skill.

For those re-queuing cases, you can set participant attributes on the conversation prior to transfer, then use an in-queue flow to read those attributes and use the set skills step to assign the appropriate skills.

The reason there isn't an API endpoint for setting skills outside of a call that's in queue is because skills are not an attribute of the call itself; they're an attribute of the request to the queue to route the conversation. That's pedantic, but it matters because of how the skill assignment ends up being expressed and handled in the platform.

Submitting an idea to attach the desired skills to the transfer request would be a nice timesaver though.