Overview
Chatbots are increasingly being adopted to provide customers and employees a quick and easy way to self-serve common requests. While Natural Language Processing (NLP) enables the creation of chatbots that can identify intent from a users message, even when expressed in ways that are not predefined, automating the fulfilment of these requests remains a challenge.
UiPath Chatbots provide a configurable way of enabling chatbot fulfilment via processes in UiPath orchestrator, run by unattended robots across your line-of-business systems.
Features
- Configurable integrations
Setup connections to Google Dialogflow for NLP and UiPath Cloud orchestrator without writing a single line of code - Out-of-box channels
Embed the UiPath provided web widget to add chatbots to internal and external web pages
Integrate with Slack for internal chatbots - No-code process mapping
Map Dialogflow intents to processes in Orchestrator for fulfilment in just a few clicks - Parameter passing
Send values extracted from user messages as input to processes, and send outputs from a process run via a message to the user - Relaxed time constraints for fulfilment
The service waits for up to 3 minutes for a process run to complete successfully, enabling the fulfilment of customer requests no matter how complex they might be - Test mode
Try your chatbot with RPA-based fulfilment via the web widget
Pre-requisites
Processes and unattended robots in UiPath Cloud Platform
In this version of the preview, weâll run process that are in an instance of the UiPath Cloud Platform.
- Begin by navigating to https://cloud.uipath.com
- Next, create a service instance by navigating to the Services tab in the menu on the left and clicking on the Add service button.
- Finally, add your robots and publish your processes to the UiPath Cloud Platform.
Need a quick overview? Check out this video
Want to learn more about the UiPath Cloud Platform? Check out the release announcement
NLP Agent in Google Dialogflow
In this version of the preview, UiPath Chatbots connect to a Google Dialogflow agent for intent detection and entity extraction.
- If you donât have a Google Dialogflow account, sign up for one at https://dialogflow.com
- Create a chatbot agent. If youâre not familiar with Dialogflow, follow steps 1 to 4 in this guide:
Build an appointment scheduler with Dialogflow | Google Codelabs
Slack app in a workspace [Optional]
For internal chatbots to support agents and employees, leverage the out-of-box Slack integration to make you chatbot available to them within a Slack workspace
- To sign up for Slack and create your workspace, follow this guide:
Create a Slack workspace | Slack - Create a Slack app by going to https://api.slack.com and click on the âStart Buildingâ button
- In the dialog that appears, give your app a name (this is what your users will search for in Slack in order to interact with the bot), and add it to a workspace for which you are an admin
Getting started with UiPath Chatbots
Once you have your unattended robots and process in Cloud Orchestrator, and your NLP agent defined in Google Dialogflow, youâre ready to configure your chatbot with RPA fulfilment and make it available to the target audience.
- Navigate to the chatbot portal at https://chatbot.uipath.com and log in.
- Once youâre logged in, create a new connection by clicking on the Connect button.
Alternatively, click on the Create new button in the top right.
- Give your connection a descriptive name and click Submit .
- In the Build page of the connection, click on the Connect button of the Dialogflow and Orchestrator tiles to launch the connection wizard and connect to the Google Dialogflow agent for NLP, and to your UiPath Cloud Orchestrator service for process execution.
- Next, navigate to the Map page to map intents from the connected Dialogflow agent to processes in UiPath. Add a process to run for an intent by clicking on the âAddâ button for it under the process column.
In the dialog that appears, select a process to run and click âMapâ.
- Finally, to make your chatbot available to end users, navigate to the Launch page. Click on the Connect button to launch the connection wizard for each channel that the chatbot needs to be available on
Pass user inputs to a process and respond to users with process outputs
The preview enables you to pass information captured from the users message as inputs to your process, as well as pass outputs from your process to the user via a response.
Pass user inputs to a process
-
Intent parameter names must be identical to process input argument names
To pass input parameters from an intent to a mapped process, parameter names must be identicalE.g., a parameter called orderID in a Dialogflow intent will only be passed as an input argument to a mapped UiPath process only if the input argument for that process is also named orderID
-
Output format of the intent parameter must be compatible with the argument type of the input argument in the mapped process
When using system entities provided by Dialogflow, pay special attention to its output format, i.e., the type of the value that is passed from the parameter to our input argument.Reference for the output format for Dialogflow system entities can be found at:
System entities reference | Dialogflow ES | Google CloudExamples of output values for system entities can be found at:
System entities reference | Dialogflow ES | Google CloudUse the reference table below to help you pick the input argument type in your process
Dialogflow system entity output format Recommended input argument type String String Number
IntegerInt32 Object
String in ISO-8601 formatObject Array (for parameters where isList is set) Array of [T] Incompatible types will result in runtime errors and show users a âSomething went wrongâŚâ message in the chat
-
For inputs of type Object, use the Deserialize JSON activity to easily access its properties
Screenshots to illustrate the conversion of an Object (from the Dialogflow intent) that contains the temperature and unit of measurement, to a Json Object for use in the process.- Input argument and type
- Activity settings to convert to a Json Object
- Assigning the temperature amount form the JObject to a variable
- Input argument and type
Pass outputs from a process run to the user
-
Responses to the user must be defined in the responses section of the intent:
Dialogflow allows the definition of responses for an intent. For an intent mapped to a process, the response is sent only after the process has been run successfully.
All responses to the user (even if they are to include data from a process run) must be defined in the responses section for the process. -
Store information you want to pass back to the user in output arguments
Any information that you would like to send to the user must be stored in an output argument of type String in your process. -
Specify output arguments in the Dialogflow intent response
To send outputs from your process run to the end user via a message, specify the output argument enclosed within < > in the responses that youâve defined for your Dialogflow intentE.g., letâs say our process gathers shipping details for an order, and stores it in an output argument called shippingDetails of type String. To have the chatbot respond to the user with this information, add
<shippingDetails>
in the responses section of the intent.Below is an example of a response defined in Dialogflow:
Hereâs shipping information that I found for your order:
<shippingDetails>
Is there anything else I can help with?
Using your chatbot
Web
Enable users to message your chatbot from a web page by adding the chat widget to it.
Do this by copying the HTML embed code from the configuration wizard of the Web channel in the launch page, and pasting it within the <body> </body>
tags of each web page that the chatbot needs to be available in. Once added, the web widget is displayed in its minimized state as an overlay at the bottom right of the page.
Click on the web widget to expand the chat window and start messaging!
Slack
To use the chatbot in Slack, youâll need to add the Slack app to your workspace by clicking on the âAdd appsâ button in the left pane in Slack and clicking on your app (youâll only need to do this once)
All thatâs left to do is ask your chatbot to do something for you!
When a request is being fulfilled by a UiPath process, the chatbot will let the user know when it begins working on it, and will respond with the response defined for the intent in Dialogflow when the job has been successfully run.
Tips
- We recommend using Google Chrome as your browser when configuring UiPath Chatbots
- You can only map intents to processes in a single folder in the connected Orchestrator service
- It is not possible to map a single intent to multiple processes in the same connection.
- It is possible to have the same intent map to the same process across multiple connections, leading to duplicate invocations of the process
Known issues
- In some cases, messaging via the web widget might result in an error when using Google Chrome, even if the same chatbot can be used via Slack. This is due to a new SameSite flag that is currently an experimental feature in Google Chrome. If you happen to have this feature, use the following steps to ensure the flag is correctly disabled:
- Navigate to chrome://flags in Chrome
- Enable the following flags:
- SameSite by default cookies
- Cookies without SameSite must be secure
- Close and re-launch Chrome. Navigate back to chrome://flags
- Disable the following flags:
- SameSite by default cookies
- Cookies without SameSite must be secure
- Close and re-launch Chrome, and try your chatbot