diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/attributes.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/attributes.md index 6aa3c617e6..44ff1c3f5c 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/attributes.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/attributes.md @@ -32,7 +32,7 @@ Conversation context attributes are those attributes of a conversation, such as * conversation.consumerId * conversation.groupId - +The Conversation page where you can enable conversation attributes and copy conversation context attributes #### Structured Data Entities (SDEs) @@ -66,7 +66,7 @@ Personal info: * sde.visitorinfo.personalinfo.language * sde.visitorinfo.personalinfo.company - +The Structured Data Entities page where you can enable the CCS to store SDE values and more ### Custom attributes @@ -81,12 +81,12 @@ Static variables are useful for storing constant data or lists that can be used 1. Log in to Conversation Orchestrator using your Conversational Cloud credentials, and navigate to **Conversation Context Service → Custom**. 2. Click the **Add New** button, and select "static." - + Selecting ‘static’ as the type for a new attribute 3. Enter the name and the value of the new variable in the text input area. 4. Click **Save**. - + An example of a saved static variable {: .important} When creating *custom* attributes in the Context Session Service, ensure that you are following naming conventions that avoid spaces in the name (use camel case, snake case, pascal case, etc.). While having an attribute name that contains spaces will not trigger an error message, you will be unable to properly access these attribute’s values from within the policies you will be creating. @@ -104,10 +104,10 @@ Once you have created a function, you can now use that as an attribute in the Co 1. Log in to Conversation Orchestrator using your Conversational Cloud credentials, and navigate to **Conversation Context Service → Custom**. 2. Click the **Add New** button, and select "function." - + Selecting ‘function’ as the type for a new attribute 3. Select the FaaS function using the user credentials that you created. - + Selecting a FaaS function from the Function list 4. Click **Save**. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/getting-started.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/getting-started.md index f22abd672a..4391137dfe 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/getting-started.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/getting-started.md @@ -21,7 +21,7 @@ Everything that is stored in the Conversation Context Service (CCS) consists of *Session properties* are those where the property belongs to one namespace and one session, and *namespace properties* are those where the property belongs to one namespace and does not belong to any session. - +A diagram illustrating namespace and sessions properties, both within a namespace Since properties cannot be moved to other namespaces or sessions, if you want to change the affiliation, you must delete the property and create a new one. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/overview.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/overview.md index ade8f02805..bb8ed14edd 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/overview.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/ConversationContextService/overview.md @@ -46,15 +46,15 @@ CCS attributes can be used in a variety of ways to enhance the conversational ex * **Power contextual continuity between bots** - In this example, the intent and email is being saved into the CCS by one bot and is being retrieved by another bot to continue the conversation. - + An example conversation with a consumer that illustrates use of the CCS to maintain contextual info as the conversation is transferred from one bot to another * **Perform context-based dynamic routing at scale** - In this example, a concierge bot saves the intent into the CCS. The CCS links to an external CRM to get customer tier information. A Dynamic Routing policy then makes use of the intent and tier information to power a routing decision. - + An example conversation with a consumer that illustrates use of the CCS to perform context-based, dynamic routing at scale * **Perform human-bot tango** - In this example, bots continue to build context about the consumer and the context information can be exposed to human agents through an agent-facing widget. - + An example conversation with a consumer that illustrates use of the CCS to maintain contextual info as the conversation is transferred from bot to human agent ### How to use the Conversation Context Service diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/advanced-routing.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/advanced-routing.md index f28ad094ef..ba79733806 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/advanced-routing.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/advanced-routing.md @@ -31,11 +31,11 @@ The Expression Editor is only available to brands that are upgraded to Conversat **Launch the Expression Editor**: Open Conversion Orchestrator, and select **Manage Policies** under the Dynamic Routing module. To view the policy editor, select an existing policy, or click **Add Policy**. Switch to the **Write an expression** tab to view the expression-based editor. - +The Write an expression tab in the expression editor **Write expressions**: You can write expressions using logical operators, any SDEs, context variables or conversation attributes. - +An example expression The following operations are possible: @@ -67,7 +67,7 @@ namespace.varP == (namespace.varX || namespace.varY) **Use custom variables and LivePerson Functions**: Add custom variables and LivePerson Functions to extend your use cases. - +An example expression using custom variables **Remember the following when writing expressions** @@ -85,11 +85,11 @@ namespace.varP == (namespace.varX || namespace.varY) Use predefined templates to create date-based or time-based routing policies. - +Using predefine templates to create a routing policy Add the required template to the editor. - +The template added to the policy Update the template to create your rule. @@ -135,7 +135,7 @@ Combine date and time to create policies: | --- | --- | | VIP customers during work hours on weekdays in the month of September in New York | orchestrator.phoneNumber in custom.VipList
and isDateRange('09/01/21', '09/30/21', ‘America/New_York')
and isTimeRange('09:00:00', '18:00:00', '‘America/New_York', ['MON','TUE','WED', 'THU','FRI'] )) | - +An example expression using date and time with other attributes ##### Use the right formats for days and time zones @@ -147,13 +147,13 @@ Combine date and time to create policies: Use [policy logs](conversation-orchestrator-dynamic-routing-policy-logs-for-v2.html) to debug your policies. - +Using the policy logs to debug policies #### Nesting multiple expressions for more complex conditions Write nested statements to combine multiple logical conditions to arrive at routing decisions. Enclose every block with brackets “( )”. - +An example of a complex condition that nests multiple expressions ### Combine other products to power more complex routing use cases @@ -167,7 +167,7 @@ Routing to a different skill if the primary skill is experiencing a high load. T **Solution:** This can be solved using a combination of [Dynamic Routing](conversation-orchestrator-dynamic-routing-overview.html), [Context Service](conversation-orchestrator-conversation-context-service-overview.html), [LivePerson Functions](liveperson-functions-overview.html) and the [Queue Health API](operational-realtime-api-methods-queue-health.html). A LivePerson Function can be configured to run every 2-5 mins and update the “average wait time” for every skill into the Context service. Dynamic routing policies can then be configured to check average wait time for every skill and fall over to a different skill as appropriate. - +The architectural diagram illustrating the flow between the components involved {: important} The above solution can be deployed relatively quickly. However, it does require a few hours of coding effort for the LivePerson function. This method cannot be used to check queue health in real time for every conversation, but we believe that checking the queue every 2-5 mins will help solve this specific use case. Most conversations live much beyond 2-5 mins and queue stats are unlikely to change significantly during this time frame. @@ -182,7 +182,7 @@ This can be solved using [SDE](engagement-attributes-types-of-engagement-attribu While SDEs are captured directly for conversations originating from web-engagements, they have to be manually set when conversations originate on other channels such as whatsapp or mobile apps. For this use case a routing bot will check for the customers’s VIP status through a CRM (or relevant application) and then update the SDE value for VIP customers. LivePersons Queue prioritization updates queue priority in real time whenever the SDE is updated. Next SDE based routing policies can be configured on Dynamic Routing to route VIP customers to the appropriate skill. - +The architectural diagram illustrating the flow between the components involved #### Other scenarios diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/creating-routing-policies.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/creating-routing-policies.md index afd3665ce5..b2525c1e5c 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/creating-routing-policies.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/creating-routing-policies.md @@ -21,11 +21,11 @@ Actions can be configured to transfer to skills or agents, or even to send messa To start creating policies, launch Conversation Orchestrator either from the Dynamic Routing interaction or from the applications menu in the lower-left corner in Conversation cloud. Then navigate to **Manage Policies**. Here you can see the list of existing policies. By clicking on the policies, you can see the details of conditions and actions. - +The Manage Policies page that lists all existing policies To create a new policy, click **Add Policy**. Once you do so, you are prompted to enter a name and add conditions and actions. Please ensure the name is descriptive of the functionality so you can easily identify this policy later. - +Enter the info for a new policy ### Try your first routing policy with the Dynamic Routing bot @@ -37,35 +37,35 @@ The Dynamic Routing bot includes a very simple use case where a consumer can be For the purpose of this example, this has already been done for you. The bot includes a flow where the end consumer is asked for a phone number. - +A dialog flow that asks the consumer for theire phone number ##### Step 2: Capture user input into the Conversation Context Service For the purpose of this example, this has already been done for you. Click the interaction “COLLECT_PHONE_NUMBER,” and observe the code under **Process User Response**. - +The code that captures the consumer's phone number In this example, the user input is captured into the Conversation Context Service in a variable “phoneNumber” in a default namespace called “orchestrator”. To learn about these functions, please first learn about the [Conversation Context Service](conversation-orchestrator-conversation-context-service-overview.html) and the [Conversation Context Service scripting functions](conversation-builder-scripting-functions-manage-the-conversation-context-service.html). The default namespace is configured in **Global Functions**, and you are free to change it to whatever name you want. - +The Global Functions page where you can change the name of the default namespace #### Step 3: Create your policy In the Dynamic Routing interaction, click **Manage routing policies** to go to the Policy Management interface. - +The Manage routing policies option on the Dynamic Routing interaction Then click **Add Policy** to create your first policy. - +The Add Policy button #### Step 4: Add the condition Choose your attribute, the operator and values. - +Defining the conditions and actions in the policy Here you type the variable name “orchestrator.phoneNumber”, choose “IN” as the operator, and check to see if it's in a “list” containing values 1111, 2222, 3333 and 4444. @@ -76,11 +76,11 @@ Here you type the variable name “orchestrator.phoneNumber”, choose “IN” Here you pick SeattleEmployeeSkill from the available list of skills. Make sure to have the skill mapped to a human-user and have that user log in to see if routing works. For this example, assume that “SeattleEmployeeSkill” has one single human user “Agent Bob.” - +Selecting ‘SeattleEmployeeSkill’ from the list of available skills #### Step 6: Save your policy and enable it - +The enabled new policy #### Step 7: Deploy and test @@ -90,7 +90,7 @@ Alternatively, to test, you can deploy the bot, and connect it to a campaign tha Follow these steps once you have configured your testing setup. - +The conversation flow to follow Start by saying “Hi”. @@ -102,13 +102,13 @@ The conversation will be routed to the skill SeattleEmployeeSkill. A specific ag While defining conditions, you need to select an attribute and compare it against a value. - +An example condition In this example, the attribute “sde.visitorinfo.customerinfo.role” is being compared to the string “admin”. You can add multiple conditions per policy by clicking **+ Add Condition**. Every subsequent condition gets appended as an And. - +Multiple conditions added in a single policy Attributes can come from various sources. Some, like SDEs or conversation attributes, are directly available whereas dynamic data from bots, agents or external systems can also be leveraged by using the Conversation Context Service. @@ -133,7 +133,7 @@ All the above attributes are directly available, and you just need to configure The example below shows a policy that transfer to a skill if Minutes Since Previous Message > 2. - +The condition and action defined in the policy #### Getting dynamic data using the Conversation Context Service @@ -145,11 +145,11 @@ When collecting data from routing bots within Conversation Cloud, use the JavaSc The example below shows how to set a property “intentThreshold” within a namespace “airlineTicketingBot”. Variables need to be set into the Conversation Context Service prior to the dynamic routing step. This could be in the Pre-process, Post-process, or Process User Response code sections of any interaction within the bot. - +The code to set a property named ‘intentThreshold’ within a namespace named ‘airlineTicketingBot’ The property can be used in any routing policy using the standard naming convention. - +Using the intentThreshold property in a condition in a policy ##### Collecting data from bots or automations outside of Conversational Cloud @@ -179,17 +179,17 @@ PATCH /v2/context/document/create } ``` - +The example policy #### Using custom attributes You can add custom attributes from the Conversation Context Service interface in Conversational Cloud as shown below. - +Adding custom attributes These custom attributes can be static or contain a [LivePerson function](liveperson-functions-overview.html). - +The Type field showing two options named ‘static’ and ‘function’ **Static custom attributes** @@ -198,12 +198,12 @@ You can create attributes of type setting, Boolean, list, JSON and number. Below **Step 1**: Define the static custom attribute. The custom attribute here contains a list of phone numbers - +Adding a static custom attribute **Step 2**: Use the static custom attribute in your policy. Here we are checking if the user input is in the list. - +Using the static custom attribute in a policy **LivePerson Functions-based custom attributes** @@ -212,7 +212,7 @@ Here we are checking if the user input is in the list. **Step 1**: Define the LivePerson Functions-based custom attribute. The custom attribute here retrieves the VIP status from a FAAS function that performs some custom logic. - +Defining a function-based custom attribute **Step 2**: Use the LP Functions-based custom attribute in your policy. @@ -222,7 +222,7 @@ Please familiarize yourself with [LivePerson Functions](liveperson-functions-ove Using the LivePerson Functions-based custom attribute in a policy: - +Using the function-based custom attribute in a policy Functions can be used to integrate with external data sources, i.e., getting data from external systems or even calling external APIs. @@ -233,7 +233,7 @@ Keep in mind that this function is invoked every time the call to Dynamic Routin When adding conditions, there are several conditional operators that can be used for comparisons (<, >, = etc) and inclusions (IN, Contains). - +The list of operators you can use when adding a condition The chosen operator automatically determines the data type of the value. For example, (<) operator expects a number or attribute, Is in expect lists and Contains expects a string. @@ -251,16 +251,16 @@ Policies can trigger the following actions: When choosing to transfer to a skill/agent you can pick from the available list of skills/agents. - +Selecting from the list of available skills Or, dynamically pass the skill id/agent id. Set the drop down in the middle to “attribute” and pick from the available list of attributes. - +Dynamically passing a skill ID or agent ID When intending to send a message, just type the required text in the input box. Alternatively, you can also send attributes. **Note:** At this time, you cannot directly send rich messages from Dynamic Routing. If you want to send rich messages, please transfer to a bot that can do this. - +Sending a message This message is sent on behalf of the Routing bot. Once a message is sent, the conversation is transferred to the fallback skill that is configured. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started-legacy.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started-legacy.md index b071611322..18b96ee947 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started-legacy.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started-legacy.md @@ -30,15 +30,15 @@ Each of these options is further discussed in this topic. 1. Navigate to **Bot Accounts** within Conversational Cloud. - + The Bot Accounts option on the dashboard of Conversational AI applications 2. Select your organization. - + The list of organizations for an account within Bot Accounts 3. Toggle to **Enable Context API**, and ensure you select to **Use Conversational Cloud Site ID**, entering your organization’s account number. - + The Enable Context API setting with its toggle turned on #### Choose your routing bot @@ -63,7 +63,7 @@ This example starts with a simple implementation, using static attributes (hard- In this tutorial, we’ll use Conversation Builder's [Conversation Orchestrator bot template](conversation-builder-bot-templates-conversation-orchestrator.html) that is pre-wired with Conversation Orchestrator and the Conversation Context Service. - +An example bot created using the Conversation Orchestrator bot template, with the Welcome dialog shown in the Dialog Editor A Conversation Builder bot will handle the incoming consumer message, and then use Conversation Orchestrator routing policies to route the customer to a VIP agent or regular customer agent. Setting up the Conversation Builder bot in the beginning will allow you to test the scenarios end-to-end. @@ -71,12 +71,12 @@ A Conversation Builder bot will handle the incoming consumer message, and then u In Conversational Cloud, navigate to **Conversation Builder**, and click **New Bot** in the upper-right corner. - - +The Conversation Builder option on the dashboard of Conversational AI applications +The New Bot button Choose the **Conversation Orchestrator** bot template from the bot template menu. - +The Conversation Orchestrator bot template option The template is pre-wired with the following: @@ -100,7 +100,7 @@ Open the bot. On the top navigation, click **Global Functions**, and edit the following fields: - +The Global Functions page with a list of fields to edit * **mavenNamespace**: The Conversation Orchestrator namespace is used for organizing a set of attributes you might want to use in a policy. See [Conversation Context Service](conversation-orchestrator-conversation-context-service-overview.html) for more information on how this works. Please enter “myNamespace” here. You will use this name in a routing policy. * **fallbackSkillName**, **fallbackSkillId**, and **fallbackMessage**: Set up an optional fallback skill by editing these values. This will be the fallback skill the conversation will be routed to in case there is some failure in Dynamic Routing logic. @@ -131,8 +131,8 @@ In this example, you will create and use static attributes. To check if a custom 1. Open **Conversation Orchestrator** in the Conversational Cloud applications menu, and navigate to **Conversation Context Service → Custom**. - - + The Conversation Orchestrator option in the list of applications + The Custom page where you can manage custom attributes 2. Click **Add New**. 1. Select the type “static.” @@ -140,8 +140,8 @@ In this example, you will create and use static attributes. To check if a custom 3. For **Value**, select the list type, and then copy these values: +155555501, +155555502 and +155555503. 4. Click **Save**. - - + Adding a new static attribute named ‘vipPhoneNumberList’ + The list of values in the vipPhoneNumberList attribute 3. Click **Add New**. 1. Select the type “static.” @@ -165,7 +165,7 @@ In this example, you will create and use static attributes. To check if a custom 1. Navigate to **Dynamic Routing → Intent and Context Policies** using the side navigation panel, and click **Add Policy**. - + The Manage Policies section that has an Add Policy button 2. Edit the name to "VipRule_Static." 3. In **Conditions**, select "custom.vipCustomer" from the dropdown. @@ -179,7 +179,7 @@ In this example, you will create and use static attributes. To check if a custom 7. Click **Save** to save the policy. 8. Add a second policy for routing regular customers by clicking **Add Policy**. - + A second example of a policy 9. Edit the name to "RegularCustomerRule_Static." 10. In **Conditions**, select “custom.regularCustomer” from the dropdown. @@ -198,7 +198,7 @@ You will use a standard web entry point to initiate a conversation with the Conv 1. In the policy list in Conversation Orchestrator, click the toggle switch to enable the VipRule_Static policy. - + The VipRule_Static policy with its enabled toggle on and the RegularCustomerRule_Static policy with its toggle off 2. Start a new web messaging conversation using the account ID. 3. Log in to Conversational Cloud using a VIP agent account. @@ -207,13 +207,13 @@ You will use a standard web entry point to initiate a conversation with the Conv This should trigger the VIP policy and the conversation should be transferred to a VIP skill.If you are logged in to Conversational Cloud as a VIP Agent, you will now get a ring. - + The conversation info that's seen by the agent **Test the regular customer policy** 1. In the policy list in Conversation Orchestrator, click on the toggle switch and **disable** the VipRule_Static policy. **Enable** RegularCustomerRule_Static. - + The VipRule_Static policy with its enabled toggle off and the RegularCustomerRule_Static policy with its toggle on 2. Log out of Conversational Cloud, and then log in back using a Regular Agent account. 3. Close the previous conversation, and start a new one. @@ -221,7 +221,7 @@ You will use a standard web entry point to initiate a conversation with the Conv This should now trigger the Regular Customer policy and the conversation should be transferred to a Regular skill. If you are logged into Conversational Cloud as a Regular Agent, you will now get a ring. - + The conversation info that's seen by the agent #### Create a simple policy using Conversation Context Service attributes @@ -236,22 +236,22 @@ You will be using the [Conversation Context Service](conversation-orchestrator-c 1. Disable all policies you have previously created by switching off the toggle switches in Conversation Orchestrator. 2. Create a new VIP customer policy by clicking **Add Policy** and entering the following details. Note some must be entered manually since they will not populate on the dropdown menus. - + Creating a new policy named ‘VipRule_Session’ This policy is similar to the one we created using static variables, but instead of getting the phone number from a static attribute, you are retrieving this value from the namespace session attribute (myNamespace.phoneNumber). You created the namespace in the Global Functions during “Set Up the Orchestrator Bot.” The phoneNumber variable is captured on the question_phonenumber node in RULE_1. - - + An example question with a custom rule added + The configuration of the custom rule that captures the phoneNumber variable The phoneNumber variable is then saved to the Namespace in the pre-process code on api_integration_4 (lines 5 and 6). - + The Pre-Process Code that saves the variable to the namespace 3. Create a new regular customer policy by clicking **Add Policy**. - + Creating a new policy named ‘RegularCustomerRule_Session’ 4. Enable both policies by clicking on the toggle switches. @@ -283,7 +283,7 @@ Creating and deploying a [LivePerson function](liveperson-functions-overview.htm With the function created and deployed, now add a custom attribute of type “function” in Conversation Orchestrator. - +Adding a custom attribute in the Manage custom attributes section Add parameters to this function by selecting “attribute”, and then typing myNamespace.phoneNumber. Note that “myNamespace” is the name you used in the Conversation Builder template setup step in the beginning. @@ -291,11 +291,11 @@ Add parameters to this function by selecting “attribute”, and then typing my 1. Create the VIP policy using the FaaS attribute you created in the previous step as shown below, and click **Save**. - + Creating the VIP policy that uses the LivePerson function 2. Create the regular customer policy as shown below, and click **Save**. - + Creating the regular customer policy 3. **Disable** the previous policies, and **enable** the ones you just created. 4. You can now test the policies in the same way that you tested previously. @@ -310,8 +310,8 @@ Conversation Builder offers [scripting functions for managing the Conversation C Select the **Custom Code** option on the Phone Number Question, and navigate to **Process User Response**. - - +The Custom Code icon in the upper-right corner of the interaction +The Process User Response code panel in the interaction Edit the code to add more contextual information. The following shows how the phone number is added. @@ -329,7 +329,7 @@ botContext.setContextDataForConversation(mavenNamespace, "intent", intent); You can now use this in a policy by adding a condition that uses the intent, as shown below. In the following example, the namespace is “myNamespace”. - +Adding a condition that uses the intent ### Using your own routing bot @@ -360,7 +360,7 @@ Add a new integration, and enter the following information: * **Message To User**: {$botContext.transferMessage} Save the integration. - +The settings for the skill escalation integration ##### Agent Escalation @@ -374,13 +374,13 @@ Add a new integration, and enter the following information: * **Message To User**: {$botContext.transferMessage} Save the integration. - +The settings for the agent escalation integration #### Define a namespace and fallback / default skill in Global Functions initialization Inside your current routing bot, navigate to the **Global Functions**, and add the following code. - +The Global Functions page Code: @@ -408,7 +408,7 @@ function __initConversation() { Below the initialization function, add a new function to set your transfer parameters. - +The Global Functions page that includes a new function that sets transfer parameters Code: @@ -469,8 +469,8 @@ The dynamic escalation dialog will consist of: For testing, we will trigger the dialog starter with the pattern “agent”. - - +A dialog starter that's triggered by the pattern ‘agent’ +The interaction flow for the Dynamic Escalation dialog #### Create the Ask Maven API call and transfer to the relevant escalation @@ -479,7 +479,7 @@ As this interaction makes the dynamic routing decision, all the dialog endpoints Create a text interaction, and set the text to BLANK_MESSAGE. - +A Text interaction with its message set to ‘BLANK_MESSAGE’ In the Pre-Process Code, add the following code: @@ -560,11 +560,11 @@ if (transferType) { Create an integration interaction, and assign it to the TRANSFER_TO_SKILL integration that you created. Ensure you rename the node to TRANSFER_TO_SKILL. - +The properly configured integration interaction Create an integration interaction, and assign it to the TRANSFER_TO_AGENT integration that you created. Ensure you rename the node to TRANSFER_TO_AGENT. - +The properly configured integration interaction #### Set your routing variable @@ -572,15 +572,15 @@ Next, capture a variable in the Conversation Context Service, so you can leverag Navigate to where you would like to set the variable that you will use to route to the complaints team. In this case, you will trigger the dialog using the pattern “complaint”. - +A dialog starter that is triggered by the pattern ‘complaint’ You will be setting a variable called “agentSkillRequired” in the Namespace, so you can route these conversations to a dedicated Complaints skill. - +A Text interaction with a message that indicates the complaint will be transferred to the complaints team In the Pre-Process Code, add the following code: - +The Pre-Process Code of the Text interaction Code: @@ -609,7 +609,7 @@ Now you can create a routing policy to check if the variable: myNamespace.agentS Navigate to **Conversation Orchestrator → Dynamic Routing → Intent & Context Policies**. - +The Intent & Context Policies option in the Conversation Orchestrator menu Add a policy called “Complaints Routing”. @@ -625,11 +625,11 @@ In the **Actions** section: * Set the **Action** to: Transfer to skill * Set the **Skill** to: *Your Complaints Skill* - +The configured policy named ‘Complaints Routing’ Finally, enable the policy using the toggle. - +The Complaints Routing policy with its enabled toggle turned on #### Test the policy @@ -639,7 +639,7 @@ You will use a standard web entry point to initiate a conversation with the Conv In the policy list in Conversation Orchestrator, ensure the Complaints Policy is enabled. - +The Complaints Routing policy with its enabled toggle turned on 1. Start a new web messaging conversation using the account ID. 2. Log in to Conversational Cloud using a Complaints agent account. @@ -647,7 +647,7 @@ In the policy list in Conversation Orchestrator, ensure the Complaints Policy is This should trigger the Complaints policy, and the conversation should be transferred to the Complaints skill. If you are logged in to Conversational Cloud as a Complaints Agent, you will now get a ring. - + The conversation info that's seen by the human agent ##### Test the Standard Fallback routing @@ -659,7 +659,7 @@ Now test a conversation that doesn’t trigger the complaint routing. This should not trigger a policy and the conversation should be transferred to the Fallback skill. If you are logged in to Conversational Cloud as a Standard Agent, you will now get a ring. - + The conversation info that's seen by the human agent ### Using Conversation Orchestrator outside of Conversational Cloud @@ -667,7 +667,7 @@ This section of the documentation assumes that you are already familiar with lin Once your third-party bot is ready, you can set up routing policies on Dynamic Routing and leverage the [Next Actions API](conversation-orchestrator-next-actions-api-overview.html) to receive routing recommendations. You need to handle transfers appropriately within your third-party bot in the appropriate channel. Third-party bots can use the [Conversation Context Service](conversation-orchestrator-conversation-context-service-overview.html) to read or write contextual information that can be leveraged for dynamic routing or even bot-to-bot communication. - +An architectural diagram illustrating how Conversation Orchestrator can be used outside of Conversational Cloud #### Example using the Next Actions API from Google DialogFlow diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started.md index ae506dc784..eade4cd8ca 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/getting-started.md @@ -33,7 +33,7 @@ This helps you get up and running in a few simple steps. Please [familiarize you In Conversational Cloud, from the dashboard of Conversational AI applications, select **Bot Accounts** to access the application. Then, enable the settings as shown below. Turn on **Enable Context API**, and select **Use Conversational Cloud Site Id**. - + The Enable Context API setting in Bot Accounts Next, create the Dynamic Routing bot. @@ -41,7 +41,7 @@ This helps you get up and running in a few simple steps. Please [familiarize you 3. Click **New Bot** in the upper-right corner. 4. From the bot template menu, select the **Conversation Orchestrator → Dynamic Routing Bot** template. Then click **Create Bot**. - + Selecting the Dynamic Routing Bot template and clicking ‘Create Bot’ The template includes the following: * A simple scenario to ask consumers for their phone number and storing that phone number into the context service for routing. @@ -50,13 +50,13 @@ This helps you get up and running in a few simple steps. Please [familiarize you 5. **Name the bot (optional)**: Within the bot, click **Bot Settings** to change the name of the bot. - - + The context menu from which you can select ‘Bot Settings’ + The top of the Bot Settings page, which includes the Name field 6. **Move the interaction**: Dynamic Routing is triggered based on where the interaction is placed. The interaction can be dragged and dropped at different places based on where the routing needs to happen. 7. **Create routing policies**: Create [routing policies](conversation-orchestrator-dynamic-routing-creating-routing-policies.html) by clicking **Manage routing policies** on the Dynamic Routing interaction. This takes you to the Manage Policies page in Conversation Orchestrator, where you can create your policies. - + The Manage routing policies option on the face of a Dynamic Routing interaction Once the bot is deployed, routing policies get evaluated at the appropriate step, and a transfer is performed based on a match. @@ -64,12 +64,12 @@ This helps you get up and running in a few simple steps. Please [familiarize you * **Option 1: Falling back to a skill**: Click **Settings** in the Dynamic Routing interaction, and add a fallback skill ID, fallback skill name (optional), and fallback message. This is the fallback skill to which the conversation is routed in the case of a failure. - - + The Basic interaction settings in a Dynamic Routing interaction, which includes the field for entering a fallback skill ID + The Advanced interaction settings in a Dynamic Routing interaction, which includes the field for entering an escalation message * **Option 2: Handling fallbacks within the Dynamic Routing bot**: In this case, select the appropriate interaction or select Next Interaction (whichever is appropriate) in the the dropdown in the Dynamic Routing interaction, as shown below. - + Selecting the next action in a Dynamic Routing interaction 9. **Deploy the bot**: Once you have set this up, [connect it to an engagement, and deploy the bot](tutorials-guides-getting-started-with-bot-building-deploy-the-bot.html) in Conversational Cloud. Ensure an agent connector is assigned to a user, and the user should be connected to a skill that is deployed to an engagement. Ensure all the incoming interactions are routed to this bot. @@ -81,6 +81,6 @@ This section assumes that you already have a functional routing bot within Conve 2. **Choose your bot**: Within Conversation Builder, choose an already functional routing bot with which Dynamic Routing needs to be integrated. 2. **Add the interaction**: On the Dialogs page, using the interaction palette on the right side, add the **Dynamic Routing** interaction (under **Integrations**). By default, the interaction is added to the bottom of the page. Select it, and move it to where the routing needs to be performed. - + An example of dialog flow that includes a Dynamic Routing interaction 3. Follow steps 5-8 as described in the previous section. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/managing-routing-policies.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/managing-routing-policies.md index f0222de4af..5f45cb9b8f 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/managing-routing-policies.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/managing-routing-policies.md @@ -15,7 +15,7 @@ This topic explains how a large number of policies can be managed. When a route Newly created policies get added to the bottom of the list. - +A list of policies, with the newest policy at the bottom ### Enable or disable policies @@ -25,10 +25,10 @@ Enable or disable a policiy by clicking the toggle. Disabled policies do not pla Whenever a routing call is made, policies are evaluated from top to bottom. For this reason, place the more important, higher priority policies higher up on the list. - +The up and down arrows for reordering the policy list so that the policies are evaluated in a desired order ### Search for policies You can search for policies by name. - +The Search box in the upper-right corner that you can use to search for policies by name diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/overview.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/overview.md index d58bf694c9..fce2d172ec 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/overview.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/overview.md @@ -40,7 +40,7 @@ Dynamic Routing requires the following components to operate: * Next Actions API Here is a representation of how the various components integrate: - +An architectural diagram that illustrates the various components that work together to perform dynamic routing #### Routing bot You need to have a routing bot either on Conversation Builder or on external automation platforms. The routing bot, connected to the primary messaging skill, receives the conversations, and executes routing policies that brands define in the dynamic routing policy management interface, to direct incoming conversations to the right agent skill. LivePerson provides a Conversation Orchestrator bot template which makes it easy for brands to get started. The Conversation Orchestrator bot is pre-wired to both the Conversation Context Service and routing policies I. You are welcome to use your own routing bot but will have to manually configure the bot. You can also use a routing bot on a different automation platform like Google DialogFlow. In such cases, you need to use the Next Actions API to receive recommendations on those external platforms. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/policy-logs-for-v2.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/policy-logs-for-v2.md index 1614b56182..e5745385f2 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/policy-logs-for-v2.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/policy-logs-for-v2.md @@ -25,31 +25,31 @@ Policy Logs are only available to brands that are upgraded to [Conversation Cont ### Using policy logs -Policy logs are available under **Dynamic Routing** and logs start showing up if atleast one policy is executed. +Policy logs are available under **Dynamic Routing** and logs start showing up if at least one policy is executed. - +The default view of the Policy Logs page -Logs are available for conversations for up to 7 days. Specific conversations can be searched by using the ConversationId, which is available in the agent-workspace. +Logs are available for conversations for up to 7 days. Specific conversations can be searched by using the ConversationId, which is available in the agent workspace. - +The search field on the Policy Logs page -For every conversation, the policies appear in the order they were executed. For every policy the policy-name, execution-result, conditions and actions are shown. Values of context-variables passed during policy execution can be viewed by hovering the mouse on variables in the conditions. Knowing runtime context values is very useful for triaging issues or for making improvements. +For every conversation, the policies appear in the order they were executed. For every policy, the policy-name, execution-result, conditions and actions are shown. Values of context variables passed during policy execution can be viewed by hovering the mouse on variables in the conditions. Knowing runtime context values is very useful for triaging issues or for making improvements. - +A tooltip that shows the value of a context variable passed during policy execution -Errors appear in red, and root cause of errors can be viewed on mouse-hover. +Errors appear in red, and root cause of errors can be viewed on mouse hover. - +An example error that appears in red ### Understanding policy states | Status | Definition | | --- | --- | -| | The policy execution outcome was TRUE, and the conversation was routed by this policy because the context variables passed at runtime matched those defined in the policy condition. | -| | The policy execution outcome was FALSE, and the conversation was not routed by this policy because the context variables passed at runtime did not match those defined in the policy condition. | -| | The policy did not execute due to an ERROR. The error can be found by hovering on the context variable that is highlighted in red. An example of an error is a 400 exception in a FAAS function that is used in a policy. | -| | The policy was not configured correctly. An example of an invalid policy is passing a number to a context variable that’s expecting a string. | -| | The policy was disabled and did not execute. | +| The True status indicator | The policy execution outcome was TRUE, and the conversation was routed by this policy because the context variables passed at runtime matched those defined in the policy condition. | +| The False status indicator | The policy execution outcome was FALSE, and the conversation was not routed by this policy because the context variables passed at runtime did not match those defined in the policy condition. | +| The Error status indicator | The policy did not execute due to an ERROR. The error can be found by hovering on the context variable that is highlighted in red. An example of an error is a 400 exception in a FAAS function that is used in a policy. | +| The Invalid status indicator | The policy was not configured correctly. An example of an invalid policy is passing a number to a context variable that’s expecting a string. | +| The Disabled status indicator | The policy was disabled and did not execute. | ### Common errors diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-channel.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-channel.md index 45920dbb2a..53c0ca1ce9 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-channel.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-channel.md @@ -26,7 +26,7 @@ You can create policies to recognize a consumer's channel: Web, Facebook Messeng 1. Modify your routing bot to power the desired experience. In the example below, the bot responds to a customer greeting of “Hi," "Hello," etc., and immediately performs dynamic routing. - + An example dialog flow that's triggered by patterns for ‘hi’ 2. In the Dynamic Routing interaction, click **Manage routing policies** to go to the policy management interface. @@ -34,11 +34,11 @@ You can create policies to recognize a consumer's channel: Web, Facebook Messeng Also configure the action to transfer to a skill. Make sure the skill has at least one or more bot or human agents. - + Selecting a channel in the policy's condition 4. Save and enable the policy. - + The final, saved policy 5. Launch a messaging conversation from the respective channel and test the flow. @@ -48,10 +48,10 @@ You can create policies to recognize a consumer's channel: Web, Facebook Messeng 6. Follow these steps once you have messaging set up. - Launch messaging. Start by saying “Hi. And then immediately get routed to the respective skill. Here below, “Agentbob” is an agent who is mapped to the User3Skill. + Launch messaging. Start by saying “Hi. And then immediately get routed to the respective skill. Here below, “Agent Bob” is an agent who is mapped to the User3Skill. - + The start of the conversation flow, illustrating transfer to Agent Bob 7. You can also create one such policy for every unique channel. And you can also add more conditions to the policies if required. - + The final, saved policy diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents-legacy.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents-legacy.md index 8968a44060..4666a5984d 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents-legacy.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents-legacy.md @@ -23,7 +23,7 @@ By storing a user’s intent as a variable within the Conversation Context Servi In the Global Function’s ‘__initConversation’ function, create and register a namespace to house intent details. Additionally, save the namespace title as a bot variable that will be used when saving the intent name to the Conversation Context Service. - +The code in the initConversation function in the bot's Global Functions ```javascript var intentRoutingNamespace = 'intentRouting'; @@ -33,11 +33,11 @@ botContext.setBotVariable('intentRoutingNamespace', intentRoutingNamespace, true Next, use the [getDialogStarterIntent](conversation-builder-scripting-functions-get-set-session-data.html#get-matched-intent) scripting function in the pre/post process code of any interaction to retrieve the name of the most recently matched dialog starter intent. - +The Pre-Process code Then, save that intent name to the Conversation Context Services conversation scope, using the [setContextDataForConversation](conversation-builder-scripting-functions-manage-the-conversation-context-service.html#set-a-variable) function. Here, we’re demonstrating saving the intent under the chosen namespace with a key of “intent”. - +The expanded Pre-Process code ```javascript var intentTitle = botContext.getDialogStarterIntent(); @@ -65,25 +65,25 @@ Having saved the intent names to the Conversation Context Service, you can now c 1. From the Conversation Orchestrator welcome screen, select [Intents](intent-manager-key-terms-concepts.html#intents) under the **Conversation Context Service** heading to see a list of intents that are available for use in your policies. This intent list is generated from all the domains that have been created for your account. - + The Intents page under the Conversation Context Service section of the Conversation Orchestrator application 2. Selecting **Intent & Context Policies** under the **Dynamic Routing** header gives access to create and manage the policies for your account. Here, you can view the usage statistics for policies, as well as a configurable list of all policies that have been created for the account. - + The Intent and Context Policies page under the Dynamic Routing section of the Conversation Orchestrator application 3. To create a new policy, select the **Add Policy** button under the **Manage policies** heading to generate the add policy form to the right. This form contains two sections, one which outlines the conditions that will trigger this policy, and a second that dictates the action that will be sent back to Conversation Builder. Give your policy a name of your choosing. Our recommendation is to assign a name that is related to the intent you are using for routing (e.g., cancel order). 4. Under **Conditions**, assign the attribute using the “namespace.key” syntax. Using our example from the section above, name this attribute as “intentRouting.intent”. Keep the equality and data type dropdowns as their defaults (“=” and “string”), and select the desired intent from the **Enter a value** dropdown. Values can also be manually typed in. However, due to the specificity needed for strings, we recommend either choosing the intent from the dropdown or copying the intent name from the list of intents in step 1. - + The configured condition 5. Under **Actions**, define the rule and associated information you want to send back to the bot. For routing purposes, select the **Transfer to skill** option from the dropdown. Leave the second dropdown as the default **skill** choice, and from the final dropdown select the skill you would like this policy to transfer to. The list of skills that have been created for your account will display in that final dropdown menu. - + Selecting the skill for the action 6. After saving, the policy is added to your list of available policies in a **disabled** status. To use the policy in your Conversation Builder bots, make sure to toggle the switch to **enabled** before navigating away from Conversation Orchestrator. - + The policy with its enabled indicator turned on With the policy enabled, you are ready to move back into Conversation Builder where you will complete the process of adding Intent Based Routing to your bot. @@ -101,9 +101,9 @@ For information on how to deploy bot agents in Conversational Cloud, please see Above in the *Getting Intents into the Conversation Context Service* section, you captured the intent from a user after triggering a dialog starter. In that same dialog, follow these steps: -First, create a new [Agent Transfer](conversation-builder-interactions-integrations.html#agent-transfer-interactions) interaction. To create a more seamless experience for the user, add the text content BLANK_MESSAGE. +First, create a new [Agent Transfer](conversation-builder-interactions-integrations.html#agent-transfer-interactions) interaction. To create a more seamless experience for the user, add the text content “BLANK_MESSAGE.” - +The configured Agent Transfer interaction Then, in the pre-process code of this interaction, call the Next Actions API using the Conversation Builder scripting function, [askMaven](conversation-builder-scripting-functions-askmaven.html). This method returns a string representation of the matching policy, so you will also need to run the JSON.parse method to properly work with the result. An example of the returned JSON: @@ -126,7 +126,7 @@ Then, in the pre-process code of this interaction, call the Next Actions API usi Next, parse out the skill ID from the returned JSON using the following syntax. Save this value to a bot variable for use in the setting of your Agent Transfer integration. - +The Pre-Process code ```javascript var policy = JSON.parse(botContext.askMaven()); @@ -136,11 +136,11 @@ botContext.setBotVariable('skillId', skillId, true, false); Once saved, click the setting wheel for the Agent Transfer integration. Navigate to the **Advanced** tab, and enter `{$botContext.skillId}` into the **Agent Skill Id** field. - +The Advanced settings of the interaction, which includes the AGent Skill Id field Lastly, navigate to our [messaging test page](https://developers.liveperson.com/web-messaging/emulator.html). Enter your account information, open the engagement for your bot, and trigger the dialog by entering an utterance that will match the intent. If successful, the bot will transfer the user to the correct bot to handle their request. - +The conversation flow to follow to test the bot {: .important} When using this feature in Production, it might be desirable to modify or disable the [automatic messages](https://knowledge.liveperson.com/contact-center-management-messaging-operations-automatic-messages-automatic-messages-overview.html) if you want to mask the transfers to and from each bot. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents.md index eca42c7ebb..e048ec6036 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-intents.md @@ -49,7 +49,7 @@ When an intent triggers a dialog starter, the intent name is automatically saved 3. Set the **Next Action** to the Dynamic Routing interaction. - + The dialog starter that's mapped to an intent named ‘book flight’ 4. Create intent-based routing policies. For more on this, see the section at the end of this topic. @@ -68,20 +68,20 @@ This approach is powered by an API provided by the [Dynamic Routing Bot template Retrieve the botAppKey value from a bot user agent. This can be found in the **User Management** section of the Conversational Cloud. Copy this value. - + The App key field in the User Management section of Conversational Cloud 3. Retrieve the intent domain ID. Retrieve the Domain ID for your intent domain. You can find this in the **Domain Settings** for your domain in Intent Manager. Copy this value. - - + The Domain Settings option for a given domain that's listed on the dashboard in Intent Manager + The Domain ID field in the settings for a given domain 4. Update configurations in the **Global Functions**. Enter the botAppKey and domainId values into their associated variables within the **Global Functions** editor of your bot. - + The lines of code in the bot's global functions where you need to enter the botAppKey and domainID values 5. Enable the intent dialogs in the bot. @@ -89,11 +89,11 @@ This approach is powered by an API provided by the [Dynamic Routing Bot template *Enabling ASK_INTENT and getIntent_API interactions:* - + The dialog flow, illustrating how the Dynamic Routing interaction is below the getIntent_API interaction *To enable interactions, go to the **Interaction Settings**, and enable the toggle*: - + The Interaction Enabled setting in the Basic settings of a given interaction 6. Create intent-based routing policies. For help with this, see the next section. @@ -108,7 +108,7 @@ The policy creation flow is identical for both approaches: Use the **Manage routing policies** link in the Dynamic Routing interaction to navigate to Conversation Orchestrator. - + The Manage routing policies link that's directly on the face of the Dynamic Routing interaction 2. Create your policy. @@ -118,13 +118,13 @@ The policy creation flow is identical for both approaches: In the actions editor, select "Transfer to skill" from the left-hand dropdown and the relevant skill from the right-hand dropdown. Ensure that agents are assigned to the book_flight skill. - + The configured Book flight policy 4. Enable your policy. Once saved, toggle the switch for the policy in the policy list to enable the policy. - + The enabled Book flight policy 5. Test your policy. @@ -134,7 +134,7 @@ The policy creation flow is identical for both approaches: Follow these steps once you have configured your testing setup: - + The conversation flow to follow The message routing flow is identical for both approaches (Dialog Starter and Enabling Intent Routing) because we have used the same intent and the same policy in our demonstration. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-sdes.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-sdes.md index 4e3da9cc5b..2f1b21402d 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-sdes.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/routing-conversations-by-sdes.md @@ -64,11 +64,11 @@ The following SDEs are already available in the dynamic routing interface and ca **Step 1: Enable SDEs for routing** -1. On the left sidebar in Conversational Cloud, click the icon. +1. On the left sidebar in Conversational Cloud, click the The Bot icon, which shows a bot icon. 2. In the Conversational AI dashboard, click **Conversation Orchestrator**. 3. Under **Conversation Context Service**, click **Structured Data Entities**. 4. Scroll down to **Enable Context Service to store SDE values**, and turn on the **enabled** setting. - + The enabled setting turned on **Step 2: Create a policy** @@ -78,7 +78,7 @@ The following SDEs are already available in the dynamic routing interface and ca 4. Under **Conditions**, select any of the available SDE attributes. Example: sde.visitorinfo.customerinfo.companybranch - + Selecting an attribute for a new condition in a new policy 5. Select an operator from the available list of operators. Example: “=” (EQUALS) @@ -107,8 +107,9 @@ This method might have performance issues. Please contact your LivePerson accoun **Step 1: Create a function to pull the SDE to the Conversation Context Service** 1. Log in to Conversational Cloud, and navigate to **Functions** from the waffle menu in the lower-left corner. - + The Functions application option that's available from the waffle icon, which is a three-by-three grid of dots 2. Click **Create a function**. + The Create a function button 3. In the **Select an event to see its available responses** dropdown, select “No Event.” 4. In the **Select a template to start your implementation** dropdown, select “Greeting Template.” 5. Click **Continue**. @@ -119,7 +120,6 @@ This method might have performance issues. Please contact your LivePerson accoun Example Description: Sets authenticated SDE StoreNumber in Conversation Context Service for routing 8. Click **Create function**. - 9. In the editor, delete any existing code, and add the code in the snippet below. {: .important} @@ -251,7 +251,7 @@ Save the changes. Then, in the **Actions** column, deploy the function. **Step 2: Create the Conversation Context Service attribute in the Dynamic Routing interface** -1. On the left sidebar in Conversational Cloud, click the icon. +1. On the left sidebar in Conversational Cloud, click the The Bot icon, which shows a bot icon. 2. In the Conversational AI dashboard, click **Conversation Orchestrator**. 3. Under **Conversation Context Service**, navigate to the **Custom** option. 4. Select **Add New** to create a new custom context attribute. diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/testing-with-the-web-emulator.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/testing-with-the-web-emulator.md index 939a039374..7c78bde7de 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/testing-with-the-web-emulator.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/testing-with-the-web-emulator.md @@ -28,17 +28,17 @@ If you already have at least one web messaging engagement deployed for your acco 2. **Configure the engagement and link your skill**: Choose “Interact with customers” as the goal, and choose the *skill mapped to your dynamic routing bot* as the skill. - + The engagement's settings, where you can select a specific skill to route to 3. **Stop to configure the entry point**: Continue configuring the rest of the engagement as you normally would. Stop at Entry points. While configuring entry points for the engagement, click **+ Add new**. - + The Add new button Give your new entry point a name, for example, "Dynamic Routing.” In your entry point definition, leave the dropdown as *Contains* and add "dynamic-routing". You can choose any name. - + Adding a new entry point as described {: .important} The skill name will be referenced as part of the URL of our testing page. Ensure to not have any spaces. @@ -51,11 +51,11 @@ If you already have at least one web messaging engagement deployed for your acco 2. **Authenticate**: Enter your account number into the provided field, and click **Show Window**. - + The page on which you can test the experience in Web messaging 3. **Modify the URL**: Add a new query parameter to the URL to show your engagement. After the account number, add “&identifier=” and your skill name. For example: `https://developers.liveperson.com/web-messaging/emulator.html?site=&identifier=dynamic-routing` - + Adding a query parameter to an example URL Press **Enter** to reload the page with the referenced skill name. @@ -64,4 +64,4 @@ If you already have at least one web messaging engagement deployed for your acco 4. **Start testing**: Once the page has reloaded, select the engagement, and start a conversation with your dynamic routing bot. - + The engagement as it appears on the page on which you can test the experience in Web messaging diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/using-dynamic-routing-outside-of-conversational-cloud.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/using-dynamic-routing-outside-of-conversational-cloud.md index 73d982680c..83219dfdc9 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/using-dynamic-routing-outside-of-conversational-cloud.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/DynamicRouting/using-dynamic-routing-outside-of-conversational-cloud.md @@ -18,7 +18,7 @@ Once your third-party bot is ready, you can [set up routing policies](conversati Please see the representation below. - +An architectural diagram illustrating how to use Dynamic Routing outside of Conversational Cloud ### Example using the Next Actions API from Google DialogFlow diff --git a/pages/Documents/ConversationalAI/ConversationOrchestrator/api-authorization.md b/pages/Documents/ConversationalAI/ConversationOrchestrator/api-authorization.md index 92a096f71e..a4b4b5ec0c 100644 --- a/pages/Documents/ConversationalAI/ConversationOrchestrator/api-authorization.md +++ b/pages/Documents/ConversationalAI/ConversationOrchestrator/api-authorization.md @@ -20,7 +20,7 @@ Version 1 APIs are dependent on an API authorization key. To get your unique key 1. **Access the API Authorization page**: Access Conversation Orchestrator and then navigate to "API Authorization." This page displays an API key that you can use. - + The Developer Key page where you can copy your API key 2. **Use the API key**: Copy and paste the key provided, and use it in your API headers. @@ -32,7 +32,7 @@ Version 2 APIs are secured with authentication based on the OAuth 2.0 Client Cre 1. **Launch the API Authorization page**: Access Conversation Orchestrator and then navigate to "API Authorization." If you have been upgraded to v2, you will see the screen below. - + The API Authorization page where you can get credentials for the v2 and v1 APIs The page has three sections: