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
-
+
#### Structured Data Entities (SDEs)
@@ -66,7 +66,7 @@ Personal info:
* sde.visitorinfo.personalinfo.language
* sde.visitorinfo.personalinfo.company
-
+
### 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."
-
+
3. Enter the name and the value of the new variable in the text input area.
4. Click **Save**.
-
+
{: .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."
-
+
3. Select the FaaS function using the user credentials that you created.
-
+
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.
-
+
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.
-
+
* **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.
-
+
* **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.
-
+
### 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.
-
+
**Write expressions**: You can write expressions using logical operators, any SDEs, context variables or conversation attributes.
-
+
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.
-
+
**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.
-
+
Add the required template to the editor.
-
+
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'] )) |
-
+
##### 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.
-
+
#### 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 “( )”.
-
+
### 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.
-
+
{: 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.
-
+
#### 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.
-
+
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.
-
+
### 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.
-
+
##### 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**.
-
+
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.
-
+
#### Step 3: Create your policy
In the Dynamic Routing interaction, click **Manage routing policies** to go to the Policy Management interface.
-
+
Then click **Add Policy** to create your first policy.
-
+
#### Step 4: Add the condition
Choose your attribute, the operator and values.
-
+
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.”
-
+
#### Step 6: Save your policy and enable it
-
+
#### 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.
-
+
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.
-
+
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.
-
+
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.
-
+
#### 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 property can be used in any routing policy using the standard naming convention.
-
+
##### Collecting data from bots or automations outside of Conversational Cloud
@@ -179,17 +179,17 @@ PATCH /v2/context/document/create
}
```
-
+
#### Using custom attributes
You can add custom attributes from the Conversation Context Service interface in Conversational Cloud as shown below.
-
+
These custom attributes can be static or contain a [LivePerson function](liveperson-functions-overview.html).
-
+
**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
-
+
**Step 2**: Use the static custom attribute in your policy.
Here we are checking if the user input is in the list.
-
+
**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.
-
+
**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:
-
+
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 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.
-
+
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.
-
+
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.
-
+
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.
-
+
2. Select your organization.
-
+
3. Toggle to **Enable Context API**, and ensure you select to **Use Conversational Cloud Site ID**, entering your organization’s account number.
-
+
#### 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.
-
+
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.
-
-
+
+
Choose the **Conversation Orchestrator** bot template from the bot template menu.
-
+
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:
-
+
* **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**.
-
-
+
+
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**.
-
-
+
+
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**.
-
+
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**.
-
+
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.
-
+
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.
-
+
**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.
-
+
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.
-
+
#### 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.
-
+
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.
-
-
+
+
The phoneNumber variable is then saved to the Namespace in the pre-process code on api_integration_4 (lines 5 and 6).
-
+
3. Create a new regular customer policy by clicking **Add Policy**.
-
+
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.
-
+
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**.
-
+
2. Create the regular customer policy as shown below, and click **Save**.
-
+
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**.
-
-
+
+
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”.
-
+
### 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.
-
+
##### Agent Escalation
@@ -374,13 +374,13 @@ Add a new integration, and enter the following information:
* **Message To User**: {$botContext.transferMessage}
Save the 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.
-
+
Code:
@@ -408,7 +408,7 @@ function __initConversation() {
Below the initialization function, add a new function to set your 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”.
-
-
+
+
#### 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.
-
+
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.
-
+
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.
-
+
#### 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”.
-
+
You will be setting a variable called “agentSkillRequired” in the Namespace, so you can route these conversations to a dedicated Complaints skill.
-
+
In the Pre-Process Code, add the following code:
-
+
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**.
-
+
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*
-
+
Finally, enable the policy using the toggle.
-
+
#### 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.
-
+
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.
-
+
##### 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.
-
+
### 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.
-
+
#### 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**.
-
+
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**.
-
+
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.
-
-
+
+
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.
-
+
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.
-
-
+
+
* **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.
-
+
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.
-
+
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.
-
+
### 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.
-
+
### Search for policies
You can 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:
-
+
#### 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.
-
+
-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.
-
+
-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.
-
+
-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.
-
+
### 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 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. |
### 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.
-
+
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.
-
+
4. Save and enable the 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.
-
+
7. You can also create one such policy for every unique channel. And you can also add more conditions to the policies if required.
-
+
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.
-
+
```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.
-
+
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”.
-
+
```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.
-
+
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.
-
+
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.
-
+
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.
-
+
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.
-
+
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.”
-
+
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.
-
+
```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.
-
+
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.
-
+
{: .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.
-
+
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.
-
+
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.
-
-
+
+
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.
-
+
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:*
-
+
*To enable interactions, go to the **Interaction Settings**, and enable the toggle*:
-
+
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.
-
+
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.
-
+
4. Enable your policy.
Once saved, toggle the switch for the policy in the policy list to enable the 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 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
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.
-
+
**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
-
+
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.
-
+
2. Click **Create a function**.
+
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
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.
-
+
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**.
-
+
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.
-
+
{: .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**.
-
+
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`
-
+
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.
-
+
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.
-
+
### 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.
-
+
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 page has three sections: