How We Built a Robotic Office Manager
By: Chris Holland
Tags: Business Automation, Rpa Tools, Automation, Efficiency, Artificial Intelligence

Robotic Process Automation (RPA) is a modern platform for automating business tasks. Unlike traditional automation, RPA uses artificial intelligence (AI) to create intelligent robots that perform tedious tasks much more quickly and accurately than a human worker.

Despite the headlines, RPA is not here to put employees out of work, but rather to automate tedious tasks that take valuable time away from more important work.

RPA in Action

In our company, payroll and invoices have always been a tedious task. Many of our employees are contracted to other companies or working remotely, which results in having to track billable hours for dozens of clients. In the past, our Office Manager would review the timesheets weekly to find the employees who had not yet entered all their hours; Then, she would manually remind them to enter their hours so she could process the invoices.

With RPA, this chore is a thing of the past. With a single click, we can now start our robot that scrapes the information in the timesheet, finds everyone who entered less than their weekly hours, then sends them a polite email reminding them to do so. A process that once took up to 30 minutes now takes only a few seconds with much higher accuracy.

Once hours are logged for the week, a secondary robot can process the billable hours and create invoices to be sent to the clients.

What We Used

To build our robot, we used UiPath, which is a leader in RPA software and one of the only platforms with a free community version. UiPath offers a free online academy with tutorials and sample projects to teach newcomers about creating RPA robots. This academy helped tremendously in our robot development.

RPA software contains tools and utilities that both provide the control flow and structures of traditional programming, along with higher-level functionality such as screen scraping, opening applications, and sending emails. Therefore, the process of creating a robot is similar to programming, but far less technical.

Benefits

Implementing RPA into your company’s workforce has countless benefits. Here are our top three reasons:

Time

By implementing a robot to track timesheets, we were able to save our Office Manager at least 30 minutes each week. 30 minutes overall may not seem like much, but it’s only one example of a task we automated. Processing invoices and even scheduling staff events can all be automated and save your employees a far greater amount of time. Automating these tedious tasks allows you to use that time for more important and meaningful work, while hours of work are completed in the background during the workday. By automating tedious office tasks, you will have a larger output of work each week.

Money

At the end of the week, entire days of work will be done automatically by a “worker” you don’t have to pay. By eliminating these time-consuming tasks from your employee’s workload, they will be more productive and therefore fewer new hires will be necessary.

Accuracy

Well made robots do only what they are programmed to, nothing else. A robot will perform its designated task without any blunder a human worker might make. For example, in our case, an employee who hasn’t entered all their hours in a timesheet could be overlooked or reminder emails could be too low of a priority to be sent. RPA is a great option for tasks that are repetitive in nature and prone to human error, such as tasks that involve data entry and analysis.

How We Made It

Creating RPA robots is a task that could be undertaken by many; however, having a background in programming is useful for understanding the program architecture, and implementing the small code fragments throughout. RPA robots are built in the form of flowcharts and sequences so you can “drag and drop” functionality into an order that will perform a designated task. There are hundreds of functionalities to work with ranging from simple programming concepts like loops and if/else statements to more sophisticated tools that employ the use of AI, like screen scraping and finding UI elements on the screen.

Our Timesheet Robot consists of three sections, each of which performs a small task. In this paper, I will explain the creation of the Timesheet Robot to demonstrate the simplicity of creating RPA robots that will perform the work tasks you despise.

Open the Timesheet and Scrape the Data

First, the robot will open a browser and navigate to the web application in which employees time is tracked. By using a couple of lines of Visual Basic code, the robot finds the start and end date of the current work week and places those dates in the URL to open a report specified only for days within those two dates.

' First day (Monday) of the current work week

DateTime.Now.AddDays(-1*(7 + (DateTime.Now.DayOfWeek — DayOfWeek .Monday)) mod 7).Date.ToString ' Last day (Friday of the current work week

Today.AddDays((Today.DayOfWeek - DayOfWeek.Friday)*-1).ToString

The robot then selects the appropriate options within the reporting feature, which presents a spreadsheet of all the employee hours. While creating the bot, you can identify which options to select on the screen. Then, the robot will still be able to select the correct icon even if the position of the page moves.

The robot then scrapes the data from this table and saves it into a DataTable object within UiPath. The data scraping functionality can be trained by the user in a simple manner of indicating the first and last rows of a table while creating the robot. The AI in the data scraper will then find all of the data in the table and save it into a DataTable in UiPath.

Search Data Table for People Short of Time

The timesheet is now stored in a DataTable organized by the employee name and the total hours they worked in a week. Rows in the DataTable are now looped through. If an entry in the “Hours” column that is under 40 is found, the corresponding employee in the “Name” column will be emailed to remind them to enter all of their hours.

Email Each Person Found

Unfortunately, the timesheet does not contain the employee’s email address. Once an employee with fewer than 40 hours is found, their name will be used to look up an email address in an employee contact CSV file.

Once the email address is located, the robot uses a useful UiPath function that facilitates communication with an SMTP server. In our case, we used the Gmail server (smtp.gmail.com). In this function, we can format the message that will be sent to the employees, choose the account to send it from, and much more.

Once all of the employees have been emailed, the process is complete and the robot terminates.

Processing Invoices

Another robot currently in the works is a robot to process invoices to the clients. The robot will scrape the billable hours to each client and then open the application to process and send the invoices. Based on the client's name scraped from the timesheet, the robot will lookup the respective email address in a client list and then enter the appropriate amount to invoice, then send the bill.

Next Steps

In this short blog post, I outlined just one of the RPA robots we have created and use, along with our current project. Automating the repetitive tasks in your workplace is a great option to ensure accuracy in the details of these tasks and boost the productivity of human resources. If you are looking to eliminate tedious tasks that take up too much time in your workday, RPA is an option you should consider.