Oracle B2C Live Agent Integration

You can integrate DRUID chatbots with Oracle B2C Service Live Chat functionality, for cases when chat clients need to be transferred to helpdesk agents who use the Oracle B2C Agent functionality instead of the DRUID built-in live agent.

This section provides information on how to integrate DRUID chatbots with Oracle Live Agents tool. It does not cover Live Chat specific configuration within the conversational flow design but it provides configuration information related to troubleshooting and sending conversation transcript to Oracle Live Chat Agents.

If you’re using DRUID on premise deployment, the Oracle integration is scalable for high loads.

For technical details about the integration solution between DRUID and Oracle Live Chat, see the specific Oracle documentation.

How the integration works

  1. The users chat with the DRUID ChatBot.
  2. If the chatbot determines that the user wants to talk to a human, it transfers the chat session to Oracle Service Cloud Chat.
  3. Oracle Service Cloud Chat routes the user request to the correct queue based on chat rules.
  4. An agent who is monitoring the queue from an Oracle Agent Console accepts the live chat request and provides support to the user. The agents are not using DRUID native live agent.
  5. When the live chat session ends, the chat session returns to the DRUID chatbot.

Prerequisites

  • In the Oracle B2C Service administration console, create an Oracle B2C Service Account (Staff Account) with the following settings:
  • Interface Access = true
  • Permissions / Administration:
    • Agent Browser User Interface:
      • Account Authentication = true
    • Public SOAP API:
      • Account Authentication = true
      • Session Authentication = true

  • Write down the username and password of the Oracle B2C Service Account, you will need them to integrate with DRUID chatbots.
  • Optionally, you might want to configure the working hours of your Live agent service.
  • In the Oracle B2C Service Web Console, you need to enable chat for the interface you’re using for DRUID chatbot integration.
  • From Oracle B2C Service Configuration Assistant, get the Oracle Interface Customer Portal, you will need it to configure the DRUID chatbot.

  • White list the following:
    • Oracle Interface Customer Portal - the URL you got from the Oracle B2C Service Configuration Assistant.
    • *.rightnowtech.com - that provides a short lived endpoint for messaging transfer.

Configuring the DRUID Chatbot

In the DRUID ChatBot Portal, go to the bot settings and click the LiveChatSettings section header. The section expands and you can configure the chatbot for Oracle B2C Service integration. From the LiveChatProvider field, select Oracle B2C Service, then configure the chatbot for Oracle B2C Service, following the steps:

Step 1. Configure the Connection strings to your Oracle B2C Service interface

To configure the connection strings to your Oracle B2C Service interface, select fill in the fields provided in the table below:

Field Description
Server URL (Agent’s page base URL) Enter the Oracle Interface Customer Portal (the one from the prerequisites). The field is mandatory.
User name and Password The credentials of your Oracle service account (the one from prerequisites). The fields are mandatory.

Step 2. Set Timeouts

If similar configurations in Oracle B2C Live Chat application are intended to be used, then set the DRUID Live Chat timeouts to values higher than those in Oracle application.

Field Description
Live Chat Queue Waiting Timeout Mins The amount of time in minutes that a client could wait until an agent accepts the incoming live chat request. When the timeout is reached, the client goes back in the bot-client conversation.
Live Chat Conversation Idle Timeout Mins The amount of time in minutes after which an engaged live chat conversation is automatically closed due to chat idleness (if both agent and client don’t send any message in their live chat session).

Step 3. Set Special Flows

Special Flow Description
LiveChatClientDisconnectedFlowId DRUID triggers this flow in the client’s conversation, after a live chat conversation ends. You can use it to capture client’s feedback about the live chat experience. This special flow is optional.
LiveChatClientWaitingInQueueFlowId

DRUID triggers this flow in the client’s conversation every minute while the client is in the waiting queue. Use it to show the client’s position in the queue and estimated waiting time. As long as the client responds to any questions prompted from this flow, the client remains in the waiting queue (and the waiting queue timeout will be overridden), unless the flow configuration will take the client off the waiting queue, using the TakeClientOffTheQueue internal action

Important!  The Oracle platform sends periodic waiting queue status information towards the client; therefore, we recommend you not to set up this special flow, as the client will receive messages from both platforms, Oracle Live Chat and DRUID.

Step 4. Set Special Messages

You can set up specific responses triggered by special Live Chat special flows and events in which a bot might reach out. You can either set the list of responses via the Bot Designer or set the flows to provide customized responses via the Flow Designer.

The table below provides you with the list of Live Chat messages you can customize for Oracle Live Agent integration:

Special Message Description
ConnectedToHelpdeskAgent The default message sent to the client when an agent picks up the live conversation with the client. Use placeholder {0} to show the name of the agent, as send by the Oracle platform.
ConversationIdleWarningMessage The default message sent to the client when the live chat conversation becomes idle. The time when this special message is triggered is half of the time set in LiveChatConversationIdleTimeoutMins.
LiveChatAgentDisconnectedFromPool The default message sent to the agent after signing out Live Chat (who is being taken out from the available agents’ queue).
LiveChatAgentDisconnectedSelfConfirmation The default message sent to the client when either the client or the agent disconnects from live chat.
LiveChatAgentError The default message sent to the client when an error occurs that does not end the live chat. Use the {0} placeholder to show the error message sent by Oracle platform.
LiveChatAgentLeft The default message sent to the client when one of the agents engaged in the live session leaves the conversation (when multiple agents are present in on live chat engagement).
LiveChatAgentLeftInformation The default message sent to the client when the (last remaining) agent disconnects from live chat.
LiveChatClientDisconnectedSelfConfirmation The default message sent to the client when either the client or the agent disconnects from live chat; if not likewise set on the special flow LiveChatClientDisconnectedFlowId.
LiveChatExpectedWaitTimeInQueue The default message sent to the client whenever in the waiting queue (on the Oracle platform side). You can change the message to best suite your chatbot profile. Use the placeholders {0} and {1} to display the position in queue, respectively the waiting time.
LiveChatNewLeadAgent The default message sent to the client whenever a new agent becomes lead agent. Use placeholder {0} to show the name of the agent, as send by the Oracle platform.
LiveChatQueueWaitingTimeout The default message sent to clients when the LiveChatQueueWaitingTimeoutMins is reached, if not likewise set on the live-chat-waiting-message-in-the-queue flow.
LiveChatWaitForAvailableAgent The default message sent to clients when in the waiting queue, if not likewise set on the flow.

Step 5. Save the chatbot

Oracle Live Chat Troubleshooting

DRUID Oracle Live Chat Agent integration enables chatbots to place clients in the Oracle Live Chat waiting queue. As there might be situations when DRUID fails placing the client in an Oracle waiting queue or an error occurs during an ongoing conversation, you might want to show friendly messages to the user and easily troubleshoot and handle such cases.

This section provides information on how to handle DRUID and Oracle errors.

Friendly handling errors when connecting clients to Oracle waiting queues

When issues occur while placing a client in the Oracle queue, DRUID offers you a mechanism to handle errors directly in the connect client to helpdesk agent flow, either by displaying a friendly error message or by trying to reconnect.

On your flow that places clients in the Oracle waiting queue, you can add two child steps to the step that calls the internal action ConnectToHelpdeskAgent, as follows:

  • A step for cases when the client is successfully placed in the Oracle waiting queue. Show a message to inform the clients that they've been successfully placed in the waiting queue.
  • To avoid interrupting the flow in case connection errors occur between DRUID and Oracle, add a step with the following condition: @InternalActionResult==false.toString(). This internal action verifies if the client was successfully placed in the Oracle waiting queue.

For troubleshooting purposes, you might want to register the error details provided by Oracle when placing the client in the Oracle waiting queue fails. As the error message and the error code exist in the conversation context, you can save [[HelpdeskClient]].ExceptionMessage and [[HelpdeskClient]].ExceptionCode in the ChatActivityData entity. To do so, in the SetVariables section, add the following two variables:

  • [[ChatActivityData]].LiveChatErrorMessage -> [[HelpdeskClient]].ExceptionMessage
  • [[ChatActivityData]].LiveChatErrorCode -> [[HelpdeskClient]].ExceptionCode

You can see these errors in ChatActivity History.

Friendly handling errors while in an ongoing conversation

If an error occurs while the client is in an ongoing conversation with an Oracle Live Chat agent, the default special message ReleaseErrorMessage will be displayed (bot details, Special Flow).

If you want to know if the error was caused by a DRUID technical issue (from a DRUID Live Chat session) and handle such errors in a more friendly manner, you can create a dedicated exception flow with two steps, as follows:

  • A step for displaying a friendly message if the error occurs due to a Live Chat session error. For DRUID to identify such cases, add the following step condition:
  • [[ChatUser]].ConversationStatus == “ContactCenterError”

  • Generic error message. After you create the exception flow, go to bot details, click the Special Flows section header and from the ExceptionFlowId select the flow you specially designed for cases when technical errors occur during an ongoing notification.

Sending the conversation transcript to Oracle Live Chat Agents

Most contact centers want their helpdesk agents to get the transcript of the conversation the client had with the bot prior to being engaged in a live chat session.

In order to save the conversation transcript and make it available for Oracle Live Chat agents, on the flow that connects the client with the agent, make the following settings:

  1. On the step where you call the internal action ConnectToHelpdeskAgent(Post Actions section), in the Pre Actions section, call the internal action GetConversationTranscript.
  2. Important!   When calling the GetConversationTranscript internal action on the same step where you call ConnectToHelpdeskAgent, make sure to call it in the PreActions section. Calling it in the PostActions section will not send the conversation transcript to agents.
    Hint:   You can call the GetConversationTranscript internal action on a previous step.
  3. On the ConnectToHelpdeskAgent internal action add the following:
  4. Copy
    {
        ”SendConversationTranscript” : true
    }

    Hint:  You can send additional client information (like Custom Fields) to Oracle Live Chat Agents together with the conversation transcript. For more information, see Handling multiple queues and sending Contact Center Parameters.
  5. Save the step.

The conversation transcript is rendered in HTML format in Oracle Live Chat Agent.

Handling multiple queues and sending Contact Center Parameters

Oracle B2C App 21C is dedicated to online shops and chatbots hosted in these online shops collect client information, which can be useful to Oracle Agents when engaged in a live conversation with the client.

The table below lists the Contact Center Parameters bot authors can send to Oracle Live Chat.

Parameter Data Type Description
firstName String The first name of the client.
lastName String The last name of the client.
emailAddress String The email address of the client.
queueId Long

The ID of the queue to which the client will be assigned.

Note:   If you have multiple queues, this is the Id of the Oracle Live Chat queue to which the client will be assigned.
contactId Long The contact ID of the client.
organizationId Long The client organization ID.
productId Long The product ID associated with the client's question.
categoryId Long The category associated with the client's question.
incidentId Long The unique identifier for an existing incident.
question String The question asked by the client.
auxillaryData Map

A map of key-value pairs containing the browser, operating system, and user agent information of the end user. As the chatbot is hosted on a website, the client chat snippet can provide the values for the auxiliary data. The following are the permitted keys:

  • BROWSER - The corresponding value indicates the browser used by the end user.
  • OPERATING_SYSTEM - The corresponding value indicates the operating system used by the end user.
  • USER_AGENT - The corresponding value indicates the user agent of the browser used to make the HTTP request.
    {
	"BROWSER":"[[Entity]].Browser",
	“OPERATING_SYSTEM":"[[Entity]].OS",
	"USER_AGENT":"[[Entity]].UserAgent"
      }
Note:   Make sure that you provide the above keys in capital letters, otherwise you’ll get a bad request error.
customFields String Array

An array of custom fields passed by the client. For example:

"customFields": [
     "inventoryItemId":”[[Inventory]].ItemId”,
     “inventoryOrgId":”[[Inventory]].OrgId”,
     “prodGroupId":”[[Product]].GroupId”,
     "incidentName”:"[[Incident]].Name”,
     "incidentType":”[[Incident]].Type”
]

How to send Contact Center parameters

On the ConnectToHelpdeskAgent internal action, provide the desired parameters inside the ContactCenterParameters object in JSON format.

Note:  The payload must follow a key-value format where both the key and value are strings. When using values from DRUID conversation context (entities, local variables) as parameter values, ensure they are enclosed in double quotes ("") to maintain valid JSON formatting.
Copy
Example - Send Contact Center parameters
{
     "SendConversationTranscript":true,
     "ContactCenterParameters":
            {
                "firstName":"[[Customer]].FirstName",
                "lastName":"@lastName",
                "question":"[[Customer]].Question",
                "queueId":"[[Entity]].QueueId",
                "contactId":"@contactId",
                "organizationId":"",
                "customFields":
                    [
                        "Age":"[[Entity]].Age",
                        "Location":"[[Entity]].Location",
                        "Role":"@role",
                        "IsManager":true,
                        "EmployeeId":”[[Employee]].ID”
                    ],
                "auxiliaryData":
                    {
                        "BROWSER":"[[Entity]].Browser",
                        "OPERATING_SYSTEM":"[[Entity]].OS",
                        "USER_AGENT":"[[Entity]].UserAgent"
                    }
            }
 }