Our client is an end-to-end process intelligence provider that delivers unique workflow automation solutions. The company’s primary mission is to help organizations in streamlining business operations and productivity. Our client achieves this by providing enterprise-level automation solutions that transform day-to-day processes. Their software is designed to be intuitively understandable and easy-to-use, and provides considerable benefits to businesses across industries, no matter the domain and size.
The client’s main product is an RPA solution helping organizations streamline resource-intense manual work.
Abto Software has entered the cooperation to handle multiple issues negatively affecting customer satisfaction. Having conducted in-depth investigation, we found that the provided platform is outdated, unstable, inflexible, and complicated to deploy and maintain.
The partnership has resulted in successful software modernization streamlining overall customer satisfaction and profitability.
How the solution works
The product is an RPA solution that provides both automation and additional, optional guidance for employees. By leveraging artificial intelligence, the solution reduces errors, increases quality of the information processed, improves speed and efficiency, and, accordingly, maximizes productivity.
Let’s say, the customer is using Excel spreadsheets to create monthly invoices:
- When the web application is opened, the solution triggers the guide mode
– The user gets asked if guidance is wanted
– The robot indicates necessary workflow steps to create the invoice
- When the new invoice is created, the solution triggers the automation mode
– The users gets asked if they would prefer filling in order data by themselves or automatically
– The robot loads required order data from the Excel spreadsheet into the web application
- When done, the user is instructed to save and send the invoice
- At the same time, the sensors are monitoring on-screen activity to ensure business rules are followed
Automation involves RPA robots, which are software programs that can automate repetitive, rule-based tasks. These interact with the user interface, precisely mimicking the actions of humans.
Robotic process automation robots work 24/7, do not get tired and are less prone to mistakes, which brings significant value for enterprises.
Abto Software was involved to handle complex issues, which have negatively affected customer experience. After conducting thorough investigation, our engineers worked out a strategy to modernize the outdated legacy product. This strategy included the development of web browser extensions, plugin design and UI automation.
- Legacy modernization
- Performance optimization
- Cloud migration
- Cross-platform development
Solving customer problems
The main customer problems were that the solution:
- Wasn’t working for customers who used Microsoft’s Windows Terminal Server
- Wasn’t covering automation functionality for certain Java-based applications
- Wasn’t monitoring local and remote file system changes as expected, which meant automation activities weren’t triggered
- Wasn’t working with the Citrix environment
To resolve the above listed problems:
- We implemented a service to monitor user sessions on the Terminal Server and launch new sessions in case a session is closed or locked and provided an REST API endpoint to interact with other system parts
- We integrated Java-based UI-automation engines side-by-side: Access Bridge, FLA UI 2, FLA UI 3
- We embedded Polling FileSystemWatcher from .Net Standard 2.1 into our .NET Standard 2.0 library, defined polling watcher abstraction and added multiple implementations for different file systems: Local File System, Network File System, SharePoint Online, SharePoint On-Premises
- We addressed Citrix issues by leveraging Citrix’s ICA virtual channels to establish a reliable, bi-directional connection to facilitate generalized packet data exchange between the Citrix host and the Citrix Receiver online plug-in
The main customer problems had been successfully resolved through the implemented solutions listed above. At the next stage, we moved to the product issues, which were more complex.
Solving product issues
The main product issues to handle:
- About 80% of issues were originating from small automation activities, which were the basis and main building blocks of larger automation scenarios
- It took up to one month for the support team to upgrade a customer to the newer version
To handle the issues related to automation activities, we implemented:
- Plugin-like infrastructure for the main monolith based on extension-based design
- An SDK to write automation activities no matter the platform
- Distribution and version management for the automation activities
- Testing capabilities to troubleshoot automation activity on the end-customer environment
To handle the issues related to the version upgrade, we implemented:
- A health check tool comprising predefined test suits to analyze target and upgraded environments before and after installation
- An installer to support partial installation and workflows
The product is implemented by enterprises that have numerous automations – with every new enhancement, we focused on maintaining backward compatibility to ensure seamless functionality even after system updates. We utilized a combination of a side-by-side approach where the new code includes so-called fallback options and custom migration tools.
The product is developed to use browser extensions to enable browser automation – we faced a challenge when Google announced that Manifest V2 browser extensions wouldn’t longer be working in about six months. The new security rules in the Manifest V3 have limited some capabilities, in particular DOM access and custom code injection.
Our team has worked with the customer support to upgrade enterprise customers right before the deadlines. Our engineers successfully implemented the changes and ensured the product remained functional despite the described constraints.
Abto recognized that the utilized legacy product installer was causing significant issues to the customer support. It was based on outdated technologies, with numerous hardcoded forks and conflicting configuration files, requiring complete system uninstall and reinstall to upgrade.
We handled the challenge by adopting a more modern and flexible framework, Windows Installer XML (WIX), – our engineers carefully identified dedicated forks for each product feature and migrated them piece-by-piece. We have also designed a new product installer to support partial installation and upgrade the workflows, providing smooth, user-friendly experience.
The said legacy product was meant to support Citrix Virtual Desktop and Citrix Virtual Application scenarios. We involved C and .NET engineers to implement a custom Citrix ICA virtual channel, which provides a reliable, bi-directional connection with the Citrix servers.
Tools and technologies
- .Net Framework
- .Net 7
- REST API
- Browser extensions
- Named Pipes
- Web Sockets
- AWS EC2
- AWS MQ
- AWS S3
- AWS RDS
- AWS VPN
- AWS Elasticache
- AWS Network Firewall
- AWS Virtual Private Cloud (VPC)
- Amazon CloudFront
- AWS CloudWatch
- AWS Secrets Manager
- AWS Key Management
Tools & third-party integrations:
- Rabbit MQ
- Windows Installer XML
- Seq Logging Server
- HashiCorp Vault
- Active Directory
- OpenID Connect
- SAML SSO
- Kerberos SSO
- SQL Server
- Terminal Servers
- Microsoft SharePoint Online
- Microsoft Exchange Service
- UI Automation
- FLA UI
- Microsoft Graph API
- GitHub Actions
- Github Monorepos
- June 2019 – ongoing
- 1 project manager leading international R&D team
- 4 R&D engineers
- 1 WiX developer
Value delivered to business
The modernization of the RPA platform resulted in:
- Faster upgrades: The time to upgrade was minimized from a whole month to a few days
- Smooth workflows: Each new product migration takes place more easily
- Reduced manual workflow steps: Product installer was stabilized & configuration was automated
- Minimized bugs during migration
This way, the business:
– Restored the customers’ trust
– Improved the product’s speed and efficiency
– Gained more competitive advantage