See all articles

Integrating external systems with Ruby on Rails application

iRonin IT Team

Integrations can oftentimes be a challenge to implement. Every system and website is different, with a unique internal architecture, capabilities and limits. Because of this, integration might require writing separate code for each system, as was the case for one of iRonin’s clients, an employee referral system used by many companies on their unique websites.

Integrations for web apps and SaaS platforms

Integrations between IT systems or apps are used everywhere. They allow retailers to take advantage of external secure payments, and they are required for chatbots to appear on company websites. Sometimes, integrations are used to optimise the productivity of a particular system by adding a missing functionality.

Imagine that your HR department has an Applicant Tracking System (ATS) that gathers useful data like a list of candidates and employees. By integrating the system with a new external app or plugin, you can easily add a tool that will allow users to generate beautiful, readable reports, thus boosting their productivity.

Our team has built integration with Applicant Tracking Systems like: Ceridian, HRM Direct, Jobvite, Newton, Silkroad FTP, Taleo Enterprise Edition, Taleo Business Edition, Zoho Recruit, Bamboo HR, Hirebridge, Jazz, Kenexa, PCRecruiter, Success Factors, UltiPro, iCIMS, CATS, Greenhouse, Hrapply, JobScience, Lever, Silkroad, Workday

Building integration with Ruby on Rails

iRonin’s team used Ruby to implement integration support fast. We were able to leverage some Ruby gems that provided functionality to get data from external systems - sometimes all you need to do to build a simple integration is to provide the configuration file with the URL and a few parameters. But most of the time it’s a more complicated process. Rails allowed iRonin’s team to create integrations quickly and focus on puzzling out the systems we were integrating, rather than on reinventing the wheel and building new tools that would make it possible.

Applicant tracking systems are extremely helpful in automating the process of importing data, but integrating several different systems comes with specific challenges. When the system doesn’t make all of the necessary data available, but the missing bits can be found on public platforms like a job offers page. Another potential difficulty arises when the same ATS offers different versions or payment plans for different customers. Accessing all of the necessary data is made more difficult through the lack of uniformity. Normally, we would use an external ATS’ API to communicate with it, but there have been cases where this was impossible and we had to import data in various formats (e.g. Excel files) and reformat them for our purposes. The integrations we worked on thus needed to be monitored to ensure that all of the necessary data were being pulled into the client’s app. We had to continuously make sure simple changes made by the client, like a new name for a field in a data form, wouldn’t affect our integrations.

Clearly, the main challenge with integrations is often to gather the same types of data from many different sources and process this data in one app. The client wanted their app to be integrated with every system used by their customers. This meant over 20 completely different system architectures, and the challenge was to achieve our goals while maintaining a high performance with data imports. We gave each system the same suite of functionalities despite the fact that each of them offered different or differently formatted data. Thanks to Ruby’s rapid development capabilities, our outsourced team could focus on the challenge and not on meeting the deadline.

The process of building integrations

The client delivered specifications on what their customers wanted and it fell on iRonin’s team to deliver. We dove into each customer’s system, read the documentation, tested various possibilities and scenarios. We leveraged our experience when searching for the right solutions and came up with a plan of action.

The team was divided so that one person was responsible for one integration, but we also did peer reviews, which allowed developers to improve the quality of their code thanks to their teammates’ perspective. As already mentioned, the real challenge was gathering equivalent data from vastly different systems. We used everything that was available to do this, even when the documentation made no mention of the existence of the data we were looking for.

Once the integrations were introduced, we needed to focus on optimisation. The clients usually didn’t have a good idea of how much data each integration would provide before we implemented our solutions, so we sometimes needed to adjust what we created to handle more data. This required a problem-solving approach and quick reactions to any changes in the systems.

Leveraging integration for business advantage

The client’s platform can now be integrated with many systems without lowering its performance. The integrations are independent of each other and thus can work simultaneously. The architecture is also safer - should a server error occur, resources won’t be wasted on analyzing the same data twice, as the system will remember its state from just before the crash. And if a new system ever needs to be integrated with the platform, we will be able to do it extremely efficiently, as we’ve developed a well-documented flow for creating new integrations.

Thanks to the rapid development characteristic of Ruby on Rails outsourcing, the project was concluded swiftly and successfully. Building integrations with several external platforms is a challenge, but often a worthwhile one. In our client’s case, a whole suite of technologies needed to be used, including Ruby, Rails, React, Sidekiq, Redis, Prawn, TorqueBox, MongoDB, AWS and SOLR. The results? The client’s customers can take full advantage of the platform’s functionalities, and the client remains iRonin’s long-term partner.

Our HR-focused client decided to use Ruby on Rails outsourcing with iRonin to implement 20 integrations that would allow them to provide their services to customers that use any website or system.

Does your app need integrations to achieve its full business potential?

Similar articles