vania-janet/multiturn-rag-retrieval-data huggingface dataset:
Keep in mind that you should not rely on the Greet customer action to initialize required variables unless you are certain it will always be triggered at the beginning of each conversation. For more information, see [When the greeting action is triggered](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-start-conversationgreeting-triggered).





 When the greeting action is triggered 

Depending on how you publish your assistant, the Greet customer action might not be triggered. This action is triggered only when the assistant, rather than the user, starts the conversation, as in the following situations:



* Assistant preview
* Phone integration
* Web chat integration with home screen disabled
* A custom client application, depending on design



In this kind of situation, the integration or client application starts the session by sending an empty message to the assistant and waits for the assistant to greet the user (this is when the Greet customer action is triggered).

However, there are other situations in which the Greet customer action is never triggered:



* Integrations with text messaging channels, such as Slack, Facebook Messenger, or SMS. With these kinds of channels, the user starts the conversation by sending an initial message or request. This triggers the appropriate action for handling the user's request, so the Greet customer action is not triggered.
* Web chat integration with home screen enabled. The home screen is an optional feature of the web chat integration. When enabled, the home screen displays a welcome message to the user; because the greeting is defined in the web chat configuration, the Greet customer action is not triggered.
The navigation menu options are available from the side of the main page instead of the top. In the page header, breadcrumb links display that show you where you are. You can now switch between service instances from the Workspaces page. To get there quickly, click Back to workspaces from the navigation menu. If you have multiple service instances, the name of the current instance is displayed. You can click the Change link beside it to choose another instance.
* When you create a dialog, two nodes are now added to it for you: 1) a Welcome node at the start the dialog tree that contains the greeting to display to the user and 2) an Anything else node at the end of the tree that catches any user inquiries that are not recognized by other nodes in the dialog and responds to them. See [Creating a dialog](https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-build) for more details.
* When you are testing a dialog in the "Try it out" pane, you can now find and resubmit a recent test utterance by pressing the Up key to cycle through your previous inputs.
* Experimental Korean language support for 5 system entities (@sys-date, @sys-time, @sys-currency, @sys-number, @sys-percentage) is now available. There are known issues for some of the numeric entities, and limited support for informal language input.
* An Overview page is available from the Improve tab. The page provides a summary of interactions with your bot. You can view the amount of traffic for a given time period, as well as the intents and entities that were recognized most often in user conversations. For additional information, see [Using the Overview page](https://cloud.ibm.com/docs/assistant?topic=assistant-logs-overview).







 27 April 2017 

System entities
: The following system entities are now available as beta features in English only:



* sys-location: Recognizes references to locations, such as towns, cities, and countries, in user utterances.
* sys-person: Recognizes references to people's names, first and last, in user utterances.
You can disable for all actions, or just for an individual action.

To disable changing the topic for all actions:



1. From the Actions page of the assistant, click Global settings![Gear icon](https://cloud.ibm.com/docs-content/v1/content/icons/settings.svg).
2. On the Change conversation topic tab, set the switch to Off.
3. Click Save, and then click Close.



To disable changing the topic for an individual action:



1. Edit an action, then click Action settings![Gear icon](https://cloud.ibm.com/docs-content/v1/content/icons/settings.svg).
2. In the Action Settings window, toggle the Change conversation topic switch to Off.





 Disabling returning to the original topic 

Even when you allow changing the topic, you might not want a customer to return to the previous topic. If you need to do this:



1. Edit an action, then click Action settings![Gear icon](https://cloud.ibm.com/docs-content/v1/content/icons/settings.svg).
2. Keep the Change conversation topic toggle switched to On.
3. Select the checkbox Never return to original action after completing this action to prevent the customer from returning to the previous action.







 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 have activated dialog in Assistant settings. For more information, see [Activating dialog and migrating skills](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-activate-dialog).



1. Set the toggle Change topics from actions to dialog to On.
2. Click Save, and then click Close.







 Enabling changing the topic for free text and regex customer responses 

By default, changing the conversation topic works differently for free text and regex responses.
[Image showing the creation of a message on the queue](https://cloud.ibm.com/docs-content/v1/content/3a120b16db5fdc3e70d071af8a63ce5515c1b096/mqcloud/images/mqoc_webcli_put.png)

You can see the message is now on the queue.





 Browse a message on the test queue 



1. Click on the message in the table.



You can see the details of the message. Expand 'Application data' to view the message text.





 Delete the test queue 



1. Ensure the 'Queues' tab is selected

![Image showing the + on the queues widgit](https://cloud.ibm.com/docs-content/v1/content/3a120b16db5fdc3e70d071af8a63ce5515c1b096/mqcloud/images/mqoc_webconsole_queue_tab.png)
2. Click on queue 'DEV.TEST.1'.
3. Click on the 3 dots button, then on 'Clear messages'

![Image showing the trash symbol on the queues widgit](https://cloud.ibm.com/docs-content/v1/content/3a120b16db5fdc3e70d071af8a63ce5515c1b096/mqcloud/images/mqoc_webconsole_clear_messages.png)
4. Click on the 3 dots button, then on 'Configuration'

![Image showing the trash symbol on the queues widgit](https://cloud.ibm.com/docs-content/v1/content/3a120b16db5fdc3e70d071af8a63ce5515c1b096/mqcloud/images/mqoc_webcli_queue_config.png)
5.
: The median conversation time metric, and corresponding filters, are being temporarily removed from the Overview page of the Improve section. This removal will prevent the calculation of certain metrics from causing the median conversation time metric, and the conversations over time graph, to display inaccurate information. IBM regrets removing functionality from the tool, but is committed to ensuring that we are communicating accurate information to users.

Dialog node names
: You can now assign any name to a dialog node; it does not need to be unique. And you can subsequently change the node name without impacting how the node is referenced internally. The name you specify is saved as a title attribute of the node in the workspace JSON file and the system uses a unique ID that is stored in the name attribute to reference the node.





 23 August 2017 

Updates to Korean, Japanese, and Italian
: Language support has been enhanced for Korean, Japanese, and Italian. Note that the Watson Assistant service learning models may have been updated as part of this enhancement, and when you retrain your model any changes will be applied.





 10 August 2017 

Accent normalization
: In a conversational setting, users may or may not use accents while interacting with the Watson Assistant service. As such, an update has been made to the algorithm so that accented and non-accented versions of words are treated the same for intent detection and entity recognition.

However, for some languages like Spanish, some accents can alter the meaning of the entity. Thus, for entity detection, although the original entity may implicitly have an accent, your assistant can also match the non-accented version of the same entity, but with a slightly lower confidence score.

For example, for the word barrió, which has an accent and corresponds to the past tense of the verb barrer (to sweep), your assistant can also match the word barrio (neighborhood), but with a slightly lower confidence.

The system will provide the highest confidence scores in entities with exact matches. For example, barrio will not be detected if barrió is in the training set; and barrió will not be detected if barrio is in the training set.

You are expected to train the system with the proper characters and accents. For example, if you are expecting barrió as a response, then you should put barrió into the training set.
Integrating with Facebook Messenger 

IBM Cloud

Facebook Messenger is a messaging application that helps businesses and customers communicate directly with one another.

After you create an action, you can integrate your assistant with Facebook Messenger.

There is currently no mechanism for identifying users who interact with the assistant through Facebook Messenger, which means that there is no way to identify or delete data associated with a specific user. Do not use this integration method for deployments that must be GDPR compliant.



1. Go to the Integrations page by clicking the integrations icon (![Integrations icon](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/integrations-icon.png)) in the left menu.
2. Click Add on the Facebook Messenger tile.
3. Click Confirm.
4. Follow the instructions that are provided on the screen to complete the integration process.





 Action considerations 

The rich responses that you add to the action are displayed in a Facebook app as expected, with the following exceptions:



* Connect to live agent: This response type is ignored.
* Image: This response type embeds an image in the response. A title and description are not displayed before the image, whether or not you specify them.
* Option: This response type shows a list of options that the user can choose from.



* A description is not displayed, whether you specify one or not.
* After a user clicks one of the buttons, the button choices disappear and are replaced by the user input that is generated by the user's choice. If the assistant or the user enters new input, then the button-generated input disappears. Therefore, if you include multiple response types in a single response, position the option response type last. Otherwise, content from subsequent responses, such as text from a text response type, will replace the button-generated text.
* The title is automatically taken from the text of the relevant step of the action where options are listed.









 Chatting with the assistant 

To start a chat with the assistant, complete the following steps:



1.
Customizing the web UI 

You can configure your web UI to work with UTC timestamps, change the log line format, change the background color and more.



  Configure UTC timestamps 

By default, the web UI is configured to use local timestamps in views and searches.

To display timestamps in UTC and do timeframe searches relative to UTC instead of local time, complete the following steps:



1.  In the web UI, click the User preferences icon > User preferences.
2.  Select Viewer options.
3.  Click Show time as UTC to enable UTC timestamps.







  Configure the background color 

Complete the following steps:



1.  In the web UI, click the User preferences icon > User preferences.
2.  Select Viewer style.
3.  Choose the default contrast.

Choose Light mode to have a light background.

Choose Dark mode* to have a black background.
4.  Select the desired theme, text size, and line height.
5.  Click Done to save your changes.







  Configure the log line format 

Complete the following steps to display a log line that includes the timestamp and message of an event:



1.  In the web UI, click the User preferences icon > User preferences.
2.  Select Log format.

By default, the log format is configured in the following way:

%time('MMM D HH:mm:ss') %source %app %level %line
3.  To remove items from the format, drag and drop the items. For example, to remove source, app, and level drag them out.

The log line changes to the following format:

%time('MMM D HH:mm:ss') %line
[Entities drop-down menu](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/entities_filter.png)





 Viewing individual messages 

For any user input entry, click Open conversation to see the user input and the response made to it by the assistant within the context of the full conversation.

The time that is shown for each conversation is localized to reflect the time zone of your browser. This time might differ from the timestamp shown if you review the same conversation log via an API call; API log calls are always shown in UTC.

![Open conversation panel](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/open_convo.png)

You can then choose to show the classification(s) for the message you selected.

![Open conversation panel with classifications](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/open_convo_classes.png)

If the spell check feature is enabled for the skill, then any user utterances that were corrected are highlighted by the Auto-correct icon. The term that was corrected is underlined. You can hover over the underlined term to see the user's original input.

![Open conversation panel that shows the original text for a term to which spelling correction logic was applied](https://cloud.ibm.com/docs-content/v1/content/417db917d18067d9dcc4cf2612564a9a87c3ddc8/assistant/images/open_convo_spellchecked.jpg)





 Improving across assistants 

Creating a dialog skill is an iterative process.
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous">
</script>

<link rel="stylesheet" href="stylesheets/style.css">

Show more

The body of the index view contains our bootstrap styled navigation tabs, and our upload form in a basic layout that is provided by the CSS styles included with bootstrap.

Consider these two specifications for our app:



* We set our form method to POST and the form-data encoding type as multipart/form-data on line 24. For the form action, we send the data from our form to the app to the app route "/". Later, we do extra work in our router logic to handle POST requests to that route.
* We want to display feedback about the status of the attempted file upload to the user. This feedback is passed to our view in a variable named "status", and is displayed after the upload form.



<!DOCTYPE html>
<html>

<head>
<%- include('head-inc'); %>
</head>

<body>
<ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="/">Home</a></li>
<li role="presentation"><a href="/gallery">Gallery</a></li>
</ul>
<div class="container">
<h2>Upload Image to IBM Cloud Object Storage</h2>
<div class="row">
<div class="col-md-12">
<div class="container" style="margin-top: 20px;">
<div class="row">

<div class="col-lg-8 col-md-8 well">
* To see details for all of the artifacts at once, including other properties, such as the value of a given context variable at the time of the call, you can inspect the entire API response. See Viewing API call details]]!
Service returns an array of intents, including Customer_Care_Cancel_Account and eCommerce_Cancel_Product_Order.Service returns an array of intents_ including Customer_Care_Cancel_Account and eCommerce_Cancel_Product_Order_.] ! ! ! ! ! .

<-- </ul> -->

4. Temporarily remove the description you added to the name field (or external node name field) for at least one of the nodes that you anticipate will be listed as a disambiguation option.5. Enter the test utterance into the "Try it out" pane again.
If you added the <? intents ?> expression to the response, then the text returned includes a list of the intents that your assistant recognized in the test utterance, and includes the confidence score for each one.

!]<-- </ol> -->After you finish testing, remove any SpEL expressions that you appended to node responses, or add back any original responses that you replaced with expressions, and repopulate any name or external node name fields from which you removed text.<-- </section "id="section-dialog-runtime-disambig-test" "> --><-- </section "id="section-dialog-runtime-disambiguation" "> --><-- <section "id="section-dialog-runtime-digressions" "> --> Digressions A digression occurs when a user is in the middle of a dialog flow that is designed to address one goal, and abruptly switches topics to initiate a dialog flow that is designed to address a different goal. The dialog has always supported the user's ability to change subjects. If none of the nodes in the dialog branch that is being processed match the goal of the user's latest input, the conversation goes back out to the tree to check the root node conditions for an appropriate match.
Use the [PopURL](https://help.nice-incontact.com/content/studio/actions/popurl/popurl.htm) action to display the conversation transcript to a live agent. URL {watson_url}



![Image of the conversation history window](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/cxone-pop-url.png)





 Disconnecting a call 

The phone integration uses the same [signal](https://developer.niceincontact.com/API/AdminAPI/Contacts/Signal%20a%20Contact) REST API for disconnecting a call.

The p1 attribute is set to hangup. You need to design your script so it can distinguish between transferring a call to a live agent and disconnecting a call. If p1 is set to hangup when an Onsignal event is triggered, use [Hangup](https://help.nice-incontact.com/content/studio/actions/hangup/hangup.htm) to terminate a script.

![Image of call hangup](https://cloud.ibm.com/docs-content/v1/content/ca9232b3702768f24bb897f48f10778fcda28718/watson-assistant/images/cxone-hangup.png)





 Transferring to a live agent when an error occurs 

If an error occurs during a conversation, the phone integration disconnects the call by sending a SIP BYE request.

Use [Onrelease](https://help.nice-incontact.com/content/studio/actions/onrelease/onrelease.htm) to process the BYE request and transfer a call to a live agent.

In this example, when Onrelease is triggered, the script verifies whether the call was already transferred.
{location}.assistant.watson.appdomain.cloud/public/slack/{integration-id}/message?version=2020-09-24

Check the Generated request URL field in the Slack integration setup page for the full URL to use, which includes the appropriate {location} and {integration-id} values for your instance.
* For a Facebook Messenger integration that is over 7 months old, make sure the Callback URL is using the proper endpoint.



* Go to the [Facebook for Developers](https://developers.facebook.com/apps/) web page.
* Open your app, and then select Messenger>Settings from the navigation pane.
* Scroll down to the Webhooks section and edit the Callback URL field.

For example, if the URL has the syntax: https://assistant-facebook-{location}.watsonplatform.net/public/message/, change it to have this syntax:

https://integrations.{location}.assistant.watson.appdomain.cloud/public/facebook/{integration-id}/message?version=2020-09-24

Check the Generated callback URL field in the Facebook Messenger integration setup page for the full URL to use, which includes the appropriate {location} and {integration-id} values for your instance.



* For a Phone integration, if you connect to existing speech service instances, make sure those speech services use credentials that were generated with the latest endpoint syntax (a URL that starts with https://api.{location}.speech-to-text.watson.cloud.ibm.com/).
* For a search skill, if you connect to an existing Discovery service instance, make sure the Discovery service uses credentials that were generated with the supported syntax (a URL that starts with https://api.{location}.discovery.watson.cloud.ibm.com/).
Troubleshooting and Logs 



 Troubleshooting 

Find solutions to problems that you might encounter while using the integration.



* If you get a Forbidden message: This means the phone number that you specified when you configured the phone integration cannot be verified. Make sure the number fully matches the SIP trunk phone number.
* There is a lot of latency between caller questions and Watson answers: This problem is most likely coming from latency that is caused by one of the Watson services. You can view logs in IBM Log Analysis, see [Viewing logs](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-troubleshootingphone-troubleshooting-logs). At the end of each call, you will see a CWSGW0160I: Call was ended. event. Expand on this entry to see a summary of the max_response_milliseconds as well as details of the assistant_interaction_summaries. This will help you identify which service the latency is coming from.

If your plan allows, you can also look at the Call Detail Record (CDR) to determine which service is misbehaving. For more information, see [Call Detail Records (CDRs)](https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-phone-troubleshootingphone-troubleshooting-cdrs).







 Viewing logs 

The log events that occur in the components that are used by the phone integration are written to IBM Log Analysis. To check the logs, create an instance and configure the platform logs to observe the region where your service instance is hosted.

For more information about setting up an instance, see [Provisioning an instance](https://cloud.ibm.com/docs/log-analysis?topic=log-analysis-provision).

Currently, the Phone and SMS integrations are the only components of your assistant that write logs to the IBM Log Analysis dashboard.

After you create the instance, get log information by completing the following steps:



1. Go to the [IBM Cloud Logging](https://cloud.ibm.com/observe/logging) page.
2.
"uri": "sip:12345556789\@myhost.com"



 Transferring after hangup 

By default, the phone integration transfers calls by using a SIP REFER request. Depending on the IVR service provider, you might need to configure call transfer to use a SIP BYE request instead. Use the transfer_method attribute to specify how to transfer the call, using either refer or hangup. When transfer_method is set to hangup instead of refer, the behavior of the transfer action changes. Instead of sending a SIP REFER request, the phone integration plays back any associated text and then hangs up the call by sending a SIP BYE request.

After the hangup, the phone integration passes the transfer destination that is specified in the url attribute to the call anchor in the BYE message. The header field that contains the transfer target is determined by the transfer_target_header attribute. If the transfer_target_header attribute isn't specified, the phone integration uses Transfer-Target.

{
"generic": [
{
"response_type": "connect_to_agent",
"transfer_info": {
"target": {
"service_desk": {
"sip": {
"uri": "sip:user\@domain.com",
"transfer_method": "hangup",
"transfer_target_header": "Transfer-Target"
}
}
}
},
"agent_available": {
"message": "Please hold on while I connect you with a live agent."
},
"agent_unavailable": {
"message": "Sorry, I could not find an agent."
},
"message_to_human_agent": "The caller needs help resetting their password"
}
]
}
Show more





 Transferring upon failure 

To configure transfer on failures, go to the Advanced tab in the phone integration settings. The following selections can be configured:



* Transfer failure message
* Disconnect call on transfer failure