Public preview user guide

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.

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


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.
    image004
  • 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.
    image006
  • 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.
    image008
    In the dialog that appears, select a process to run and click ‘Map’.
    image010
  • 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
    image012

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

  1. 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 identical

    E.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

  2. 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:
    https://cloud.google.com/dialogflow/docs/reference/system-entities

    Examples of output values for system entities can be found at:
    https://cloud.google.com/dialogflow/docs/reference/system-entities#ex

    Use 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
    Integer
    Int32
    Object
    String in ISO-8601 format
    Object
    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

  3. 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.

    1. Input argument and type
      image014
    2. Activity settings to convert to a Json Object
      image016
    3. Assigning the temperature amount form the JObject to a variable
      image018

Pass outputs from a process run to the user

  1. 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.

  2. 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.

  3. 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 intent

    E.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?

    image020


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!
image022

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!
image024

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


1 Like

Hi @Karan whenever i click on the link, it says “video not available”. Is this a correct link?

Thanks for reporting the issue! The link has been updated to point to a accessible video

Well I have created demo

1 Like

Hi Karan,
Well understanding.Thanks
If the process execution has 3 minutes the i receive proper out argument message in bot w.r.t intent but in my scenario process execution contains more than 30 minutes then intent is not mapping throws error as “Something went wrong, please try again in a little while”
actually after the execution i need to send message in the bot process successfully completed.

Thanks

@chaithra_N - If your process takes 30 minutes to run, having the user wait for a response for that long wouldn’t be a good user experience. I would recommend that following:

  1. Split your process into two parts:
    • The first process maps to the intent, collects user provided data, starts the second process and responds to the user with a helpful message.
    • The second process runs the logic that take more than 30 minutes and on completion, sends the results to the user
  2. Sends results to the user:
    • If you are using the Slack channel, then use the Slack APIs to message the user on Slack from your second process with results
    • If you are using the Web channel, I’d recommend sending the results to the user via email

Hope this helps!

Hi Karan,
Thanks for understanding.
when 1st process runs and completed with proper data by saying will mail the file once process completed(fetch the user inputs to the queue or in variable)
Now intent map to the 2nd process by saying “Its working on.”. and later throwing response “Something went wrong, please try again in a little while”
on Chat Bot its should not see the quoted sentence…Can you please get solution for this.

@Karan. There is a strange problem i ran into.
I dont see the ‘connect’ button on chatbot.uipath.com page for Orchestartor Service. Please find below screenshot.
Am i missing anything?

@SWATI_KAROT - this looks to be a bug. As a workaround, can you please zoom out in your browser and let me know if you’re able to view the connect button?
For my knowledge, can you also help me with the following information:

  • Screen resolution
  • Zoom level in the browser

@Karan, thanks for the workaround. Yes it works after reducing the Zoom level. It was 100% when i couldn’t see the button I reduced to 80%. Now ‘Connect’ button is visible.