What is Robotic Process Automation (RPA)?
If you want the Wikipedia definition, here you go:
a form of business process automation technology based on metaphorical software robots (bots) or on artificial intelligence (AI)/digital workers. It is sometimes referred to as software robotics (not to be confused with robot software).https://en.wikipedia.org/wiki/Robotic_process_automation
Now, let me give it to you in more practical terms. RPA is the convergence of these technologies:
- Prebuilt code modules that can be combined using drag-and-drop, workflow builders
- Document processing (e.g. PDF libraries, MS Office libraries, etc.)
- Common programming flow control (e.g. for loops, if/else, try/catch, etc.)
- Logging facilities
- A wide variety of plug-n-play integrations/interfaces to other systems (e.g. Jira, SAP, Office365, Microsoft Dynamics 365, e-mail platforms, etc.)
- Enterprise architecture features (message queues, storage buckets, schedulers)
- A strong suite of UI automation tools (e.g. web drivers, desktop drivers, point & click selection of UI elements on the screen)
- The ability to custom code where needed
Boiled down to one sentence: RPA is a low-code tool that combines UI automation, enterprise architecture tools, platform integrations, and an enormous selection of pre-built, drag-and-drop code modules.
I have only worked with UiPath, but I suspect most offerings lean heavily on the flow chart paradigm for their IDE interfaces. UiPath allows you to drag and drop the various code blocks into sequences, flow charts, or a “state machine” (similar to the flow chart).
Indicators of good use cases for RPA
There are a few factors to consider when identifying opportunities for leveraging RPA. Because I have attended many courses offered by UiPath, I will borrow heavily from their information. Most of it is common sense, but they have already done the work of organizing it.
First, does the process occupy a lot of employee time? This is the key consideration because if you will not be freeing up employees from this task, you will not be gaining any savings by leveraging RPA. Per UiPath, is the task “time-consuming; impacted by changes in transactional demand; and, most importantly, highly dependent on employee attention and involvement.”
You can automate extremely complex processes. Examples include those tasks that interface with a myriad of systems, require advanced decision-making, involve multiple different human interventions, and span hundreds or thousands of steps.
The catch with these sorts of processes is automating them will be very difficult, very complex, very time-consuming, and very expensive. It is advisable to start with simpler processes or to dip your toes in the metaphorical water.
Other complexity related considerations include the scale of the application (number of screens, interfaces, use cases), type of application (web and desktop are well-suited, whereas, the mainframe is not), and the business logic of the process (e.g. tax codes are likely more complex that invoice processing).
You might also call this the “definability” of the process. Per UiPath’s own training course, four criteria should be factored into deciding if a process is well-suited for RPA:
- Is it rule-based? Does the process have a well-defined and documented set of rules to follow for performing it.
- Is it repetitive? In other words, do the steps remain the same for every iteration of the process? If a human must perform the process because every step may differ based on various (probably ambiguous) criteria, then it is not well-suited for RPA.
- Standard input? Are the inputs structured or easily parsed? Processes that start with forms or other standard documents as input are well-suited. Processes that start with unstructured data like videos, pictures, or audio recordings are less suited.
- Is the process stable? If the process is unlikely to change for the foreseeable future, it is a good candidate. RPA has a high, up-front investment and should not be considered for processes that change regularly.
Leading RPA Vendors
As you might suspect, there are many RPA offerings out there; however, only a few of these are truly complete and proven solutions. By complete, I mean they satisfy the list of features and capabilities I mentioned at the beginning of this document.
The top 3 competitors in the market, at this time, are (https://medium.com/@vratulmittal/the-top-20-robotics-process-automation-rpa-platforms-2019-250e27ca2731):
- Automation Anywhere
One additional tool these platforms offer is a “process discovery” application. This is a tool that runs on users’ machines and helps identify repetitive tasks that are candidates for automation.
My RPA Application
As a case study, I will describe the project I worked on using UiPath’s Studio and Orchestrator platform.
The US Department of Defense grants individuals access to its IT systems (i.e. enterprise applications or networks) only after the applicant has submitted a form called the DD2875 System Authorization Access Request (affectionately known as the SAAR – pronounced like “sar”). This SAAR form must be accompanied by one (sometimes two) training certificates. Each SAAR must be affixed with at least 5 digital signatures.
There are myriad validation rules that must be satisfied by the SAAR and companion training certificates. For example, the certificates must be dated within the last year but not within 30 days of expiring and must have the applicant’s name on them. The date field at the top of the SAAR form must match the date of the applicant’s digital signature. The values of some fields depend on what system the applicant is applying for access to (e.g. mainframe versus web applications). Some fields must contain one of a predefined set of possible values. Some check boxes must be checked while others must not and the status of these checkboxes dictate the acceptable values of other fields. I could keep going…
This validation has been done manually for many years, and when an application has errors, a helpdesk agent must respond to the applicant with the list of errors and ask for them to resubmit. If an application is free of errors, the validator must upload the SAAR and certificate(s) to a SharePoint repository for government personnel to review and adjudicate. If approved, the validator must go into the system, activate the applicant’s account, and then e-mail the applicant with the good news.
It’s not hard to imagine how tedious and time-consuming this process is! Even worse, this is also a very error-prone process when performed by humans.
At this point, I hope you are mentally screaming “THERE MUST BE A BETTER WAY!” You are correct and, I’m sure, it’s no surprise that the solution I found was RPA.
The scope of my solution covers all of this process up to the point that the SAAR and certificate(s) are uploaded to SharePoint. RPA could certainly handle the rest of the process but I left that for another day.
Two Robots: Attended and Unattended
One consideration you must make when introducing RPA to an organization is change management. By this, I mean how comfortable will people be with it. In this case study, the government was fully on-board but the help desk agents were concerned about what their roles would be in the future. Additionally, there was a question of the accuracy of the RPA solution. The compromise was to leave the helpdesk agents in the loop for a short time until the RPA solution had proven itself and any bugs had been worked out.
To accommodate this human in the loop, I broke my RPA solution’s architecture into two components:
- SAAR Validator: an unattended robot that validates SAAR applications
- SAAR Reviewer: an attended robot that presents valid applications to a helpdesk agent before they are forwarded to the government (this serves as a human quality assurance check)
Obviously, this is only a minimal improvement over the original manual approach but it does screen out bad SAARs. The upside is it allows the experts to identify shortcomings of the robot so they can be fixed. Eventually, the human element can be removed once the robot has a high enough accuracy rate.
If you search the internet for a definition of attended and unattended robots, you will get an ambiguous and half-formed answer. From my research and experience, it boils down to this:
- Attended: Must run on a machine that already has a user logged into it. All actions performed by the robot will be performed as that user and with his/her privileges.
- Unattended: Must log onto a machine with its own account. All actions performed by the robot will be performed as its user and with its privileges.
The SAAR Validator robot gets executed by the orchestrator on a scheduled basis. It then:
- Polls a group mailbox that applicants submit their SAAR applications to
- Downloads attachments from the e-mails and determines if they are SAAR forms, certificates, or other
- Extracts SAAR form fields to a key-value map and extracts certificate text
- Confirms all necessary documents are provided
- Validates SAAR forms and certificates
- If the application is:
- responds to the applicant with a list of errors
- deletes attachments from the local machine
- moves the e-mail to a reject folder
- uploads the attachments to a cloud storage bucket
- adds a task to an enterprise queue
- deletes attachments from the local machine
- moves the e-mail to an accept folder
The SAAR Reviewer robot gets executed by the orchestrator whenever new items are added to the queue. It is executed on the first available attended machines (a machine with a helpdesk agent logged in). It then:
- Pops a new item off the queue
- Downloads the attachments for that item from the cloud storage bucket
- Displays a window to the agent with each document listed – the agent can click on the documents to quickly view them
- If the agent:
- Approves the application:
- The robot connects to SharePoint and uploads the files to a SharePoint list in a folder for that specific application
- E-mails the government reviewers
- Deletes the locally stored files
- Deletes the cloud-stored files
- Rejects the application:
- The robot accepts an explanation from the helpdesk agent
- E-mails the applicant with the message
- Deletes the locally stored files
- Deletes the cloud-stored files
- Approves the application:
Most Interesting Points
The truly amazing aspects of this whole case study are how easily UiPath’s product interfaces with all the disparate systems (e.g. Windows, SharePoint, Exchange, Internet Explorer, etc.). Due to PKI authentication, the solution uses browser automation to work with SharePoint at the moment. This allows the helpdesk agent to use his/her credentials when prompted. In the future, system PKI credentials could be created and used to allow UiPath to directly connect to SharePoint via web APIs.
Another great aspect of this solution is how it’s developed as a series of flow diagrams. From a high-level, it is literally a direct mapping of the business process to machine-executable instructions.
Finally, my favorite features were the enterprise components (message queues, distributed/cloud storage, scheduled tasks).
Most Problematic Points
One of the most difficult aspects of this solution was working with PDFs. There were no freely available solutions for extracting Adobe XFA form data in a simple manner. iText provides a crude mechanism for this. I had to write a custom UiPath Action in C# that leverages iText to get the data and supply it to other UiPath actions as a Dictionary structure.
This was the only custom coding I had to perform. The lesson here is you may need some more advanced programming skills for more complex use cases but, out of all I accomplished with UiPath, this was the only time I had to code any custom components.
As an addendum to that statement, you will need to know basic programming skills to use UiPath. Period. The drag-n-drop components require simple VB.NET or C#.NET expressions to be configured (e.g. an If block might have a condition like isUSCitizen == true).
Is RPA right for you?
If you find your organization has a well-documented process and business rules that are being performed manually, it is probably ripe for the introduction of RPA. Know that the up-front investment is a little expensive (both in time and money) but the long-term return on that investment makes it worthwhile.
Depending on what type of work you need to automate, you may want to investigate other offerings besides UiPath. For example, if you need to process semi-structured data (like scans of invoice forms), Microsoft has stronger capabilities there. Their machine learning platform can be trained to detect the fields on scans of forms and apply OCR to extract the textual information.
Regardless, I suggest you sign up for the trial and give it a try. It was a tremendous amount of fun building my solution and very rewarding to see the robots in action.
Will it replace my workers?
No. A resounding, emphatic NO. This is one of the most common change management issues organizations have to handle. Consider my case study: the helpdesk agents are now free to focus on helping. They get to do what they do best — which is not validating multiple PDFs against hundreds of interrelated business rules.
So what does RPA get you? It frees your workers from mundane, repetitive, tedious, mind-numbing, and demotivating tasks so they can get back to doing what they love. Ultimately, the executive is now able to get more quality work out of their most valuable assets, their employees, while those employees get to do the things they were originally hired for.
Clinton is a full-time Software Developer currently working for CGI Federal, Inc. He spends most his days building Java web applications using tools like Spring MVC, Java Server Faces, and VueJS. In his free time, he likes to dabble in Golang, Hadoop, and other cool technologies. Clinton has been married to his wonderful wife Ashley for 8 years. Together, they have a super-handsome, unbelievably cute (no bias here folks) 6 year old son, Andrew.