vania-janet/multiturn-rag-retrieval-data huggingface dataset:
* [Salesforce](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-salesforce)
* [Twilio Flex](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-phone-flex)
* [Zendesk](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-zendesk)



There are two basic scenarios when your assistant might need to transfer a conversation to a live agent:



* Planned escalation refers to any anticipated situations in which you know you always want to hand off the conversation to a live agent.
* Fallback escalation is an unexpected situation in which the customer is unable to get help from the assistant.



When the assistant initiates a transfer, the agent receives a notification within the agent dashboard, and has access to the history of the customer's chat with the assistant.



 Planned escalations 

Examples of planned escalations might include the following:



* The customer asks for a service that cannot be completed without the assistance of a live agent
* The customer needs help with a sensitive subject that requires a human touch, such as asking about bereavement benefits or resolving a complaint



To set up a planned escalation, you build an action that can recognize a specific situation that requires a live agent. An example would be an action that is triggered by customer input I want to pay my bill (you might want to let live agents handle payments).

Within any action, you can create a step that initiates a transfer to a live agent:



1. Add a step or edit an existing step to transfer the conversation to a live agent.

Transferring the conversation to a live agent ends the action. If there are situations where you want the conversation to continue within the assistant rather than being transferred, use step conditions as needed.
2. In the And then field at the end of the step, select Connect to agent.
3. In the Settings window, you can customize messages the assistant displays as part of the transfer:

!
* [Send a text message during a phone conversation](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-actionsphone-actions-sms)



In some cases, you might want to combine response types to perform multiple actions. For example, you might want to implement two-factor authentication by requesting phone keypad entry and sending a text message from the same action step. For more information, see the following:



* [Define a sequence of phone commands](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-actionsphone-actions-sequence)



You can also perform the following phone-specific actions:



* [Inject custom values into CDR log events](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-actionsphone-actions-cdr-custom-data)
* [Access phone integration context variables from your action](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-actionsphone-actions-access-context-variables)



For reference information about response types, see [Response types reference](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-response-types-reference).



 Adding phone-specific responses to your assistant 

To initiate a voice-specific interaction from a an action step, add a response within the generic array using the appropriate response type. For more information about using the JSON editor to add responses, see [Defining responses using the JSON editor](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-assistant-responses-json).





 Applying advanced settings to the Speech to Text service 

Use the speech_to_text response type to send configuration commands to the Speech to Text service instance used by the phone integration. By sending a speech_to_text response from an action step, you can dynamically change the Speech to Text configuration during a conversation.

By default, any Speech to Text configuration changes you make persist for the remainder of the conversation, or until you update them again.
Managing your plan 

This topic provides:



* A [plan information](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-managing-planadmin-managing-plan-information) reference
* Steps on [upgrading your plan](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-managing-planadmin-managing-plan-upgrade)





 Plan information 

Billing for the use of Watson Assistant is managed through your IBM Cloud® account.

The metrics that are used for billing purposes differ based on your plan type. You can be billed based on the number of API calls made to a service instance or on the number of active users who interact with the instance.

For answers to common questions about subscriptions, see [How you're charged](https://cloud.ibm.com/docs/billing-usage?topic=billing-usage-charges).

Explore the Watson Assistant [service plan options](https://www.ibm.com/cloud/watson-assistant/pricing/).



 Paid plan features 

The following features are available only to users of a Plus or Enterprise plan. ![Plus or higher plans only](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/plus.png)



* [Phone integration](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-phone)
* [Private endpoints](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-securingsecurity-private-endpoints)
* [Search](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-search-add)
* [v2 Logs API](https://cloud.ibm.com/apidocs/assistant/assistant-v2listlogs)
This documentation for the classic Watson Assistant experience has moved. For the most up-to-date version, see [Managing your plan](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-admin-managing-plan). To see all documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 Managing your plan 

This topic provides:



* A [plan information](https://cloud.ibm.com/docs/assistant?topic=assistant-admin-managing-planadmin-managing-plan-information) reference
* Steps on [upgrading your plan](https://cloud.ibm.com/docs/assistant?topic=assistant-admin-managing-planadmin-managing-plan-upgrade)





 Plan information 

Billing for the use of Watson Assistant is managed through your IBM Cloud® account.

The metrics that are used for billing purposes differ based on your plan type. You can be billed based on the number of API calls made to a service instance or on the number of active users who interact with the instance.

For answers to common questions about subscriptions, see [How you're charged](https://cloud.ibm.com/docs/billing-usage?topic=billing-usage-charges).

Explore the Watson Assistant [service plan options](https://www.ibm.com/cloud/watson-assistant/pricing/).



 Paid plan features 

The following features are available only to users of a Plus or Enterprise plan. ![Plus or higher plans only](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/plus.png)



* [Phone integration](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-phone)
If you have an existing interactive voice response (IVR) system with a branching structure (“press 1 for billing, press 2 for payments”), you might choose the [phone integration](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-phone) as your initial channel. You can integrate Watson Assistant with your existing system to automate the IVR experience so customers can talk with your assistant over the phone.

Understanding where you will deploy the assistant before you begin can help you author the right types of answers for a given channel or platform. For more information about ways to deploy an assistant, see [Adding integrations](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-deploy-integration-add).





 2. Pick your assistant's domain of expertise 

Decide which general domain of expertise you want your assistant to cover (for example, billing support or scheduling appointments). To make an informed decision, review any support call logs that you have access to or ask your customer service representatives. After you choose a domain, be sure that it aligns with a channel that you can control and change. For example, don’t choose to automate billing support questions if you're unable to add the web chat client to the billing web pages.

After you select a domain, you can decide which specific questions or tasks the assistant will help customers with. Start small. Pick one or a handful of customer issues that will deliver the highest value to start. It might be valuable for your assistant to answer a simple question that is asked all the time. Or maybe there's a task, such as scheduling appointments, that you can offload to the assistant to tackle incoming customer requests.

Choose a narrow set of user goals first. If you start small and choose the goals with the highest impact first, you'll have room and time to grow the expertise of your assistant. After your assistant is live, the built-in metrics of active user conversations help you understand what your customers are asking about, how well your assistant is able to meet their needs, and what to focus on next.





 3. Choose the tone and language of your assistant
For example, if you set up multiple queues, you might want to use a Twilio Split widget to pick a queue based on the returned context.





 Test your assistant 

Your assistant should now be able to answer phone calls to your phone number and transfer calls back to your Twilio Flex flow. To test your assistant:



1. Call your phone number. When the assistant responds, ask for an agent.
2. At this point you should hear the phrase configured in the Say/Play widget (such as "Transfer from Watson complete").
3. If the transfer fails, use the console log to follow the flow of the call as it moves from the flow to the /call-receive handler, to Watson Assistant, to the refer-handler and back to your Twilio Flex flow.





 Share the conversation history with service desk agents 

To enable the service desk agent to get a quick view of the conversation history between the visitor and the assistant, set up the Watson Assistant Agent App app for your Twilio Flex environment. For more information, see the documentation for the [Twilio Flex Watson Assistant Agent App](https://github.com/watson-developer-cloud/assistant-web-chat-service-desk-starter/tree/main/src/flex/agentApp).
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 How your dialog is processed 

The dialog uses the intents that are identified in the user's input, plus context from the application, to interact with the user and ultimately provide a useful response.

The dialog matches intents (what users say they want to do) to responses (what the bot says back). The response might be the answer to a question such as What are your store hours? or the execution of a command, such as placing an order. The intent and entity might be enough information to identify the correct response, or the dialog might ask the user for more input that is needed to respond correctly. For example, if a user asks, Where can I get some food? you might want to clarify whether they want a restaurant or a grocery store, to dine in or take out, and so on. You can ask for more details in a text response and create one or more child nodes to process the new input.

The dialog is represented graphically in Watson Assistant as a tree. Create a branch to process each intent that you want your conversation to handle. A branch is composed of multiple nodes.



 Dialog nodes 

Each dialog node contains, at a minimum, a condition and a response.

![Shows user input going to a box that contains the statement If: CONDITION, Then: RESPONSE](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/node1-empty.png)



* Condition: Specifies the information that must be present in the user input for this node in the dialog to be triggered. The information is typically a specific intent. It might also be an entity type, an entity value, or a context variable value. See [Conditions](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-overviewdialog-overview-conditions) for more information.
For example, if you set up multiple queues, you might want to use a Twilio Split widget to pick a queue based on the returned context.





 Test your assistant 

Your assistant should now be able to answer phone calls to your phone number and transfer calls back to your Twilio Flex flow. To test your assistant:



1. Call your phone number. When the assistant responds, ask for an agent.
2. At this point you should hear the phrase configured in the Say/Play widget (such as "Transfer from Watson complete").
3. If the transfer fails, use the console log to follow the flow of the call as it moves from the flow to the /receive-call handler, to Watson Assistant, to the refer-handler and back to your Twilio Flex flow.





 Share the conversation history with service desk agents 

To enable the service desk agent to get a quick view of the conversation history between the visitor and the assistant, set up the Watson Assistant Agent App app for your Twilio Flex environment. For more information, see the documentation for the [Twilio Flex Watson Assistant Agent App](https://github.com/watson-developer-cloud/assistant-web-chat-service-desk-starter/tree/main/src/flex/agentApp).
About Watson Assistant 

Use IBM Watson® Assistant to build your own branded live chatbot into any device, application, or channel. Your chatbot, which is also known as an assistant, connects to the customer engagement resources you already use to deliver an engaging, unified problem-solving experience to your customers.





 Create AI-driven conversational flows Your assistant uses industry-leading AI capabilities to understand questions that your customers ask in natural language. It uses machine learning models that are custom-built from your data to deliver accurate answers in real time. 
 Embed existing help content You already know the answers to customer questions? Put your subject matter expertise to work. Add a search integration with IBM Watson® Discovery to give your assistant access to corporate data collections that it can mine for answers. 
 Connect to your customer service teams If customers need more help or want to discuss a topic that requires a personal touch, connect them to human agents from your existing service desk provider. 
 Bring the assistant to your customers, where they are Configure one or more built-in integrations to quickly publish your assistant on popular social media platforms such as Slack, Facebook Messenger, Intercom, or WhatsApp. Turn the assistant into a member of your customer support call center team, where it can answer the phone and address simple requests so its human teammates can focus on more nuanced customer needs. Make your assistant the go-to help resource for customers by adding it as a chat widget to your company website. If none of the built-in integrations fit your needs, use the APIs to build your own custom app. 
 Track customer engagement and satisfaction Use built-in metrics to analyze logs from conversations between customers and your assistant to gauge how well it's doing and identify areas for improvement. 





 How it works 

This diagram illustrates how IBM Watson® Assistant delivers an exceptional, omnichannel customer experience:

Zoom

![Flow diagram of the service](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/arch-detail.png)

How it works

Customers interact with the assistant through one or more of these channels:
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 Anatomy of a message 

A single /message API call is equivalent to a single turn in a conversation, which consists of a message that is submitted by a customer and a corresponding response from your assistant.

Each reply that a customer makes in response to a prompt from the assistant is passed as an independent /message API call.

The body of the /message API call request and response includes the following objects:



* context: Contains variables that are meant to be persisted. For the dialog to subsequently reference information that is submitted by the user, you must store the information in the context object. For example, the dialog can collect the user's name and then refer to the user by name in subsequent nodes. The following example shows how the context object is represented in the dialog JSON editor:

{
"context" : {
"user_name" : "<? @name.literal ?>"
}

See [Retaining information across dialog turns](https://cloud.ibm.com/docs/assistant?topic=assistant-message-anatomydialog-runtime-context-dialog) for more information.
* input: The string of text that was submitted by the user. The text string can contain up to 2,048 characters. The following example shows how the input object is represented in the dialog JSON editor:

{
"input" : {
"text" : "Where's your nearest store?"
}
* output: The dialog response to return to the user. The following example shows how the output object is represented in the dialog JSON editor:

{
"output": {
"generic": [
{
"values":
{
"text": "This is my response text."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 Handling phone interactions 

If your assistant uses the phone integration, you can use various response types to customize the behavior of the integration or manage the flow of conversations that your assistant has with customers over the telephone.

You can use response types to perform the following phone-specific actions:



* [Apply advanced settings to the Speech to Text service](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-speech-advanced)
* [Apply advanced settings to the Text to Speech service](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-text-advanced)
* [Transfer a call to a human agent](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-transfer)
* [Play hold music or a voice recording](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-hold-music)
* [Enable keypad entry](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-dtmf)
* [Transfer the conversation to the web chat integration](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-transfer-channel)
* [End the call](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-hangup)
* [Send a text message during a phone conversation](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actionsdialog-voice-actions-sms)
* [Upload/Download](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-actions-global-settingsactions-global-settings-upload-download)





 Clarifying questions 

On the Clarifying questions tab, you can customize how an action asks clarifying questions.

In the Ask clarifying questions section, you can:



* Enable or disable if your assistant disambiguates (asks a clarifying question).
* Modify the text that your assistant uses to introduce the clarification list or when no action matches.
* Enable or disable response modes, and modify the text that your assistant uses with a response mode. If you enable response modes, you can use the Customize modes section to choose a response mode for each action to set how it behaves.



For more information, see [Customizing clarifying questions](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-understand-questionsunderstand-questions-disambiguation-config) and [Response modes](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-action-response-modes).





 Change conversation topic 

The Change conversation topic feature enables your assistant to handle digressions, dynamically responding to the user by changing the conversation topic as needed. For more information, see [Allowing your customers to change the topic of the conversation](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-change-topic).

If necessary, you can disable changing the topic for all actions:



1. On the Change conversation topic tab, set the switch to Off.
2. Click Save, and then click Close.





 Allow change of topic between actions and dialog 

If you are using actions and dialog, you can ensure that customers can change topics between an action and a dialog node.

This setting is available if you activate dialog in Assistant settings.
This documentation is for the classic Watson Assistant experience. To see the documentation for the new Watson Assistant, please go [here](https://cloud.ibm.com/docs/watson-assistant).



 About Watson Assistant 

Use IBM Watson® Assistant to build your own branded live chatbot into any device, application, or channel. Your chatbot, which is also known as an assistant, connects to the customer engagement resources you already use to deliver an engaging, unified problem-solving experience to your customers.





 Create AI-driven conversational flows Your assistant leverages industry-leading AI capabilities to understand questions that your customers ask in natural language. It uses machine learning models that are custom built from your data to deliver accurate answers in real time. 
 Embed existing help content You already know the answers to customer questions? Put your subject matter expertise to work. Add a search skill to give your assistant access to corporate data collections that it can mine for answers. 
 Connect to your customer service teams If customers need more help or want to discuss a topic that requires a personal touch, connect them to human agents from your existing service desk provider. 
 Bring the assistant to your customers, where they are Configure one or more built-in integrations to quickly publish your assistant on popular social media platforms such as Slack, Facebook Messenger, Intercom, or WhatsApp. Turn the assistant into a member of your customer support call center team, where it can answer the phone and address simple requests so its human teammates can focus on more nuanced customer needs. Make your assistant the go-to help resource for customers by adding it as a chat widget to your company website. If none of the built-in integrations fit your needs, use the APIs to build your own custom app. 
 Track customer engagement and satisfaction Use built-in metrics to analyze logs from conversations between customers and your assistant to gauge how well it's doing and identify areas for improvement. 





 How it works 

This diagram illustrates how the product delivers an exceptional, omnichannel customer experience:

!