Hello,
I am trying to use this function (PostEmailsEmailIdParticipantsParticipantIdReplace) to transfer an email from a generic queue to any queue i want depending on some rules (‘blind transfer’ ) i do have the notifications working so i can get the conversation as soon as it arrives the generic queue, the idea is to move it to another queue.
I was suggested to use this function but i am not exactly sure i will get the result i need or how to use it.
I am sending the email id, the queue id i want in the transfer request body and the participant id i am using is the customer one, if i don't have to use this id as participant then whom should it be? as what i really need is the email to be transferred to another queue so any other ACD assigned to that queue can pick it up?
Any help will be much appreciate it thanks.
UPDATE: also the documentation says to use the emailID but when i try to use the email id it says it doesn't find the conversation, so i am now using the conversation id.
I've tested this out and transferring the email from one queue to another works correctly for me. I used POST /api/v2/conversations/emails/{emailId}/participants/{participantId}/replace with the following values:
- emailId - the conversation ID of the conversation object
- participantId - the participant ID of the queue (
purpose==acd
and queueId != null
)
- body:
{ "queueId": "8b2c890c-bbba-4690-81b3-469d7f9f84af" }
-- that ID is from GET /api/v2/routing/queues
This came back with a 202 success response and the email was showing in the new queue.
If you're not able to get this working, can you post a context ID from the request and describe the behavior you saw?
the participant id i am using is the customer one, if i don't have to use this id as participant then whom should it be?
To expand on why this is wrong (use the queue participant, not the customer), it's important to understand the terminology and how a transfer works.
In many other systems, CIC included, when you wanted to transfer something, you send a request to transfer another participant to someplace else and the assumption is that you'll be disconnected.
In PureCloud, the robustness of the conversation model makes this a little trickier. Because every conversation has multiple participants, it wouldn't make sense transfer the conversation object itself (you wouldn't want to move all participants to connect to something else) and it wouldn't make sense to transfer the customer either (you don't want to remove them from the conversation).
The resource used to "transfer" is intentionally not named that. It's the /replace resource, which replaces one participant for another. The way you want to think about this is that the customer should remain connected to the conversation, but you want to replace one participant with another one. In your case, this would be replacing one queue for a different queue. In a user transfer scenario, this might mean replacing the agent with another agent, a queue, or an external call.
Thanks alot for the help, i think it worked as the timeline of the interaction shows it went from TwinEngines queue to Industry (image bellow), just not sure why i see "TwinEngines Email" bellow, does this leaves the interaction on the twinengines queue live?, is somewhere else i can check to confirm this?. i think it does what i need but want to make sure.

Did you have any agents available for interactions when this transferred? That looks like an alerting agent in the timeline. If you are still having issues with it, let me know the interaction Id and I can see what it looks like in detail.
Hello,
To test i have the same ACD assigned to 3 different queues, one is the generic and 2 more which will have other ACDs, i would like to know the exact place where i can see if the transfer succeeded, i tried to look at performance/queues/{queueName}/interactions but i see nothing there (Admin Site) but when i go to Performance/interactions/ and select my user i can see this (just trying to make sure it is working properly):

Thanks for all the help