Handling Conversation History while using Open Messaging Integration

Hello everyone,

I am currently working on integrating Genesys Open Messaging API to manage conversation handovers from a third-party chatbot to Genesys agents. We aim to differentiate between messages originating from the chatbot and those from the customer in the agent's view in Genesys. I have two approaches, but I've encountered several challenges and would appreciate any insights or solutions.

  1. First approach (I think it's harder): Trying to register all the conversation in Genesys between user and third-party chatbot when it falls in transfer-to-agent intention.

    • Using POST /api/v2/conversations/messages/agentless API endpoint. I am not able to pass a param to indicate the time of the message. Is there any solution to pass the message time? I understand that "register a message conversation" is not the aim of this endpoint.

    • Using POST /api/v2/conversations/messages/{integrationId}/inbound/open/message API endpoint. This endpoint is registering the conversation messages but I do not know if it is able to register also outbound ones such us the ones from third-party chatbot. There is a param called direction, it can take the Outbound value. Can I setup something in Genesys to sort these messages as chatbot ones?

    • Is there any other API endpoint it would be useful to this task? Maybe not from OpenMessaging...

    • In addition, the limits of API calls is the other drawback that may make there is no future for this approach.

  2. Second approach (I think it's easier): Registering conversation messages in Genesys while they are taking, i.e., including live inbound & outbound to Genesys.

    • Each message reception falls in the queue producing a notification. We are only interested in the notification once the user falls in transfer-to-agent intention during its conversation with the third-party chatbot. Do we have a way to control in Genesys (via API) when notify (or not) the agent in a conversation?

Given these challenges, I wonder if anyone here has successfully implemented a solution to display conversation histories distinctly for bot-generated and customer messages using Open Messaging. Any examples, documentation references, or insights would be greatly appreciated.

Thank you!

I might be confused on the ask here, but you want to "import" those End customer -> 3rd party bot, transcripts. Because at some point the external bot can't answer all of the End customer questions anymore, and you are using Genesys (open messaging) to then route the end customer to a live agent to help? And you would be using the POST /api/v2/conversations/messages/{integrationId}/inbound/open/message endpoint to do that, right? This is because that initial, customer -> bot messages/interaction, is done outside Genesys.
If the above is the correct understanding, then i think you are asking for this feature Genesys Cloud Ideas Portal which I would encourage you to vote on.

Yes, you are right with your understanding.

I am trying to log in Genesys Cloud Ideas Portal but I am not able to... What's should I do? I am using the same credentials than in this foro. This link refers me to something called Okta.

I'd suggest reaching out to your support or sales rep for help with login Genesys Cloud Ideas Portal this page says any customer or partner can use it.

Okay. I've reached out my support rep, however, as I understood, this page is to make requests about new features, right?

Is there any way to achieve my goal? I am talking about the second approach. Can I control when a message (or an event) generates a notification in a conversation and when it doesn't? Or moving a conversation between a silent queue to a normal one, and vice versa?

There is no built in way to handle #2 today, that I am aware of. It would be more of a case of building your own setup in the Architect Flow. Possibly, something like a loop, that waits for a Message.message.body == "{Transfer To Queue}", which you would trigger once your end customer and bot are done and want to transfer the conversation to live agent. The flow would wait for that message and then call a Transfer to ACD actions when it finds it.
This would be similar to your response about "moving a conversation between a silent queue to a normal one". There are also In queue flows available (In-queue flows overview - Genesys Cloud Resource Center) that could help you with something like that. Again, it's going to be building your own setup for it though.

Is there no Genesys API operation to transfer a conversation from one queue to another?

I am reading the following documentation pages to find any clue.

Am I in the right place?

Can you response my question please? Am I in the right way?

This is the api you would want to use there https://developer.genesys.cloud/devapps/api-explorer#post-api-v2-conversations-messages--conversationId--participants--participantId--replace
the participantId would be the acd participant you are transferring from.
body would be something like

{
  "transferType": "Unattended",
  "queueId": "YOURTARGETQUEUEID"
}