UiPath / AmazonConnect

Fulfill Amazon Connect contact flows with unattended UiPath automation
Other
4 stars 11 forks source link

Amazon Connect powered by UiPath

IVR (“Interactive Voice Response”) systems are often the first point of contact for customers as part of an enterprise’s contact care system. Unfortunately, IVRs often fall short on the promise of providing “self-service” solutions for customers as IVRs are only capable of connecting to systems that are accessible via API, which even when available can be expensive to implement such solutions.

With UiPath’s Robotic Process Automation (RPA) platform, Amazon Connect can be connected to any system via RPA, drastically expanding IVR fulfillment capabilities to gather information and perform actions across a plethora of systems from on-prem mainframes to cloud-based web services. Increasing the success rate of customer requests being fulfilled by the self-service IVR frees your contact center agents up to work on more complex customer issues. The results? Improved customer and employee experiences, enhanced accuracy, reduced Average Handling Time (“AHT”), and acceleration of your digital transformation initiatives, resulting in a rapid return on investment.

UiPath is a Select Tier Technology Partner of the AWS Partner Network. Learn more about the UiPath-AWS Partnership.

Key Features

Benefits

Discover more use cases on the UiPath blog post!

Architecture Diagram

This repo contains everything you need to quickly incorporate UiPath automation into your Amazon Connect contact flows.

Demo description

We have created two distinct demos to show off different use cases for interacting with Amazon Connect

Fulfilling IVR requests with UiPath automation [Inbound]

Aileen is a customer of Meeple Telco and wants to know the current balance for her mobile phone bill. She makes a voice call to her Meeple Telco customer service number and the IVR flow queries the back-end for her last bill date and total. Aileen is thrilled that she was able to answer her question in under 30 seconds and without having to talk to anyone!

Outbound Calling [Outbound]

An attended automation queries an Excel spreadsheet for applicants that are missing data from their applications, namely their social security number. The automation uses Amazon Connect to call each applicant and when they pick-up the call, are prompted to enter their social security number. This data is then updated in the Excel spreadsheet.

Deployment Steps

Step 1. Create & configure your UiPath Cloud instance

  1. Create a new UiPath cloud instance, or use an existing instace
  2. Download the sample processes in this repo, or use your own processes
    • Inbound Demo
    • BillLookup - an unattended automation that takes a phone number as input and returns the last monthly bill details
    • Outbound Demo
    • OutboundLauncher - an attended automation that takes an Excel spreadsheet as input and initiates an outgoing call to each customer in the file using Amazon Connect. This is the process you need to kick off to start the demo. Make sure you update the input parameters (phone number, Contact Flow ID, and Amazon Connect Instance Id).
    • UpdateSpreadsheet - an unattended automation that updates the social security number for a given record matching a phone number in an Excel spreadsheet
  3. Publish the processes from Studio to Orchestrator - HowTo
  4. Deploy the processes - HowTo
  5. Generate a user key and client ID for your cloud instance - HowTo
  6. Note down the following information as it will be needed in later steps:
    • User Key
    • Client Id
    • Account logical name
    • Tenant logical name
  7. [Optional] If you want to run the Outbound Demo, you need to download and install the Amazon CLI to your machine as the process uses it to make a call with Amazon Connect.

Step 2. Prepare an Amazon Connect instance

  1. Sign in to your AWS account at https://aws.amazon.com with an AWS Identity and Access Management (IAM) user role that has the necessary permissions.
  2. If you don’t already have an Amazon Connect instance, see the AWS documentation for information on how to create an Amazon Connect instance.

Step 3. Run the CloudFormation Template

To make things easy to deploy, we've hosted the default template in UiPath's S3 bucket so all you have to do is create a new stack with it. Alternatively, you can customize the template in this repo.

  1. Open the AWS CloudFormation Stack creator
  2. Set the region to the same region as your Amazon Connect instance. NOTE: Amazon Connect only supports using lambda functions in the same region as your contact center.
  3. Fill in the form with the pertinent data
    • Stack Name - provide a name for your stack
    • EXAMPLE: UiPath-AmazonConnect
    • User Key - provide the UserKey name from step 1.6 above
    • EXAMPLE: GHFabdDEfGHiJkLm0N1QrS2t-3u4vw_XyZ5AB-6cde7Fg
    • Account Logical Name - provide the account name from step 1.6 above
    • EXAMPLE: MyAccountName
    • Tenant Logical Name - provide the tenant name from step 1.6 above
    • EXAMPLE: MyOrchestrator
    • Client Id - provide the clientId name from step 1.6 above
    • EXAMPLE: 8DEv1AMNXczW3y4U15LL3jYf62jK93n5
    • S3 Bucket - NOTE: this must be all lowercase
    • EXAMPLE: uipath-amazonconnect-contactflows
      1. Continue pressing Next for 2 screens.
      2. Check the I acknowledge... checkbox and finally click Create Stack. It should take less than 2 minutes for all the resources to be created.
      3. When the stack creation is complete, click on the Outputs tab and click on the S3BucketForContactFlows link.
      4. Download the two sample contact flows. These will be uploaded to Amazon Connect in the next step.

Here's an example of the completed form: Sample CloudFormation stack details

Step 4. Create the contact flows in Amazon Connect

  1. Open the Amazon Connect console at https://console.aws.amazon.com/connect/.
  2. Add the Lambda Functions to your Amazon Connect Instance by following the AWS documentation. Specifically, you need to add UiPathStartJob, UiPathQueryJob, and UiPathPackInputs.

Adding Lambda Functions to your Amazon Connect Instance

  1. Import the sample contact flows, downloaded in step 3.8 above, into Amazon Connect by following the Amazon Connect documentation
  2. Change the releaseKey and folderId of the processes to launch in the contact flows per the details below:

Inbound

Outbound

Step 5. Configure & test your flows

  1. Associate a phone number with a contact flow
  2. Follow the guidance to associate the chat test settings with a contact flow
  3. Test out the voice or chat experience

Obtaining the folder id

The Folder Id represents the Orchestrator folder your processes are stored in.

  1. Open up a browser and sign into your Cloud Orchestrator instance
  2. Navigate to https://cloud.uipath.com/ACCOUNT/TENANT/odata/Folders where ACCOUNT is your account name and tenant is your tenant name (see step 2.6 above). This will return a JSON blob like the following:
{
  "@odata.context": "https://cloud.uipath.com/ACCOUNT/TENANT/odata/$metadata#Folders",
  "@odata.count": 2,
  "value": [
    {
      "DisplayName": "Default",
      "FullyQualifiedName": "Default",
      "FullyQualifiedNameOrderable": "Default",
      "Description": null,
      "ProvisionType": "Manual",
      "PermissionModel": "InheritFromTenant",
      "ParentId": null,
      "IsActive": true,
      "Id": 12345
    },
    {
      "DisplayName": "HR",
      "FullyQualifiedName": "HR",
      "FullyQualifiedNameOrderable": "HR",
      "Description": null,
      "ProvisionType": "Manual",
      "PermissionModel": "InheritFromTenant",
      "ParentId": null,
      "IsActive": true,
      "Id": 67891
    }
  ]
}
  1. Take the Id field for the folder your processes are stored in. The DisplayName is likely 'Default' like in the example above.

Obtaining a release key

We have provided a helper Lambda function, UiPathQueryRelease, for converting a process name into the release key GUID. You can manually run the lambda from the Lambda Console to get the value you need to provide in the contact flow configuration in step 4.3. The simplest approach is to create a new test event based on the connect-contact-flow-event event template. Below is an example of the input you need to pass the lambda. Note that the process name passed in must match the name found in Orchestrator.

Input Format
{
  "Name": "ContactFlowEvent",
  "Details": {
    "ContactData": {
      "ContactId": "NONE"
    },
    "Parameters": {
        "folderId": "YOUR_FOLDER_ID",,
        "processName": "PROCESSNAME"
    }
  }
}
Input Example
{
  "Name": "ContactFlowEvent",
  "Details": {
    "ContactData": {
      "ContactId": "NONE"
    },
    "Parameters": {
        "folderId": "12345",
        "processName": "BillLookup_MyEnvironment"
    }
  }
}

To post feedback, submit feature ideas, or report bugs, use the Issues section of this GitHub repo.