Robotic Process Automation

RPA Point of View and Trends

By Allen Chan posted Wed February 10, 2021 05:40 PM

Jerry Cuomo (CTO, IBM Automation) and I recently published a podcast as part of the IBM Art of Automation series to discuss my point of view on Robotic Process Automation. What it is, what it is good at, current trends and what's next?  Here is the link to the podcast. 
After the pod cast, I elaborated more on the discussion with some more examples.  Let me know what you think.
What exactly is robotic process automation? How does it differ from writing a script? Can you give a simple example?
Robotic Process Automation or RPA for short is a program (in this case, it is a software robot) to mimic human users' interaction with their desktop to perform tasks - e.g. copying information from an excel spreadsheet to a form or perform a set of tasks on a website. While we assume in today's digital world, a lot of human tasks have been automated, there is still a large portion of our daily work that requires manual labor and many of those are repetitive. Imagine if you are a data clerk responsible for processing incoming invoices sent to you by email or fax, you will have to read the incoming invoice - it could be a PDF document, or a fax image, and enter the order manually into your ordering application. If this is a new customer making the order, you might also have to manually create the customer account. If we have RPA, the robot can leverage various OCR (Optical Character Recognition) technique or intelligent document processing technique to read the invoice, and then manipulate the mouse and keyboard on the screen to enter the information into the ordering application.
One key difference between RPA and a regular script or API is RPA is not limited to command-line or API only, but also the user interfaces. Despite advances in various modernization techniques, there are still a lot of legacy applications (CICS) or native applications (e.g. Windows-based applications) that do not have API or command lines. In some cases, the user just doesn't have access to those API (imagine you're using a 3rd party web-based application - e.g. a banking website, a bookstore) - chances of them giving regular users access to their backend API is slim. To automate tasks involving those systems, you need RPA.  
Who is RPA for? What are its boundaries? (I.e., what is it good for? What not?)
To identify if there are opportunities to use RPA within your organization, there are 3 places we can go first:
  1. Areas where you have a medium to a large population of task workers that are doing largely manual work - e.g. order processing from emails, record reconciliation between systems, etc.
  2. There are also opportunities to use RPA as the solution to integrate systems that do not have API or where API is not accessible. Typically we would have considered those situations as not automatable due to lack of APIs, but with RPA, it is now possible.
  3. RPA can also help to automate some portion of manual steps as part of a bigger task. I generally refer to those as micro-tasks - e.g. as part of preparing a sales report, the sales executive might need to copy a bunch of data from different marketing websites. While the sales strategy would still require the sales executive's intuition and experience, copying the data or formatting the report can be done more routinely via the use of RPA.
What are the limitations of RPA?
  1. RPA - or Robotic "Process" Automation - is a misnomer. It should have been called Robotic Task Automation. RPA is good in automating a task, but it is not intended to be used to orchestrate work across multiple peoples or multiple systems. One would typically use a Business Process Management software like IBM Business Automation Workflow for that purpose. 
  2. There are also many tasks that require human cognition and intuition. RPA bots are programs, they can make use of AI to help them to make sense of the world, but they cannot think by themselves. Some RPA vendors might lead you to believe RPA can solve all problems but in reality, we also ran into customers saying they have misused RPA and are now realizing they need a more holistic end-to-end view on their automation solutions.
  3. RPA does not replace API integration. In places where you have API and can use API, it is almost always more robust to use API-based integration, particularly in high throughput and large scale operations.
How and where will AI help? Can you please give an example of RPA in action with AI?
There are a couple of areas where RPA makes use of AI. Fundamentally what RPA tries to do is to mimic the human's actions as they are performing their tasks. There are 4 examples:
  1. Reading unstructured or semi-structured documents - e.g. invoices, scanned identity cards, handwritten notes, or email. In those cases, RPA can make use of basic Optical Character Recognition software but for the robot to be smart, it will have to use a more advanced content extraction system like the IBM Automation Document Processing capabilities where it uses deep-learning technique to extract contextual information from invoices or id cards - e.g. getting the customer address, item part numbers or even perform automated correction of information.
  2. Integration with Chat and Voice. A typical example is using RPA to build chatbots or voice bots - integrating with existing services like IBM Watson Assistant.
  3. Reading the screen using computer vision - understand the User interface (e.g. Windows, Scrollbar, Button) instead of relying on traditional screen pixel coordinates.
  4. Task Mining to create Bots. This is a relatively new area - the idea is if we can observe how people work, we might be able to create a robot to automate the work. This also gets into the concept of "learning". This is obviously very desirable and I see this as an active area of research.
What’s next?
RPA as a concept is very powerful as it allows enterprises to bridge from their legacy or existing systems into the more modern API economy without requiring them to modernize their platforms first. I see several areas where RPA will evolve:
  1. The robot will get smarter and will understand the world better by leveraging different AI techniques like natural language understanding, computer vision, document extraction. This allows RPA bots to help with more tasks.
  2. Everyone will have a bot on their desktop. I see companies deploying bots on every employee's desktop to help everyone in the organization to automate part of their everyday work.
  3. RPA being part of an overall Automation solution with tighter integration to workflow management systems and process mining software to identify opportunities where bots can be used. 
  4. Creation of the Bot will get much easier than today - there will be better recording capabilities, more intrinsic use of computer vision, and leveraging of task mining technique to create bots.
We are busy at work in IBM on the next evolution of RPA. Stay Tuned.



23 days ago

Good insights!

Tue February 16, 2021 07:25 AM

Thanks for an excellent article on RPA.  I would just add that before embarking on an RPA project using an internal website, the customer should perform a cost-benefit analysis on whether it would be more economical to build an API to the system rather than using RPA.