What is application integration?
Application integration is the process of connecting two or more applications to seamlessly run processes and keep data between the applications. By definition application integration aims to keep the applications in sync with each other automatically. Integrating applications allow users to not have to work with multiple applications at the same time or jump between multiple applications.
Why application integration is important?
Integrating applications is important to keep organizations operating efficiently even when the number of applications used within an organization grows. In the last five years, the average number of applications has skyrocketed from 16 applications to 110. This is partly due to the emergence of specialized applications built for certain departments’ needs and the ease of purchasing such applications online. Some organizations have decided to attempt to restrict what they refer to as “shadow IT”, applications purchased without IT involvement. Others embrace that employees are utilizing the tools to allow them to perform at their best. The challenge that remains is how all of these applications are managed and how can they work together. Application integration can be used to overcome the challenge of how applications can work together and has several benefits for an organization:
Eliminate data silos
Data silos occur when different departments own various data points in the organization and these data are spread out to the various applications being used in each department. As the applications used in the various departments are provided by various vendors, they often have different structures and methods for how they store and process the data. An example of data being siloed is when support organizations work with an ITSM tool to handle communications with a customer, but this information is in no way available to the sales or customer success departments of the organization working with information that is available in a CRM system. By integrating these tools together using application integration, these silos can be eliminated, as all customer information is available in the tools that the various departments are working with.
Faster time to market
When processes are spread out between departments and rely on information to be manually extracted, it slows down the time it takes for your organization to react to changes or to innovate on new products or service offerings. If your organization relies on manual processes, i.e. humans, to transfer information between applications, it always requires change management to happen in order to either change how these processes are run or to find new areas where these human resources can be best utilized.
If you’ve already taken the path to automate processes by integrating your applications, selecting the right integration tools to create application integrations also reduces the time it takes to react. Replacing a manual process with integration will require changes and further development as circumstances change. With the right tools, your IT organization or integration developers won’t be the bottleneck for continuous improvement.
Process automation reduces the effects that humans have on the successful execution of a process. Through application integration, you can automate many of the tasks that have previously required humans to either use multiple applications, copy-paste information between applications, or that have simply not been done due to the lack of resources to keep applications up to date. Process automation by integrating applications can help to eliminate repetitive and mundane tasks, which often lower employee satisfaction. The speed of your processes can also be significantly increased. Let’s face it, computers are far quicker to perform repetitive tasks than any human. By taking away the chances of human errors in the process, you’ll have far fewer problems to take care of.
To have a holistic view of your organization and how it is performing, jumping back and forth between the various tools your organization uses won’t scale as your business grows. By integrating your applications, you are able to bring the information visible in the way that is best suited for you or your team and it’s usually within the application your work with on a daily basis.
Reduced technical burden
When well-designed APIs are used for integrations, they are built correctly to process the information you are sending them and let you know when the message you are trying to send cannot be processed. For example, when an incorrectly formatted message is sent to an API, the application will respond with an error message stating that your formatting is incorrect. When sending too many messages to the API, it can also let you know when you need to slow down your requests.
Though there are best practices on how to design APIs, it is quite common to find that they do not follow common conventions. More often than not, studying an application’s developer documentation doesn’t give you all the answers you need to build integrations towards the application. So while there may be fewer technical challenges to overcome, trial and error become the only way to understand how the application has been built to respond to API calls.
How to do application integration?
Application integration relies on three main concepts to successfully integrate.
Application integration relies on application programming interfaces, or APIs in short, that are provided by the application vendors. APIs can be provided in different ways, but most commonly they are REST or SOAP APIs. Many misinterpret this to be how applications communicate with each other. In reality, it’s just the way that you can connect with an application using a standard way of communicating. API integration is its own beast, which you can read about here.
To be able to create an integration, you will need to apply logic to when the integration takes place. When creating a process-based integration, the best approach is to respond to events triggered by one application and move the process onward based on these events. Technically this is often handled by webhooks configured in the source application. They can be configured to send a message whenever some event occurs and you will then need to respond to that. If the source application does not have this capability, you will need to retrieve the data through its API periodically. This concept is often referred to as polling. The destination application is rarely able to retrieve data directly from another application, hence you will require another application or middleware in between the source and destination to retrieve the data, transform it and then send it to the destination.
When an event is received from the source application or retrieved through its API, the information to you is in the format that the source application produces. Almost always this is not in the format that the destination application would like to receive and the fields in the two applications are not identical. Hence, you will need to apply data mapping to it. Data mapping is the process of translating or transforming a message to a different format or to a different field in the destination application. It’s not only the differences between the applications that you need to account for, but also the differences in how you may have configured the various applications you are using. In different contexts you may be talking about a Contact record and in another application, you use the term End-user. This is where it is important to have a solid understanding of the contexts of both of the applications in order to understand what values map to one another.
Application integration vs data integration
Another approach to integrating is to build integrations with the underlying data instead of working with an application’s APIs or its functionality. When integrating with data, you are not limited by what information the application offers through its APIs or how the application functions. It isn’t always an option. In the world of SaaS applications, you may not have direct access to the data or the databases where it is stored. If you can access the data, it brings forth challenges in the transformation of the data to suit the structure each application demands, and determining the frequency of when this data is synchronized brings its own challenges. To summarize, it is often easier to work within the restrictions that an application offers when it comes to integrating. Quite often the most common use cases are possible to be taken care of using the application’s APIs, that's what integration APIs are intended to be used for. Data integration should be left for situations where the integration is not process-driven and there is a vast amount of data to be made available in several applications.
Read more about data integration: Everything you need to know about Data Integration
Common application-to-application integration use cases
Application integration can be used in a few different scenarios. Here are common application integration examples:
On-premise application integration
In on-premise application integration applications that are not available on the public internet are integrated either with each other or to applications available on the internet. Not all applications are in the cloud or directly accessible to the internet. For legacy or for security reasons applications may be run in on-premise servers or internal data centers behind firewalls. This brings its own challenges to how these applications are accessed securely without exposing the entire application and its data to the world.
SaaS application integration
Software as a Service (SaaS) is an application that generally runs on shared infrastructure and is multi-tenant, meaning that organizations using the application share the same instance. SaaS application integration connects multiple applications running on a public cloud to each other to automate the flow of information between these applications. Increasingly, SaaS applications are built to be integrated into each other and it is common for applications to have public APIs available. These APIs can be used to build integrations to other applications or entirely new applications based on the information that a public API provides.
Common challenges with application integration
Application integration in organizations faces some common challenges that are related to how the integrations between applications can be built. Here are some examples of common application integration challenges:
Proliferation of SaaS
Large growth in the number of SaaS applications used. Small and medium-sized businesses find more affordable solutions and applications better suited for their needs. On the other hand, the needs of large enterprises are unique enough to require multiple best-of-breed applications to be used. This leads to a lot of applications requiring to be integrated and often with varying levels of complexity in terms of how easy it is to integrate with an application. This causes a lot of pressure on the IT departments to keep up with the growing needs.
Integration is cumbersome
Point-to-point and one-off integrations lead to an unmaintainable mess of integrations that are difficult to adjust if there are any changes needed to the process. When one link in the process is changed, it might have unintended consequences for the entire process. This leads to either a lengthy project to change the integrations or avoiding the changes entirely, which creates inefficiencies.
Read more about hub-and-spoke can help you maintain your integrations: Everything you need to know about System Integration
No process automation
Much like the underlying processes application integration aims to automate, the process of integrating also requires a level of automation. Without it, every integration risks being a one-off integration project. To overcome this challenge, integration patterns have been formalized and various templates have been created to be re-used in new integrations. These practices are not always commonplace and there are no standards for how integrations can be best built on a large scale.
Not enough technical expertise
It takes a lot of time to understand the inner workings of any system, even if they have a well-documented API. It’s not only a technical challenge of understanding how the APIs work. It requires an understanding of the significance of that information in the context of the other application and the entire process. People with both skillsets are a rare gem.
Application integration with ONEiO
When the number of applications used in organizations keeps rapidly growing, it’s not sustainable to think of each integration on a case-by-case basis. It’s best to have a strategy in place which can rapidly respond to the demands of your business, whenever there is a new tool added. To be able to operate with high velocity and execute on such a strategy you will need to have an integration platform in place which is able to reduce the time it takes to develop each integration and give the power to the users of those applications to integrate on their own vs. trying to gather costly developer resources and going through a lengthy integration project.
Read more about system integration strategy: How to create a system integration strategy that REALLY works?
ONEiO makes integrations easier to configure, maintain and automate. The ONEiO Integration Automation Platform is built to be able to easily configure integrations to the needs of the end-users, by the end-users. Wide support for many applications through its endpoint types allows you to connect multiple applications without the need to study the API or developer documentation. Integrations with ONEiO are built to handle specific use cases that users need an integration for, instead of a wide variety of bells and whistles to develop integrations.
If your organization is at the level where you could see this reality, don't fret. As an integration service provider, ONEiO can deliver integrations as a turn-key solution or assist you at every step of your journey.
To help you get started on your journey to better integrations, start with ONEiO's free landscape assessment. It helps you determine the current state of integrations in your organization. Based on the assessment we can guide you through the steps to take to reach the next level.