Kofax RPA
From December 2019 to current

Pilot
I was the technical lead on the implementation and roll-out of the Kofax RPA system within a large NHS trust. This involved the design of system architecture, implementation of the system itself, and the introduction of several automated business processes within the organisation, resulting in a successful pilot.
Setting up the system required the configuration of several server technologies, including Apache Tomcat, Microsoft IIS, Microsoft SQL Server, SQL Server Reporting Services, industry standard TLS encryption, multiple Desktop Automation devices and many others.
I was also responsible for the development of several proof-of-concept robots, and introduced standard development processes for an RPA team to follow.
Business as Usual
My day to day responsibilities include:
- Routine maintenance and monitoring of the entire RPA system
- Checking various system reports
- Fixing technical issues
- Overseeing server updates and patching
- Responding to user queries
- Managing requests for new robots and changes
- Continued development of new robots, improvements and changes
When developing RPA robots, I am responsible for driving business change in other departments and encouraging end users to optimise their existing manual processes. This has led to the realisation of many benefits, including:
- Improved patient care
- Time cost savings
- Improved data quality
- Consistency across multiple hospital sites
Robots
Extending The System
To extend the RPA system, and to more easily integrate with other systems within the organisation, I have developed several programs, services and interfaces:
Technologies
During the implementation of this system, I have used many different technologies for different problems and tasks. While Kofax RPA is great for developing automations, additional technologies were understandably required in order to meet the complex requirements of the organisation, and to ensure a system that was deemed fit for purpose.
Microsoft .NET Framework / C#
I have extensively used the .NET Framework throughout the RPA system as a go-to framework for most development tasks. This includes several Windows services, automations and maintenance tasks.
I also found that while the toolkit provided by Kofax RPA is great for automating tasks where no back-end interface is available (i.e. Desktop Automation), it did struggle with complex processing and data gathering tasks that would be more suited to a scripting or programming language. To work around this, I have used the .NET Framework wherever possible to improve performance and efficiency.
Microsoft SQL Server
As with many other systems, the RPA system also uses a Microsoft SQL Server database. As a result, I have gained several years of experience working with T-SQL and managing various Microsoft SQL Servers.
Microsoft IIS
I have used Microsoft Internet Information Services (IIS) for hosting various different websites and services in the past. In Kofax RPA, I used IIS in some automations to develop .NET forms and workflow applications.
Apache Tomcat
The Kofax RPA Management Console runs in an Apache Tomcat environment. During the implementation of the system, I was responsible for the installation and configuration of Apache Tomcat and the RPA Management Console.
Nginx
To improve security, I have used Nginx as a reverse proxy to encrypt any HTTP services wherever HTTPS isn’t available or feasible. As a result, this has become standard good practice within the team, ensuring that HTTP is not used anywhere within the RPA system.
HL7
I developed the HL7Receiver for the RPA system, which is a Windows service that provides real-time patient information to the RPA database, via an HL7 interface. This is something that most clinical systems within the organisation have, and has proven to be invaluable when developing robots that require access to real-time patient data.
OpenSSL
The RPA system has several Desktop Automation servers where robots are able to perform actions in a desktop environment. For additional security, I decided to use unique self-signed certificates, however this resulted in a complex renewal process. For example, here’s a diagram illustrating just one set of certificates:

I used OpenSSL to generate these certificates, and later developed the RPADACertificateRenewal script, which completely automates the renewal process.
Leave a Reply