Hi Team,
We have a use case where we need to ensure that the client always sees the customer's phone number as the caller ID during any type of transfer (Warm or Cold/Blind transfer).
------------------------------------------------------------------------------
Warm Transfer Requirement
Warm transfer means the agent connects the client first and then hands over the customer via a conference call.
Initial Attempt
Initially, we tried using the Consult SDK from the platform SDK. However, when using consult, the client sees the default Org number instead of the customer's phone number as the caller ID.
Current Implementation (Custom Flow)
Based on recommendations from the Genesys team, we implemented the following approach to ensure the client sees the customer's phone number:
- Conv1: Customer ↔ Agent call.
- While Conv1 is ongoing, we create a new conversation (Conv2) between the Agent and Client using the postConversationsCalls SDK method and pass the customer phone number as caller_id.
- Conv2: The client receives the call with the customer phone number displayed as the caller ID.
- Once the client answers, we merge Conv2 into Conv1 using the patchConversationsCall SDK method.
- This creates a 3-party conference (Customer + Agent + Client).
- The agent then drops off the call after handing over the customer to the client.
------------------------------------------------
Cold (Blind) Transfer Requirement
Cold transfer means the agent transfers the call to the client and disconnects immediately, leaving the customer and client connected in the same call.
Current Implementation
For cold transfers, we are using the postConversationsCallParticipantReplace SDK method.
This approach works as expected, and the client correctly sees the customer's phone number as the caller ID.
------------------------------------------------------------------------------
Issue Encountered:
We have a scenario where:
- The agent first attempts a Warm Transfer using the custom flow described above.
- After some time, the agent disconnects that client and decides to transfer the customer to a different client.
- If the second transfer is a Cold (Blind) Transfer, the client sees the Org default number instead of the customer's phone number.
Technically:
- We had merged two conversations earlier for the warm transfer.
- The blind transfer is then attempted from the same merged conversation.
------------------------------------------------------------------------------
Questions
- How can we ensure that the client always sees the customer's phone number as the caller ID, even after a previous warm transfer/merged conversation?
- Is there a better or recommended approach for implementing Warm Transfer while preserving the customer's caller ID?
- Are there any limitations when performing participantReplace after conversations have been merged?
Any guidance or recommended best practices would be greatly appreciated.
Thanks in advance!
#Architect#PlatformSDK------------------------------
Anil Mallula
------------------------------