Businesses are picking up huge gains in productivity through robotic process automation, or RPA. This doesn't refer to machines doing physical labor; the "robots" in this case are software agents. Like the robots on the factory floor, they carry out tasks that otherwise would require dull, repetitive human efforts.
RPA builds on existing GUI-based software. It carries out tasks which an operator would, using the same user interface. The difference is that RPA is much faster, it doesn't make data entry mistakes, and it doesn't get tired.
Unlike other kinds of tools, RPA robots can be set up quickly and don't require knowledge of programming languages. They require scenarios where strict business rules apply. Setting them up may involve advanced techniques such as machine learning. Their actual operation, though, is the straightforward application of business logic.
Related: An Overview of the State of Robotics
The Robots
Robots, also known as clients or agents, carry out RPA tasks. They run under a robot controller, which schedules them or launches them on demand. A robot may carry out a single task, or it may chain together many operations.
A common scenario is to get data from one application, change its format, and use it as input for another application. For instance, it may process forms that users have filled out, enter the field data into another application, and generate an email response acknowledging the submission. The robot runs whenever someone submits a form. It receives the form as input and runs other applications to carry out its tasks.
A robot runs under an account on the system. It has certain permissions and privileges. It can do anything which a person logged in with the same credentials could do.
A robot may use any number of data sources. It could pull information out of a database or extract it from a remote network. Some robots use screen scraping or pull structured data out of a website. Web pages with consistently structured and tagged data are especially amenable to automated treatment. The robot can look for specific tags and attributes to pull out well-defined information, even though the tagging isn't visible to the ordinary user.
Robots need to do error checking. If expected inputs are missing, they might not be able to continue. Depending on the requirements of the process, they can skip over these cases silently or report a problem. They should check for "reasonable" data so that they don't blindly produce absurd results. A well-known and frustrating example of the lack of reasonability checking is the demand for a payment of $0.00. This can happen when the balance due is a fraction of a cent that rounds down and the billing software fails to treat it as a special case.
It's possible to accomplish the same things by writing a script or an application in a suitable computer language. The advantage of RPA is that it doesn't require having formal programming skills or getting into applications' internal features.
Extra features of robots include logging their activities, reporting errors, and generating analytics.
The Controller
The center of an RPA operation is the controller. It manages the installation, deployment, and running of robots. It holds an inventory of available robots and contains the logic for launching them. Some robots run on demand, triggered by the availability of input data or other enabling conditions. Others run on a schedule, looking for work to do each time they run. The controller may throttle the rate at which it launches resource-intensive tasks, or it may schedule them outside peak hours.
Robots may need credentials to access a database or import information from a remote network. The controller needs to provide the password or access key, first making sure that the robot is authorized to access the resource. This is similar to the operation of a password manager.
The controller ensures that the robots comply with all security requirements. It lets the administrator create and manage accounts. Robots are limited to authorized accounts and have access only to the services and data which their function requires. It manages logging options, letting robots record their activity for auditing and analytics.
Robot Development Tools
Development under RPA doesn't require knowing a programming language, but it requires keen analytic thinking and attention to detail to produce a robot that does a reliable job. The developer constructs an automated process out of building blocks, in a way similar to creating a flowchart. The blocks specify calculations, data items, decisions, and user actions.
What's distinctive to RPA is the ability to create actions. Tools have modules for applications that automated processes are likely to use. They let the developer perform actions on data files, such as copying a value to or from a spreadsheet cell.
In some cases, the tool learns by imitation. The user carries out a process step by step, and the tool constructs an action block that will perform those steps on demand.
While the creation of an RPA process doesn't involve writing code, it isn't something which a data entry clerk can simply do without training. RPA development is as specialized a skill as creating processes in a scripting language.
The Benefits of RPA
Some data management tasks are tedious and repetitive. RPA can take over this kind of work, doing it faster than any human operator. Robotic automated processes can run day and night without getting bored or tired. Faster processing means that customers and vendors don't have to wait as long.
RPA doesn't require integration with existing software. The connection is loose and at a high level. Integration at the API level can require multiple software tools to make all the pieces work together.
If there's a sudden and temporary increase in the work to be done, RPA scales up nicely. There's no need to hire and train temporary employees for a week's work.
When people are constantly entering information of the same kind, their attention will wander and they'll make mistakes. A computer process never makes this kind of error.
With good error checking, RPA can do better than people at catching inconsistent and invalid data. The result is more consistent processing. There's less need to fix up data later on.
Some RPA systems use machine learning to supplement explicit error checking. They analyze historical data for what is typical, after which they can flag entries that are outside the expected range.
Inevitably, some people see RPA as a threat to jobs. It can, in fact, result in a reduced need for employees or outsourced contractors. However, the elimination of dull, repetitive tasks can improve the quality of employees' jobs, letting them spend more of their time on helping customers and doing other productive tasks. This improves their per-hour value.
Limitations and Cautions
It's necessary to choose the right jobs to automate. RPA is suitable only for predictable tasks that seldom vary. Even with machine learning, it isn't intended to apply subtle judgments or to change its approach for each instance. Systems with dirty and incomplete data, where it's regularly necessary to improvise or ask questions, aren't a good candidate for RPA.
The quality of a robotic process depends on the quality of the programming. Some managers imagine that RPA is just a matter of having the robots imitate what data entry operators do. In fact, good programming skills are required, even if the act of programming consists of assembling operational blocks rather than writing lines of code.
Scripts work with an application's API, but robots work with its GUI. Software creators try to keep the API consistent so it won't break scripts from one release to the next. User interfaces aren't nearly as stable. A new release may move controls around, rename data fields, and change the sequence of operations. That will break a robot or make it produce invalid results. It's necessary to re-examine an automated process with every new software release and make any changes that the user interface requires.
Adopting RPA
Successful adoption of RPA requires a business plan with specific goals. Piecemeal adoption will result in an inconsistent and wasteful system. Management needs to decide where it will produce the greatest results and what resources it will have to allocate.
Managing RPA requires a significant effort from the IT staff. It needs to have at least one person who is familiar with the concepts and can make the transition a smooth one. If a business tries to automate unsuitable tasks or if the automated tasks aren't well managed, trouble will follow. There will be high error rates, and it will be necessary to roll back to earlier procedures. Robots need to be reviewed and updated whenever an application gets an update.
Security is critical. If intruders can gain control of automated processes, they can steal information in bulk or enter fraudulent data. There are special challenges for automated processes since they run at the user level and not down in the better-protected servers. Strict control over authorization is necessary, and monitoring to catch breaches is obligatory.
It takes a concerted effort to implement RPA properly, but the benefits are significant. Faster processing and lower error rates mean a faster turnaround for vendors and clients. Automation can bring together processes that were running in separate silos, creating greater consistency of data. Employees can spend more time working with customers. The result is a more productive business operation.