The global robotic process automation market size was valued at USD 1.1 billion in 2019 and is anticipated to witness a CAGR of 33.6% from 2020 to 2027.
Grand View Research
Global spends on RPA programs are being projected to rise to 2.4 billion USD by 2022.
No doubt Robotic Process Automation is taking the front seat for the majority investments of the enterprises in the coming years. From Deloitte’s third Annual Global RPA Survey Report, 35 percent of more than four hundred executives responsible for running transactional operations such as global business services, shared services, finance, procurement, HR, marketing, and operations agreed to “Focus on continuous improvement”, 24 percent to “Increase level of automation” and 17 percent to “Develop analytics capabilities”. Given the high impact of RPA on these top-three priorities, continued investment in its adoption is not surprising.
Organizations are seeking to embrace RPA solutions swiftly while aspiring to realize productivity gains with minimal CaPex (capital expenditure). However, good intentions and promising technologies alone cannot yield the desired results. Organizations are facing teething issues while scaling their RPA implementations from individual business process automation to enterprise-grade RPA. These challenges are classified into three themes
- bot instability
- low bot velocity
- code base complexity issues
Excerpts from Sharad Shukla’s Blog
Most popular and used solutions for RPA, like UIPath, Blue Prism starts like POCs / experiments by the executives or business users in organisations and later come out to be hard to maintain, support and develop complex business workflows. Even with the concepts like Microbots Architechture for RPA, popular solutions fails to meet sweet spot of price vs performance ratio with the growing business needs.
Now let’s calculate approximate running cost for using popular RPA solution provider like UIPath. As the pricing has not been clearly mentioned on their website. Following pricing information has been taken from one of popular learning platform’s forum thread. Also we will try to understand why there has been some concerns over this. Not just UIPath, also compare the cost of developing, deploying, maintaining Blue Prism solutions from this detailed post.
Here we are going to examine the approach to design, develop, deployment and maintainance for a very simple requirement posed in one of the support tickets of UIPath.
Let’s try to chalk out the requirements. The customer stated in the final post of the thread that he is very happy with 4 un-attended bots, governed by one orchestrator (included in the initial diagram) with UIPath Studio running on the same Windows server with 16GB of RAM (as was the discussion in the earlier posts in the same thread).
With the pricing model of UIPath,
- licenses for four bots costs around $8000 x 4 = $32000/year
- orchestrator around $20000/year
- the Studio around $2000/year at the minimum price
- the Windows Server 2016 (assuming as the customer had one bot previously on the server) comes at around $770 per two cores, plus maintaintenance $5000 per year at minimum.
So, in total almost $62000 per year to process emails from customers and creating various tasks to be performed based on the inputs in the mail.
May be the bots here are responding the customers with some canned response also, without knowing the sentiment of the customers. Here I’ve excluded the development cost for the workflows to be run on the bots. But surely we will come back to it later. And being completely driven by the UI, it’s not hard to imagine that preparing a proper and correct workflow, it would require jugglery of loops and if-else conditions, tricky manipulation of available limited options and of-course lot of frustrating to-n-fro conversations with customer supports.
Now, come to the solution with custom made micro-apps using AI services from cloud providers like Azure, AWS, Google.
Ofcourse I’m slightly biased towards Microsoft Platform, as I’ve been working for a long time with C# and Microsoft Azure. Microsoft also have come a long way since the days of being closed with a proprietary operating system like Windows XP. Now we can develop, build and deploy with .Net Core on cross platform, means same program can run on Windows, Linux and Mac, all major OS platforms. And .Net Core’s performance on Linux is quite impressive(sometimes it’s even better than C++). And Azure though started late, emerged with feature rich offerrings, more availability zones and of-course lower priced services among three. And among the top three runners showing most growth rate and second in customer preference.
Let’s figure out the solution we would need to cater the requirement of the customer.
First we need a service to read the mails. There are plenty of examples like this to read mails from exchange servers. By using these we would be able to develop a decent program to read incoming mails from a particular inbox. This mail reader application would just queue the mails into a Email Processing Queue.
Specifics of the tasks created/executed by the UIPath robot is not very clear from the thread. But in the flow diagram given by the customer, may be along with responding customer with a mail, it’s creating Excel reports and feeding data to some databases.
For our solution let’s make the email processing a bit more complex. Suppose along with customer support requests, we are also getting invoices from the vendors. So, our mail-receiver application has to first sort through the received mails like a post office. This sorting can be done first by checking the mail address the mail has been sent to. But there may be some emails sent by the customers to wrong email address. So the application also has to understand the intent of the email to sort correctly. To understand this “Intent” / “Emotion” we can use Azure Text Analytics Service. It can send sentiment and classification of the words written in a piece of text.
Also the invoice mails may contain scanned images of physical bills, challans etc. We have to persist relevant data into the invoice database to create reports. For this we can use Azure Computer Vision. This service can respond back with the texts available in the image. Once we get the information we can persist the info in the invoice database.
From the customer support mail after understanding the intent or the request itself, the application itself can create tasks / orders to work with or process the invoices from vendors.
In total we need 6 micro-services.
- Email Reader Micro-Service: This would just read the incoming mails and put them into a processing queue
- Email Queue Processing Micro-Service: This would sort through the mails and put into department specific queue. While sorting this would call Text Analytics Service, get response, looks for specific words to analyse to put the mail into correct departments’ queue. It also attaches the response with the email while putting into the department queues for future references.
- Accounts Queue Processing Micro-Service: This would get the mail, download all the attachments if there be any. Send the images to Azure OCR API, get relevant information, persist the relevant information into the DB, revert back with one email to the vendor for some more supporting documents including the status of the raised invoice.
- Customer Support Processing Micro-Service: From the intent of the mail received from the Azure Text Service, create proper order / task for the internal team to work with, or if possible send a mail to the customer containing some relevant troubleshooting information.
- Customer Relations Micro-Service: For this we are planning for a very simple workflow. It would only send emails on customer’s birthdays / anniversaries. Also it can take responsibilities to send pacifier mails / offers to customers with long standing issues.
- Email Sender Micro-Service: This is a very simple application which can only send emails.
Now let’s understand the deployment and interactions among these with the following diagram.
All these six microservices can be easily deployed on a five node Kubernetes Cluster on Azure with 2 cores and 16 GB of RAM running Linux OS (Azure deploys with Ubuntu). On East US 2 region the said configuration comes at around $110/month each node. So, running cost of the whole solution comes at around $550/month, accumulating $6600/year. No license cost or other hidden costs. And this cluster would be much more powerful than the server with 16 GB RAM running 4 bots, orchestrator and studio.
Let’s talk about pros and cons of two approaches.
- Easy to start with
- Requires low skill developers to develop and maintain
- Running (mainly license) cost is quite large
- Reusability of bot code is almost zero, making support also quite expensive
- Low bot speed
- Bot instability
- Low OPEX
- Being microservice, extremely extensible
- Needs better planning, design and more skilled developers. But that compensates with the ongoing OPEX of the solution within two to three years.
To conclude, ofcourse starting RPA with MicroServices has cost. But compare it with the maintenance and running cost. And if RPA needs complex workflow with lot of touchpoints, like cloud sevices from Salesforce, Oracle or needs integrations with AI services or needs real time processing (this can be done with CEP on Spark clusters), it’s always better to opt for MicroServices.