My First Encounter with RPA
Before joining Metis as a data science student, I spent my time as an Associate in the Assurance practice at PwC. I joined the firm fresh out of college and I imagined I would spend the majority of my time in Excel, auditing various client-related documents, ticking, tieing, and checking boxes. While the monotony of audit proved true on occasion, I was pleasantly surprised that firm leadership heavily pushed innovation and creativity — words that previously translated to “fraud” in the accounting industry, now took on new meaning.
The firm began its digital transformation journey around the same time I onboarded in 2018. This entailed upskilling staff in digital tools, software, and methodologies. The goal was multifold — to automate the boring work, cut costs (in the form of labor hours), elevate our product, and provide better overall value to our clients. One of the tools the firm was heavily invested in was Robotic Process Automation (RPA), specifically UiPath — a low-code RPA software solution.
What is RPA?
“Robotic Process Automation is the technology that allows anyone today to configure computer software, or a “robot” to emulate and integrate the actions of a human interacting within digital systems to execute a business process. RPA robots utilize the user interface to capture data and manipulate applications just like humans do. They interpret, trigger responses and communicate with other systems in order to perform on a vast variety of repetitive tasks.” — UiPath
To summarize, RPA bots take control of your computer (mouse and keyboard) and do the boring repetitive tasks that we humans are too often stuck with. They do so through a series of conditions, loops, and commands, coded to control the graphic user interface. Control of the GUI is done through movements/clicks of the mouse, keystrokes, hot-keys, and screen image recognition.
What can RPA do?
RPA can do most things a human can. To name a few:
- Log into applications
- Move files and folders
- Make calculations
- Web scrape
- Read/write to databases
- Extract and process content from PDFs/emails/forms
The Main Problem with RPA
The main problem with RPA is that GUIs often update and change, and when they do, the bot needs to change alongside with them. Firms that invest heavily in bots might be hesitant to innovate and invest in new software if they have already invested in an RPA ecosystem that heavily integrates with the GUIs of legacy software.
Bots can also be clunky and slow — they take over your computer, prohibiting one to work while running. If you get a notification on your laptop while a bot is running, it could disrupt the process.
For these reasons, APIs are highly preferred if they are available in your pipeline or process.
Benefits of RPA
RPA does have use cases! There are several reasons why firms are including RPA in their digital transformation toolbox:
- Bots are cheaper than manual labor in the long run
- Bots are accurate and consistent, they don’t make human errors
- They can work across systems that are otherwise not integrated
- There are numerous low/no-code solutions, enabling citizen-led innovation
- In a highly regulated industry, bots leave an audit trail that otherwise may not exist
UiPath, Automation Anywhere, and blueprism are the clear winners in this space. These programs are expensive and geared toward enterprises that are looking to level-up their automation game. Some free community versions may be useful to the average data scientist in their pipeline, but the below RPA Python packages may prove to be more intuitive.
There are several Python RPA packages to choose from:
- PyAutoGUI (Windows, Linux, macOS)
- pywinauto (Windows only)
- pynput (Windows, macOS)
- TagUI/RPA-Python (Windows, Linux, macOS)
In the below Jupyter Notebook, I discuss one of the more popular packages — PyAutoGUI. I walk through setting up PyAutoGUI, popular functions, and a demo. The demo shows a use case where a user needs to download multiple monthly building permit text files from the Census Bureau — you can see the bot run in the video below.
Intelligent Automation (IA) is a hot buzzword in the industry. IA is RPA integrated with machine learning algorithms to execute entire business processes with context, rather than as a series of discrete tasks.
Online customer service chatbots are a token example of IA in action — these bots replace human tasks, but rather than performing the same task repetitively (this type of customer service would certainly result in terrible Yelp reviews), these chatbots take advantage of Natural Language Processing algorithms in the background. Chatbots are often integrated with business systems to open support tickets, provide the customer with account information, and complete other front-end business processes.
RPA and IA certainly have their use cases and could be the magical missing link in a gruelingly manual business process. However, businesses should consider all solutions before hopping into a bot frenzy, as RPA does have a considerable number of downsides.