Robotic Process Automation (RPA) is the use of software
with Artificial Intelligence (AI) and Machine Learning (ML)
capabilities to handle high-volume,
repeated tasks that previously required humans to perform.
In traditional workflow automation tools, a software developer produces a list of actions to automate a task and interface to the back-end
system using internal application programming interfaces (APIs) or dedicated scripting language. In contrast, RPA systems develop the
action list by watching the user perform that task in the application's graphical user interface (GUI), and then perform the automation
by repeating those tasks directly in the GUI. This can lower the barrier to use of automation in products that might not otherwise feature
APIs for this purpose.
RPA tools have strong technical similarities to graphical user interface testing tools. These tools also automate interactions with the GUI,
and often do so by repeating a set of demonstration actions performed by a user. RPA tools differ from such systems in that they allow data
to be handled in and between multiple applications, for instance, receiving email containing an invoice, extracting the data,
and then typing that into a bookkeep.