Is it possible to instruct a call that was transferred to a number from within a flow, to return back to the same flow or any flow instead of disconnecting (using the Rest API or Java SDK) ?
If this is possible will the conversationId remain the same?
In addition, is it possible to re-route the call, after it was transferred to a number, to an agent instead of a flow?
We have already tried the replace participant action ( /api/v2/conversations/calls/{conversationId}/participants/{participantId}/replace) without success although we surprisingly received a 202 Accepted response.
POST /api/v2/conversations/calls/{conversationId}/participants/{participantId}/replace is the correct resource to use for a blind transfer. You can transfer to any of the types of things allowed in the request: userId, address (phone number), userName, or queueId. To transfer to a flow, you need to transfer to the address assigned to the flow.
This resource will always return 202 if the request was structured correctly. The transfer process is asynchronous and therefore cannot provide the result of the transfer operation in the response as it hasn't happened yet. If you're making a valid request and the transfer isn't happening, please open a case with Genesys Cloud Care for investigation as customer-specific data (like the specifics of a conversation transfer including PII like phone numbers) cannot be investigated via this public forum.
Thank you Tim for your prompt response.
So you can confirm that we should be able to re-route the call back to a flow or agent in cases where the call was transferred to an external number (from within a flow) using the API call for replacing the target participant?
Once the call has been transferred out of Genesys Cloud and there are no active internal participants, Genesys cloud no longer has control over the conversation and it will end. The external caller will have to be transferred back to Genesys Cloud by whomever they're connected to, at which point that will be a new conversation.
Can you please specify what do you mean by internal participant? Can you get this information when we retrieve the participants of a conversation?
Upon transferring to a number, is the targeted party still considered internal? For example, we could transfer to a number leading to an external IVR system. Will this participant be still considered internal?
A participant that's internal to Genesys Cloud. Like a user, queue, flow, etc. Not a participant that exists outside of Genesys Cloud.
If you transfer to an external system, that's not internal to Genesys Cloud.
I would suggest trying these transfers and observing the conversation data. A real world example in your own system will provide a good point of reference for understanding what's going on since you'll have actual data to look at instead of trying to imagine a theoretical scenario.