Oracle Cloud Infrastructure Documentation

DA as an Oracle Service Cloud Agent

Oracle Service Cloud chat lets your customer representatives (agents) serve your customers in real time through typed conversations. You can turn a digital assistant into an automated agent that participates in Oracle Service Cloud chats in much the same way that human agents do. In cases where the digital assistant can't assist the customer, it can transfer the conversation to a live agent. This automated agent will be available 24 hours a day, 7 days a week, even when all human agents are busy.

With Oracle Service Cloud chat service, you might find that your agents spend the bulk of their time on tasks that an automated agent can easily handle, such as answering a frequently-asked question or tracking a package. To minimize the number of chats that your agents must handle, and to reduce customer wait times, consider first routing your chat sessions to a digital assistant. The digital assistant can deal with the easy tasks, and, for the more complex ones, gather essential details before transferring the chat session to a human agent. Your agents will thus provide more value to your company by only spending their time where they can add the most value.

Note

Oracle Digital Assistant supports digital-assistant-agent integration with Version 19C (and later) of Oracle Service Cloud.

The Digital Assistant as Agent Framework in Action

Here's a high-level overview of how Oracle Service Cloud Chat interacts with a digital-assistant agent:

  1. A customer initiates a chat, which is routed to a Oracle Service Cloud digital-assistant agent. This is a special automated agent that's actually the digital assistant.

  2. The customer converses with the digital assistant instead of a human agent.

  3. If the digital assistant discerns that the customer needs to speak with a human agent, it can transfer the chat to an agent who's assigned to handle such transfers.

How the Digital Assistant as Agent Framework Works

These steps describe how a customer requests a chat, how Oracle Service Cloud determines whether to route the chat request to a digital assistant, and what can happen after the chat request is routed to the digital assistant.

  1. A customer submits a chat request from a Oracle Service Cloud chat launch page

  2. To determine where to route the chat request, Oracle Service Cloud completes these steps:

    1. It uses rule processing to decide which queue to route the chat request to.

    2. It looks for a profile that's associated with that queue.

    3. It determines which agents are associated with the profile, and then routes the chat request to an available agent. It could be a human agent or a digital assistant agent.

    You'll learn how to configure this setup in Task 2: Configure Oracle Service Cloud.

  3. If the agent is a digital-assistant agent, then the conversation is routed to the digital assistant that's associated with the agent's DA-as-Agent channel. Otherwise, it's routed to a human agent. When the conversation is routed to a digital assistant, the subject is passed to the digital assistant as the initial utterance. The other values that the customer entered on the chat launch page are passed in a customFields array as described in Use Contact Info in the Dialog Flow.

    You'll learn how to associate a digital assistant with an agent's DA-as-Agent channel in Task 3: Sign Your Digital Assistant into Oracle Service Cloud.

  4. Oracle Service Cloud opens an Oracle Service Cloud chat page that's connected to the agent or digital assistant and the customer can start chatting with agent.

  5. If the agent is a digital-assistant agent, it can transfer the conversation to a human agent, just like a human agent can transfer a conversation to another human agent. When this happens, Oracle Service Cloud uses rule processing to decide which queue to route the chat request to.

    You'll learn how to transfer the conversation to a human agent in Enable Transfer to a Human Agent. You'll learn how to set up the rules for this transfer in in Task 2: Configure Oracle Service Cloud.

DA as Agent Quick Start

Later, we'll walk you through detailed steps for creating a DA-as-Agent digital assistant. If you'd like to quickly build a DA-as-Agent digital assistant, follow these steps to get it up and running in just a few minutes.

Before you begin, your Oracle Service Cloud system administrator must first set up queues, profiles, and agents as described in Task 2: Configure Oracle Service Cloud. Ask your system administrator for the service cloud host and the digital-assistant agent's user name and password.

To build your DA-as-Agent digital assistant:

  1. Click icon to open the side menu to open the side menu, click Development > Skills, and locate the Automated Agent Conversation skill.

    If this skill doesn't exist, then click Development > Store, click AutomatedAgentAssistant, and then click Pull. The digital assistant and the Automated Agent Conversation skill that it contains are added to your instance.

  2. Click its Options icon, click Clone, and then enter a display name, name, and version number.

  3. Select Open cloned skill afterwards, and then click Clone

    The cloned skill opens.

  4. Click Intents Intents icon and add intents and entities as necessary. Typically, you'll add Answer intents where you supply an answer and at least 5 (and hopefully more than a dozen) utterances that represent how a customer would ask the question.

  5. After you create your intents, click Train, ensure that the Trainer Tm option is selected, and then click Submit.

  6. After training completes, click Try It Out!

    Enter test utterances to verify that the model is resolving to the desired intents. You should enter utterances from the intents as well as utterances that are not in any intents. The dialog shows the confidence level for each matched intent. If the resolution isn't what you intended, consider adding the utterance to the desired intent or revising the intent that was incorrectly matched. To learn more see Intent Training and Testing.

  7. If you added any non-Answer intents, then click Flows Flows icon and add an action to the intent state for each new non-Answer intent. For each action that you add, provide the intent name and the name of the state that the flow should navigate to. For example:

      intent:
        component: "System.Intent"
        properties:
          variable: "iResult"
        transitions:
          actions:
            system.Greeting: "welcome"
            system.Unsatisfactory Response: "transferToAgent"
            system.Request Agent: "transferToAgent"
            unresolvedIntent: "unresolved"
            myNewIntent: "newIntentState"
  8. For each action that you added, add a state to the dialog flow with a matching name (newIntentState in this example). Add additional states to complete the actions flow as necessary.

    Ensure that each action flow ends with state that has a return transition. For example:

      newIntentState:
        component: "System.Output"
        properties:
          text: "Here's some text"
          keepTurn: "true"
        transitions:
          next: "flowEnd"
      flowEnd:
        component: "System.Output"
        properties:
          text: "End of flow"
        transitions:
          return: "flowEnd"
  9. Click Validate to make sure that you didn't introduce any errors in the dialog flow.

  10. (Optional) Click Settings Settings icon, click Digital Assistant, and add one or more utterances for each intent that you added to the skill.

  11. Click Settings Settings icon, click General, and ensure that Training Model is set to Trainer Tm and the Optimize for Answer Intents switch is set to On.

  12. Click Train.

  13. After the training completes, click the down arrow in the title bar, and then click Publish.

    A skill's version must be published before it can be in a digital assistant.

  14. Click Development > Digital Assistants and locate Automated Agent Assistant.

  15. Click its Options icon, and click Clone.

  16. Provide a display name and a name, select Open cloned digital assistant afterwards, and click Clone.

    The digital assistant clone opens and displays the Skills page.

  17. Delete the skill, click Add Skill, and then add your skill.

    You are now ready to sign the digital assistant into Oracle Service Cloud.

  18. Click Development > Channels, and then click DA as Agent

  19. Click + Agent Channel, enter a name and description, and provide the information for the Oracle Service Cloud instance and the digital-assistant agent that you obtained from your Oracle Service Cloud system administrator.

  20. Click Create.

  21. Select your digital assistant clone from the Route To drop-down list, and then switch Interaction Enabled to On.

    Your digital assistant is now signed in to Oracle Service Cloud.

  22. (Optional) You can return to the digital assistant and click Skill Tester Skill Tester icon to test the digital assistant.

    Note that when the dialog flow transitions to a state that transfers from a skill to an agent, the tester stops responding. Click Reset to continue testing.

After you put your digital assistant into production, you'll want to periodically run retrainer reports to see if you need to improve intent resolution for any intents. See Apply the Retrainer to Intents.

Basic Steps for Creating a Digital-Assistant Agent

The DA as Agent channel, along with the System.AgentTransfer component, lets you integrate a digital assistant with Oracle Service Cloud Chat. Here are the basic steps. We'll go into the details later.

  1. Build a DA-as-Agent digital assistant: You build your digital assistant similar to how you build one for a messaging platform. The main difference is that the dialog appears in an Oracle Service Cloud chat console or web page. For the cases where the customer needs to chat with a human, you use the System.AgentTransfer component to transfer the chat to an agent.
  2. Configure Oracle Service Cloud: In Oracle Service Cloud, you need a digital-assistant profile for a digital-assistant agent . You also need a rule to direct the desired chats to the digital-assistant profile and a rule to handle transfers from the digital-assistant agent to a human agent.
  3. Sign your digital assistant into Oracle Service Cloud: In Oracle Digital Assistant, you create a DA as Agent channel that associates your digital assistant with the Oracle Service Cloud digital-assistant agent. When you enable the channel, the digital assistant is signed in as the digital-assistant agent, and is ready to handle customer chat requests.

After you publish your digital assistant, you'll want to periodically run Retrainer reports to see if you need to improve intent resolution for any intents. See Apply the Retrainer to Intents.

Task 1: Build a DA-as-Agent Digital Assistant

Build the skills that you need for the DA-as-agent digital assistant, publish them, and then add them to the digital assistant that will act as an agent in Oracle Service Cloud. Typically, you'll need just one skill, but you can have more.

You can build your digital assistant from scratch, or you can clone Automated Agent Assistant and the Automated Agent Conversation skill to create the base for your agent digital assistant. The Automated Agent Conversation skill includes the agent-transfer dialog flow. It also includes intents that handle the following user scenarios. These intents are seeded with hundreds of example utterances.

  • Starting the conversation with a greeting, such as "Are you there?"

  • Asking for an agent, such as "Can I chat with a human?"

  • Expressing satisfaction with a response, such as "thanks" and "gotcha".

  • Expressing disatisfaction, such as "Did you misundersatnd my question?"

  • Entering the prelude to another question, such as "Also I want to ask".

  • Indicating that they are leaving, such as "Bye for now".

When you build your digital assistant, consider these scenarios:

  • The customer isn't sure what they can do with an automated assistant: Create a help skill or add a help state to an existing skill. Then, do one of the following:

    • Single-Skill Digital Assistant: In the skill, go to Settings > Digital Assistant and set Help State to the name of the skill's help state. If you are using a clone of Automated Agent Assistant, then these settings already exist.

    • Multiple-Skill Digital Assistant: In the digital assistant, go to Settings > Configurations and set these conversation parameters to point to the appropriate state in the help skill.

      • Digital Assistant Custom Help Skill

      • Digital Assistant Custom Help State

  • The customer wants something that a digital assistant isn't set up to handle: Do one of the following:

    • Single-Skill Digital Assistant: In the skill's System.Intent state, add an unresolvedIntent action that transfers to a System.AgentTransfer state. If you are using a clone of Automated Agent Assistant, then the dialog flow does this already.

    • Multiple-Skill Digital Assistant: In the digital assistant, go to Settings > Configurations and set these conversation parameters to point to the state that starts the dialog flow for transferring to an agent.

      • Digital Assistant Custom UnresolvedIntent Skill

      • Digital Assistant Custom UnresolvedIntent State

Build the Skill

Create a skill or clone the Automated Agent Conversation skill. Configure the skill, add intents and entities as required, and make any necessary changes to the dialog flow. Then train and publish the skill.

If the the Automated Agent Conversation skill doesn't exist, then click Development > Store, click AutomatedAgentAssistant, and then click Pull. The digital assistant and the Automated Agent Conversation skill that it contains are added to your instance.

Configure the Skill

Configure the skill for use in a DA-as-Agent digital assistant.

  1. Click icon to open the side menu to open the side menu, and then click Development > Skills.
  2. If you are using a clone of Automated Agent Assistant, locate the Automated Agent Conversation skill, click its Options icon, and select Clone.

    Complete the dialog, select Open cloned skill afterwards, and click Clone.

    Note

    If the Automated Agent Conversation skill doesn't exist, then click Development > Store, click AutomatedAgentAssistant, and then click Pull. The digital assistant and the Automated Agent Conversation skill that it contains are added to your instance.
  3. If you are building the skill from scratch, click New Skill to create the skill.
    Give it a display name that will make sense to someone who is conversing with the digital assistant through Oracle Service Cloud. The digital assistant uses this value in some automated messages and prompts. For example: You are at <skill-display-name>. Here are some things you can do.
  4. In the left navigation bar, click Settings Settings icon, and then click General.
  5. Set the Training Model to Trainer Tm, and then switch Optimize for Answer Intents to On.

    Optimize for Answer Intents must be switched on if your skill has Answer intents.

  6. To optimize for Answer intents, click Configuration, and then set these values:
    • Confidence Threshold: 0.7

    • Confidence Win Margin: 0.1

  7. Click Digital Assistant.
  8. Enter an invocation that will make sense to a customer. This value is used in automated digital-assistant prompts and responses. For example:
    You are at <skill-display-name>. Here are some things you can do:
    <skill-invocation-name-from-DA> <skill-one-sentence-description> 
    1. <skill-example-utterance-set-in-DA>
    2. <skill-example-utterance-set-in-DA>
    ...
  9. Provide utterances that will resolve to intents.

    For an Answer intent, the utterance must match one of the intent's questions or the intent's conversation name. Otherwise, if the user selects the associated number from the list shown in the prior step, it might resolve to an unresolvedIntent.

    As you add intents, remember to update this configuration.

Add Intents and Entities

Add the necessary intents and entities for your skill. When you clone the Automated Agent Conversation skill, your skill is pre-seeded with the basic intents that you need for a DA-as-agent skill:

  • system.Ask Another Question: This Answer intent handles the typical ways that people introduce another question, such as "another question" and "also I want to ask". It outputs "OK. Please go ahead with your question." and restarts the conversation.
  • system.Farewell: This Answer intent handles user-termination utterances, such as "am going now" and "Bye for now". It outputs "Have a good one." and restarts the conversation.
  • system.Greeting: This intent handles user greetings, such as "Are you there" and "Hello there". In the provided dialog flow, its action transitions to the welcome state.
  • system.RequestAgent: This intent contains utterances that reflect how people ask to speak to an agent. In the provided dialog flow, its action transitions to the transferToAgent state.
  • system.Satisfactory Response: This Answer intent handles satisfaction utterances, such as "good to know" and "Great". It outputs "You can ask me another question if there's something else that I can help you with." and restarts the conversation.
  • system.Unsatisfactory Response: This intent handles utterances that indicate the user is not satisfied with the conversation, such as "Give me a better answer" and "I am not being given the help I require". In the provided dialog flow, its action transitions to the unresolved state.
  • unresolvedIntent: This intent aids intent resolution. Add utterances to this intent that represent in-domain phrases that are out of scope for this skill (and for which you want the dialog flow to navigate to the unresolvedIntent state, which transfers the customer to a live agent). For example, if your skill handles questions about ordering appliances, you might want to add phrases about ordering other types of products to the unresolvedIntent intent. See Improve Trainer Tm’s Intent Classification with unresolvedIntent and Intent Design and Training.
Note

The system namespace identifies provided intents. It's a reserved namespace.

If your DA-as-agent skill is a basic question-and-answer skill, then you can use Answer intents to address all your questions and answers. Create a CSV file that contains the intents, the answers, and the different ways that people can ask the question. Then import the file from the Intents page. If your skill is a clone of the Automated Agent Conversation skill then your question-and-answer skill is done. You don't need to make any changes to the dialog flow, with the possible exception of customizing the messages.

Here's an example of a CSV file that has question intents:

query,topIntent,conversationName,answer
what are your hours?,StoreHours,Store Hours,"We are open from 9 to 5, seven days a week."
when are you open?,StoreHours,Store Hours,"We are open from 9 to 5, seven days a week."
when do you close?,StoreHours,Store Hours,"We are open from 9 to 5, seven days a week."
Are you open on Sunday?,StoreHours,Store Hours,"We are open from 9 to 5, seven days a week."
Do you deliver?,Delivery,Delivery Queries,We deliver purchases for amounts over $50.
Will you deliver?,Delivery,Delivery Queries,We deliver purchases for amounts over $50.
Can you deliver to my house?,Delivery,Delivery Queries,We deliver purchases for amounts over $50.
Can you bring it to me?,Delivery,Delivery Queries,We deliver purchases for amounts over $50.

After you create your intents click Train. You can't test or publish a skill if it hasn't been trained.

To test your intents, click Try It Out!, and then enter test utterances to verify that the model is resolving to the desired intents. You should enter utterances from the intents as well as utterances that are not in any intents. The dialog shows the confidence level for each matched intent. If the resolution isn't what you intended, consider adding the utterance to the desired intent or revising the intent that was incorrectly matched. To learn more see Intent Training and Testing.

Use Contact Info in the Dialog Flow

The profile.contactInfo variable contains some chat-request info, such as the customer's question (subject) and the product ID and category ID, if applicable. Also, if the Oracle Service Cloud chat launch page contains any custom fields, then the values that the customer enters into those fields are passed to the digital assistant in the profile.contactInfo.customFields array.

This feature only works with instances of Oracle Digital Assistant that were provisioned on Oracle Cloud Infrastructure (sometimes referred to as the Generation 2 cloud infrastructure).

Here's the structure of the profile.contactInfo:

{
  "question": <string>,
  "productId": <number>,
  "orgId": <number>,
  "categoryId": <number>,
  "browser": <string>,
  "ipAddress": <string>,
  "userAgent": <string>,
  "sessionId": <string>,
  "operatingSystem": <string>,
  "customFields": [
    {
      "name": <string-name-of-custom-field>,
      "id": <ID-of-custom-field>,
      "value": <field-value> 
    },
    ...
  ]
}

Here's some example data:

{
   "question":"Do you deliver",
   "productId":7,
   "customFields":[
      {
         "name":"ODA Text",
         "id":44,
         "value":"N/A"
      
},
      {
         "name":"ODA YN",
         "id":45,
         "value":"1"
      
},
      {
         "name":"ODA Nbr",
         "id":46,
         "value":"1"
      
},
      {
         "name":"ODA Date",
         "id":47,
         "value":"2020,2,17"
      
},
      {
         "name":"ODA Menu",
         "id":48,
         "value":"12"
      
},
      {
         "name":"ODA DateTime",
         "id":49,
         "value":"2004,11,18,17,18"
      
}
   
],
   "browser":"FireFox 68.0",
   "ipAddress":"123.45.67.89",
   "userAgent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0",
   "sessionId":"HI6unnBo",
   "operatingSystem":"Windows 10",
   "orgId":-1,
   "categoryId":-1
}

Here's an example of extracting and displaying contact info:

context:
  variables:
    contactInfo: "map"
  ...
  setContactInfo:
    component: "System.SetVariable"
    properties:
      variable: "contactInfo"
      value: "${profile.contactInfo.value}"
    transitions:
      next: "echoQuestion"
  echoQuestion:
    component: "System.Output"
    properties:
      text: "Your question was: ${contactInfo.value.question}"
      keepTurn: true
    transitions:
      next: "showText"
  showText:
    component: "System.Output"
    properties:
      text: "You entered: <#list contactInfo.value.customFields as p><#if p.name=='VIP Status'>${p.value}</#if></#list>"
      keepTurn: true
    transitions:
      return: done

To learn about customizing the fields that are on the chat launch page, see Overview of Chat on the Customer Portal in Using Service Cloud.

Enable Transfer to a Human Agent

If you are working with a clone of the Automated Agent Conversation skill, then your dialog flow includes the intents and states that handle transferring the conversation to a human agent. If not, and if you want the skill to transfer the chat session to a human agent, such as when the user wants something that the skill isn't built to handle, add a state that uses the System.AgentTransfer component. Then add dialog flow to transition to that state as necessary.

Here's an example of a dialog flow that transfers to an agent when the customer asks to speak to an agent. It also transfers to an agent when the skill can't resolve the customer's intent:

metadata:
  platformVersion: "1.1"
main: true
name: "AutomatedAgentConversation"
context:
  variables:
    iResult: "nlpresult"
    someVariable: "string"
states:
  #
  # Note that even though Answer intents don't have actions, you must have a System.Intent state even if 
  # you have no other types of intents. Answer intents output the answer and restart the conversation.
  #
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        system.Greeting: "welcome"
        system.Unsatisfactory Response: "transferToAgent"
        system.Request Agent: "transferToAgent"
        unresolvedIntent: "unresolved"
  
  #
  # This state tries to transfer the user to another agent when the user explicitly requests for it.
  #
  transferToAgent:
    component: "System.AgentTransfer"
    properties:
      maxWaitSeconds: "300"
      waitingMessage: "I'm transferring you to a human agent. Hold tight."
      rejectedMessage: "I wasn't able to transfer you to a human agent. Please try again later."
      errorMessage: "We're unable to transfer you to a human agent because there was a system error."
    transitions:
      actions:
        accepted: "reset"
        rejected: "handleRejected"
        error: "offerMoreHelp"
      next: "reset"
  
  #
  # This state tries to transfer the user to another agent when the intent is unresolved.
  #
  unresolved:
    component: "System.AgentTransfer"
    properties:
      maxWaitSeconds: "300"
      waitingMessage: "I'm not able to help you with that. Give me a second and I'll transfer you to a human agent who can help. Hold tight."
      rejectedMessage: "I'm not able to help you with that and our experts aren't available now."
      errorMessage: "We're unable to transfer you to a human agent because there was a system error."
    transitions:
      actions:
        accepted: "reset"
        rejected: "handleRejected"
        error: "offerMoreHelp"
      next: "reset"
  
  #
  # This state is called when an agent transfer is rejected. It lets the customer know they can ask for something else.
  # 
  handleRejected:
    component: "System.Output"
    properties:
      text: "Meanwhile, let me know if there's anything else I can help you with."
    transitions:
      return: "handleRejected"
  
  #
  # This state is called when an agent transfer encounters a system error. It lets the customer know they can ask for something else.
  #
  offerMoreHelp:
    component: "System.Output"
    properties:
      text: "You can ask me another question if there's something else that I can help you with."
    transitions:
      return: "offerMoreHelp"
      
  #
  # This state ends the conversation with a return transition for insights purposes, after the user has been transferred to another agent.
  #
  reset:
    component: "System.SetVariable"
    properties:
      variable: "someVariable"
      value: ""
    transitions:
      return: "reset"
      
  #
  # This state sends a greeting to the user. Settings > Digital Assistant > Welcome State and Help State can point to this state.
  #
  welcome:
    component: "System.Output"
    properties:
      text: "Hi, I'm an automated agent. Ask me your question and I'll try to get an answer for you. If I can't, I'll transfer you to someone who can."
    transitions:
      return: "welcome"

See System.AgentTransfer for details about the properties and actions.

Dialog-Flow Limitations for Oracle Service Cloud Chat

The customer converses with the DA-as-Agent digital assistant through an Oracle Service Cloud chat window. The responses that the DA as Agent can send to Oracle Service Cloud chat windows have these restrictions:

  • You can use text messages only.

  • The channel doesn't support postback buttons.

  • The channel doesn't support attachments.

  • The channel doesn't support location messages.

  • For the System.List component, the list is autonumbered regardless of the value of the autoNumberPostbackActions property.

  • For the System.CommonResponse component, the messages for card items display as autonumbered text.

Train and Publish the Skill

After you build the skill, you must train and publish it so that you can use it in the DA-as-agent digital assistant.

  1. Go to Settings > General, ensure that the training model is Trainer Tm, and ensure that Optimize for Answer Intents is switched to On.
    Optimize for Answer Intents must be switched on if your skill has Q&A intents.
  2. Click Train.
    You can't publish a skill if it hasn't been trained.
  3. In the title bar, click the down arrow and select Publish.
You can now use the skill in the DA-as-agent digital assistant.

Configure the DA-as-Agent Digital Assistant

To create a digital assistant that acts as an Oracle Service Cloud agent:

  1. Click icon to open the side menu to open the side menu, and then click Development > Digital Assistants.

  2. Either clone Automated Agent Assistant by clicking its Options icon and clicking Clone, or click New Digital Assistant to build one from scratch.

    If you clone Automated Agent Assistant, then much of the work is already done for you.

  3. Open the digital assistant.

    By default, the Skills Skills icon page should be displayed.

  4. If you are using a clone of Automated Agent Assistant, delete the existing skill, click + Add Skill, select the skill that you created in the previous steps, and then click Close.

  5. If you are building the digital assistant from scratch, click + Add Skill, select the skill that you built for this digital assistant, and then click Close.

  6. Click Settings Settings icon, and then click General.

  7. Set the digital assistant's Training Model to Trainer Tm, and then switch Optimize for Answer Intents to On.

    Optimize for Answer Intents must be switched on when the digital assistant's skills have Answer intents.

  8. The following Automated Agent Assistant configurations have been changed to the values shown to optimize the digital assistant for a single-skill DA-as-agent: digital assistant. If you aren't using a clone of Automated Agent Assistant, then you might want to make these changes to your digital assistant in the Settings > Configurations tab.

    • Flow Information in Selection: ${system.routingToIntent}

    • Nothing to Exit Prompt: Goodbye. Let me know if there's anything else I can help you with.

  9. (Optional) If the digital assistant has more than one skill, then you can customize the digital-assistant behavior when user utterances match the digital assistant's help and unresolvedIntent intents. Go to the Configuration tab on the Settings page, and then specify the custom skill and state to navigate to for help or unresolvedIntent (or both). See Specify States for the help and unresolvedIntent System Intents.

  10. Click Train to train the digital assistant.
  11. (Optional) To test the digital assistant, click Skill Tester Skill Tester icon.

    Note that when the dialog flow transitions to a state that transfers from a skill to an agent, the tester stops responding. Click Reset to continue testing.

After you put your digital assistant into production, you'll want to periodically run Retrainer reports to see if you need to improve intent resolution for any intents. See Apply the Retrainer to Intents.

Task 2: Configure Oracle Service Cloud

To configure Oracle Service Cloud for a digital-assistant agent, an administrator must configure a profile, a queue, an agent, and some rules.

The administrator can set up an Oracle Service Cloud queue, profile, and chat rules to route the request to a digital-assistant agent similar to the way routing is set up for a virtual assistant, which is described at Route Chats to a Virtual Assistant in Using Service Cloud.

The high-level steps to complete the configuration are:

  1. Configure a Queue, Profile, and Agent for the Digital-Assistant Agent
  2. Add Chat Rules
  3. (Optional) Pass the Initial Utterance to the Digital Assistant.

After you configure Oracle Service Cloud, you associate the digital-assistant agent with the DA-as-Agent digital assistant by creating a channel as described in Task 3: Sign Your Digital Assistant into Oracle Service Cloud.

Configure a Queue, Profile, and Agent for the Digital-Assistant Agent

You'll need a dedicated queue, profile, and agent to enable a digital assistant to sign into Oracle Service Cloud as an agent. Ask your Oracle Service Cloud administrator to complete the following configurations in the Service Console.

Create a Digital-Assistant Queue

When used with chat rules and profiles, queues enable automatic sorting of incoming chats. Create a queue that you'll use to route chat sessions to the digital-assistant agent that's associated with the digital-assistant profile.

  1. In the agent desktop console, click the Navigation Navigation icon icon, and then select the first Configuration menu item.


    Configuration selected from menu.

    The Configuration menu appears in the Navigation pane.

  2. Expand Application Appearance, and then double-click Customizable Menus.
  3. Expand System Menus, and then select Chat Queues.
  4. On the Home tab, click New.
  5. Click the New Chat Queue label and change its name, such as Digital Assistant Agent.


    Description of da-agent-queue.png follows

  6. On the Home tab, click Save & Close.
Create a Digital-Assistant Profile

You use profiles to manage account permissions and to assign agents to queues. Create a dedicated profile for the digital-assistant agent.

  1. In the Configuration menu, expand Staff Management, double-click Profiles, and then click New.
  2. Name the profile. For example: Digital Assistant.
  3. In the Interfaces section, enable Access for the interface and add a navigation set.
  4. In the Home tab, click Permissions.
  5. Click the Service tab.
  6. In the Chat Agent Permissions section, select these options:
    • Chat

    • Conference/Transfer to Other Groups

  7. Ensure that the Pull Chat option is not selected.
  8. Ensure that the Pull Policy is set to First Due.
  9. In the Chat Queues section, select the digital-assistant queue (Digital Assistant Agent in our example).
  10. Click Add Add icon.

    The queue should appear in the queue list.


    Description of da-agent-profile.png follows

  11. In the Chat Agent Statuses section, ensure that Available - Unrestricted is assigned.
  12. Select Available - Unrestricted as the default status.
    This insures that when the digital assistant signs in as a digital-assistant agent, it will receive incoming requests automatically.
  13. In the Home tab, click Save and Close.
Assign the Digital-Assistant Agent to the Digital-Assistant Profile

You'll need to create an account for the digital-assistant agent, and associate it with the digital-assistant profile. This way, chat sessions that are assigned to the digital-assistant-agent queue will be sent to the digital-assistant agent.

You'll need a separate digital-assistant agent for each DA-as-Agent digital assistant that you build.

  1. From the Configuration menu, double-click Staff Accounts by Profile.
  2. In the Home tab, click New.
  3. In the Account Details page, enter these values:
    • User Name: For example, digitalassistant.
    • First Name: For example, Chat.
    • Last Name: For example, Bot.
    • Display Name: For example, Chat Bot.
  4. Click Change Password and provide a password.

    For security, always provide a password for the digital-assistant agent.

  5. From the Profile search list, select the profile that you configured in Create a Digital-Assistant Profile.


    Description of da-digitalassistantagent.png follows

  6. Select a group, and set the default currency and country.
  7. Save your changes.

Add Chat Rules

You'll need a chat rule to define when to assign a chat session to the digital assistant. You'll also need a state to handle transfers from the digital assistant to a live agent.

Here are the typical steps for adding the chat rules. You can learn more about rules at Business Rules in Using Service Cloud.
  1. Expand Site Configuration and double-click Rules.
  2. In the Home tab, click Chat, and then click Edit.
  3. Create a state for the hand off to a live agent.
    1. Right-click States and click New State.
    2. Name the state. For example: 03. Hand Off to Live Agent.
    3. Click Save.
  4. Add a rule to the state to assign the chat session to a queue.

    These substeps show a very simple configuration. For your instance, you must carefully consider both the if conditions, and the then actions.

    1. Right-click the state that you just added and click New Rule.
    2. Name the rule. For example: Hand Off to Live Agent.
    3. In this example, there are no if conditions. You might need to add conditions as appropriate for your business needs.
    4. Click Add Action - Then and then click Chat Queue ID.
    5. From the Assign Chat Queue drop-down list, select the queue that the conversation should be sent to (in this example, the default queue).


      Description of da-escalation-rule.png follows

    6. Click Save.
  5. Add a rule to the initial state to route chat sessions to the digital-assistant-agent queue.
    1. Right-click the initial state (the one that is shown in bold text), and click New Rule.
    2. Name the rule. For example: Digital Assistant Agent.
    3. Add the desired conditions.
    4. Click Add Action - Then and add an action to assign the chat session to the digital assistant queue (Digital Assistant Agent in our example).
    5. Click Add Action - Then and add an action to transition to the state that you created for the hand off (03. Hand Off to Live Agent in our example) and then stop.


      Description of da-agent-rule.png follows

    6. (Optional) Add an Else action.
    7. Drag the rule to a position in the initial state such it's evaluated before any rules that might route the qualifying chat sessions to some other queue. For example, ensure that it is evaluated before a state that unconditionally routes chat sessions to the default queue.
  6. Compile and activate your changes.

Pass the Initial Utterance to the Digital Assistant

To prevent the customer from having to state their need twice, add a Subject field to the chat launch page. If a customer enters a value in that field, then, when the conversation is transferred to the digital assistant, the digital assistant tries to resolve the intent from the subject field value.

To learn about customizing fields on the chat launch page, see Overview of Chat on the Customer Portal in Using Service Cloud.

Task 3: Sign Your Digital Assistant into Oracle Service Cloud

To sign a digital assistant into Oracle Service Cloud as a digital-assistant agent, create a DA as Agent channel and then enable it. This task also identifies the digital assistant to route the conversation to.

Each DA as Agent channel must have a unique user name. That is, you can't use the same digital-assistant agent for multiple channels. If multiple channels have the same user name, only one channel will work.

  1. In Oracle Digital Assistant, click Icon to open the side menu to open the side menu, select Development, and then select Channels.
  2. Click DA as Agent, and then click + Agent Channel.
  3. Enter a name and an optional description for this channel.
  4. Provide the Oracle Service Cloud host.

    If you have access to Oracle Service Cloud, you can derive these values from the URL that you use to launch the Agent Browser User Interface or the chat launch page. For example, if the URL is https://sitename.exampledomain.com/app/chat/chat_launch, then the host is sitename.exampledomain.com.

  5. Enter the user name and password for the digital-assistant agent that was created in Oracle Service Cloud as described in Assign the Digital-Assistant Agent to the Digital-Assistant Profile. For example: digitalassistant.

    You can't use the same user name for more than one channel. If multiple channels have the same user name, only one channel will work.

  6. Select the digital assistant to route to.


    Description of da-agent-channelv2.png follows

  7. Switch Interaction Enabled to On.

    The channel establishes a connection with Oracle Service Cloud and the digital-assistant agent is signed in.

    You should wait at least one minute for the channel connection and sign-on to complete.

    Note

    Don't re-toggle the switch until at least one minute has passed. If you enable the channel and then disable it before the connection is established and sign-on completes (or vice versa), then you might break the connection and the digital assistant won't be able to get or send responses. To resolve a broken connection, delete the channel and then re-create it.

Tip:

If a channel isn't working, click Error Reports to see if there are any reported errors. Note that if you see a CONFLICT error or an ACCESS_DENIED error, you can typically resolve this problem by switching Interaction Enabled to Off, and then switching it to On. Before you switch it back on, make sure that there are no other channels that have the same user name for the same host.