API Integrations
What is an API Integration?
The advent of the internet opened up our world in unimaginable ways. Largely commercialized and increasingly adopted in the late 90s, people around the world were suddenly able to communicate, share, and collaborate in ways that were previously unimaginable with an internet connection. Over the past few decades, barriers to this connectivity have become lower and the ways in which we connect are improving every day.
In today’s world, the connectivity of people is no longer enough. It is business critical and personally convenient for the systems we use every day to connect as well. While large organizations have been leveraging technologies to better connect their systems and applications for decades, significant leaps in software development and cloud computing have made this connectivity readily accessible for the software applications we use every day. This is where APIs make their debut. API Integration is the next step in strengthening software connectivity.
Click here to learn more about the history of APIs
Introducing: APIs.
APIs provide applications the ability to communicate via the web with one another. Using APIs, software applications connect with each other in the same ways we are communicating with software applications. Of course, they do not use a mouse and a keyboard to navigate an interface and execute functions within respective applications. Simply put, APIs allow the interface for software to connect. By integrating APIs, one is configuring and facilitating the connection of applications so that they can communicate with one another without any human interaction.
The definition of integration in this context might be intuitive to its definition, but understanding the root of a word always helps provide context. Integrate is rooted in the Latin word “integrus,” meaning ”to render something whole, or bring together the parts of.” In this way, an API integration brings together 2 or more APIs to holistically execute an operation or set of operations across otherwise disparate software applications.
In putting this all together, APIs are an interface that software applications expose to other applications on the internet. An API integration is the act of bringing these APIs together to perform the functions an integrator is working to achieve.
What applications need to be integrated?
The use cases for API integrations are limitless; something we consider to be incredibly exciting at Aloi. We believe that there will be a future in which applications are integrated in ways we’ve never thought of before. In theory, as long as an application has an API and a user has the authorization to connect to it, it can be integrated with other applications. Some common use cases for API Integrations are as follows:
- Enterprise operations
- SaaS applications
- Mobile experiences
- Internet of Things (IoT)
Enterprise operations
Consider the complexity of a large organization’s operations and overall functions. To narrow scope, let’s consider a large retailer. On a minute to minute basis, a retailer must manage its in-store and ecommerce inventory, process orders and returns, and initiate actions within warehousing and shipping networks to name just a few examples. While the systems and applications required to manage these processes are disparate, they need to communicate in order to seamlessly run a retailer. API integrations are an important part of this connectedness.
SaaS applications
The explosion of cloud software has led to rapid innovation of discipline-specific applications. Software-as-Service (SaaS) applications are widely adopted as a way to manage businesses and our lives. As cited by Blissfully, companies had an average of 18 SaaS subscriptions in 2018. The results is a diversity of really good software applications that do not communicate or share data. Some large SaaS companies have built App stores that help facilitate integrations through pre-built integrations. However, a small minority of overall SaaS applications have this reach. Each of these noted SaaS subscriptions is a potential integration point to better connect a person or organization’s SaaS ecosystem.
Mobile experiences
There has been a huge push to mobile apps in the last decade. Just like SaaS applications, technology consumers have a vast array of options. Back in 2018, Apple announced that there are over 20 million developers on their iOS. It is fair to assume that Android has the same adoption among developers, which translates to a lot of API integrations. An app itself is software installed on a mobile device that lives natively on a user’s device. Through API integrations, these native apps communicate with servers that deliver the experience to the end user. In many cases, these apps could be integrated to a number of APIs that collectively create a user’s experience on the app. In short, mobile apps provide an end user experiences that are powered through API integrations.
Internet of Things (IoT)
IoT has become a popular buzzword in the past few years. The industry has developed a lot of adoption in automating manufacturing processes. From the consumer’s perspective, IoT has gained popularity in experiences related to mobility and smart home devices. While there are device-specific technologies that span beyond simple API integrations, much of the data that is retrieved in connecting these devices are connected through integrations. At its core, IoT is inspiring universal connectivity and API integrations play a large part of this burgeoning innovation.
How is an API integration built?
At a high level, these are some key steps involved in creating an API integration:
- Understand the apps and integration
- Map and transform data
- Test the integration
- Deploy the integration
- Manage the integration
Understand the apps and integration
The first step in integrating an API is to understand how the applications work and the desired goal(s) of the integration itself.
Let’s consider an example. Wouldn’t it be cool if your phone rang at the times you were supposed to dial in to a conference call? This would mean that your calendar app is integrated with some communications platform as a service like Twilio or Bandwidth.
If integrating these applications, you’d need to understand how each of them work. For your calendar, you would have to consider things like what triggers the calendar alert to go off and what type of information is made available in the alert. On Twilio, you would need to understand things like how to trigger a phone call and how to enter the meeting ID once connected.
Before a piece of integration code is ever written, the integration process starts by understanding the underlying software that is being integrated. The APIs you are working with will send data and expect to receive data in certain ways. Requirements must be gathered.
- What application is the data coming from?
- When should that data be retrieved?
- Where is the retrieved data going?
- What data needs to be sent?
The list goes on, but in simplest terms, understanding the core purpose of an integration and the software being connected is the first step.
Map and Transform Data
Once there is a general understanding of the integration and associated apps, you would need to understand the format and types of data transmitted with each app.
Back to our example of the calendar/phone integration, the calendar would need to trigger a request to the communication platform providing the data needed to make the call. The communication platform will require certain pieces of data like the phone number or meeting ID. Additionally, code must be written to extract the data made available by the calendar and map it to the fields required by the communication platform.
It will need to be provided in a certain format (i.e. xxx-xxx-xxxx or xxxxxxxxxx). In the event the phone number is provided by the calendar in a different format, code will need to be written to transform the format.
Because there will be no human intervention when the integration is live, there needs to be a very predictable understanding of data formats and the nature of the data. Every API call initiates a “request” and expects a “response.” Understanding the nuance of requests and response allows you to start getting your hands dirty and write the bulk of the integration code.
Test the Integration
Once the data has been mapped and transformed, you must determine if the integration works. This is usually done in a “local” environment that eliminates the complexities of hosting it in a production environment (that comes next).
Now is the time that you create a fake meeting on your calendar with the necessary information needed for the conference call. On the other end, you would determine if the phone call was executed by the communications platform. Unfortunately, you usually don’t get it 100% right on the first try.
This is the point in the process that can uncover dependencies that weren’t initially considered. In this step, you would typically be reviewing logs of what happened when the integration was initiated and adjust based on errors that were returned from the apps. The point of testing is to refine the integration so that it properly works within a controlled environment.
Deploy the Integration
You’re almost there! Now that your integration is flowing from end to end, you need to host it somewhere. Depending on the circumstances of your infrastructure and the frequency of integrations you build, this can sometimes present challenges. Questions that need to be considered are as follows:
- Do I have servers that I can host the integration?
- Do I have ways to easily manage these servers?
- Can I properly and securely manage authentication in this environment?
- Is my means of hosting cost effective?
Production deployment brings your integration alive in a real-life environment. After the integration is properly deployed, you should be able to create a meeting with your phone next to you and see the result.
Manage the Integration
Once an integration is live, it needs to be maintained. Applications are constantly changing, so you need to consistently monitor that the integration is still working as intended. The smallest change to any variable in the equation can deem your integration inoperable. Furthermore, it’s important to understand the usage of this integration. Is it triggering API calls only at the times you expect? Is the integration triggering APIs at a frequency within the limits of the receiving apps?
How does Aloi integrate APIs?
At Aloi, we firmly practice the idea of using the right tool for the job. In building our organization internally, we always start with the problem we are solving and the needs we have. Then, we choose the best of breed technology for each of these needs disregarding its integrations capabilities. The value of an app should be driven by its core purpose, not its ability to easily integrate.
As we have grown and implemented dozens of SaaS apps, needs for connectivity among this ecosystem of apps continuously arises. In the same way we evaluated the problem and need before making a decision on build vs. [what app to] buy, we do the same in identifying the pain point(s) of these disparate parts. We define the requirements for each of these integrations and determine the impact and effort of each integration through a process prioritization.
We use Aloi to build, deploy, and manage our own integrations. It is simple enough for our technical business users to create their own integrations and provides the scalability and complexity to handle our more involved integrations.