Integrations: Keys to Connecting Everything

One of the highest demand services today is for integrating services with other services, such as a CRM (customer relationship management software) and an email service. The purpose of integration is to create powerful scenarios, typically automated, that perform crucial tasks for businesses. Having access to data increases the potential of growth and lead generation, so becoming more efficient and maneuverable is an effective, if not necessary, strategy. The possibilities are nearly endless for automating business processes via integrations, and doing so leads to an increase in productivity.

Problems encountered when attempting an integration include issues such as confusing or incomplete documentation, technical errors, and time invested in research and development. Also, some integrations haven't been previously configured. That means that a custom configuration must be created in order to accommodate the service in question. In effect, unless you're wanting to build programming and technical skills, your time will be much better invested in finding a professional to tackle your custom integration needs.

Integrations

There are many possible integrations available for configuration, but choosing one that corresponds to your needs depends on your existing software, website, or services. Most of us use integrations on a daily basis without thinking twice about how these connections take place. For example, while using Instagram there's an option to share a photo you uploaded to Facebook. An API allows for the capability to transfer data from one service to another or to access data from an application or program.

Another practical example is connecting Trello (think task-oriented note keeping/kanban) with Slack. Doing so allows Trello cards to be created in Slack, or it allows users to be notified via Slack when new cards are created in Trello. Those are examples of some integrations that have already been created. Yet, what if you are using a relatively unknown service and want to integrate with a service such as Trello or Slack? Well, it will require some custom engineering.

Or, if a site needs a purchasing feature, such as PayPal or Stripe, creating an integration with the site would allow customers to check out and pay, sending funds directly to a PayPal account. A payment integration sounds simple until requirements start popping up for SSL certification (encryption for data) and having to adjust content and images that originate from a non-secure http source.

Even Zapier, one of the leading integration specialists, hasn't created an integration with every possible service. So, the only remedy is to wait for another person or company to offer the solution needed or to create a custom configuration. That may seem simple, but it's far from it. Integrations rely on the use of APIs, and learning how to work with the architecture, style, and constraints of an API can take a great deal of time. In fact, novices may reach a point of frustration when realizing that the required skills make this into a herculean task. There are a myriad of resources available online that can assist one in learning to configure custom integrations, but it will require patience and determination.

Alternatively, there is the option of hiring a service such as CodePilot.io to configure integrations on your behalf, because understanding an API's constraints and learning the skills required to successfully connect your services may take weeks or months to accomplish.

What's an API?

No, it's not a beer. That's an IPA. According to Webopedia, the succinct definition for API is as follows: "Application program interface (API) is a set of routines, protocols, and tools for building software applications. An API specifies how software components should interact and APIs are used when programming graphical user interface (GUI) components. A good API makes it easier to develop a program by providing all the building blocks. A programmer then puts the blocks together."

The API was created in order to standardize authorization procedures and standards across platforms. This allows developers to learn best practices for established protocols, and it also engenders a more favorable approach to accessing data across the board. There are some concerns about the use of APIs, but for now this is the modern standard across the web. Understanding how an API functions is pivotal to connecting and integrating services.

There are a variety of APIs: SOAP, REST, CORBA, etc. Each API has its own set of specifications for integrating and/or programming. The REST API is actually an architectural style with limited constraints, one being the use of HTTP requests. An API allows services to be connected to other services following specific procedures. Such specifications determine security and also regulate which data that can be accessed or altered within an existing program or application. In other words, a company creates an API for their software in order to set parameters for the use of data or services. Following these guidelines is a requirement in order to enable the capabilities desired.

Research

When configuring a custom integration the first step is to determine the parameters and specifications of the APIs for both services involved in the process. This will require some research time, depending on your level of familiarity with APIs and integrations. Most services will include a section entitled "Developer Docs" that offer extensive details concerning the parameters of their API. However, most instances of documentation will assume basic technical knowledge. This can slow down the integration process, because there is often a great deal of trial and error involved in understanding exactly how any given API functions. Typically, there will be unique requirements that each service will dictate.

Headers are one example. Most services require special headers to be attached to requests, such as an API key or a string detailing which type of application or parser will be receiving the payload (data) from the request. In addition to headers, some sites will only allow certain formats to be used when making requests. So, creating an integration will require a detailed approach to ensuring that data is properly entered and aligned with the specifications of the service.

Programming Skills

At this point it's essential to understand how the back end of software functions. In order to configure an integration one would need to have developer skills, such as an intermediate knowledge of JSON (JavaScript Object Notation: a data exchange format based on the JavaScript language), XML (Extensible Markup Language: markup language used for encoding documents), and HTTP (Hypertext Transfer Protocol: the primary means by which information is communicated and shared on the internet). If any of those things sound unfamiliar, it's likely that there is a steep learning curve ahead.

One of the most popular API architectural styles is the RESTful API, also known as REST, and it has less constraints to work around than other APIs. REST APIs require the use of HTTP, which utilizes requests (POST, GET, PUT, PATCH, DELETE) and webhook URLs in order to transfer data from one point to another. These capabilities are powerful, because data can be transferred, manipulated, and stored in order to complete complex tasks.

For example, on CodePilot's platform we configured a scenario that captured data, then the data was sent into a service that enriches leads and contacts. This was done by using API functionality, HTTP requests, webhooks, and JSON to parse the data into an acceptable format for processing. Afterward, the data was sent back into our CRM with enriched information about our contacts, such as their social media handles, domain addresses, or additional email addresses. Even for skilled programmers, custom integrations require dedicated time researching, testing, and troubleshooting in order to perfect the processes. Generally, if it seems simple there will be some hidden factor that complicates the process.

For the general public, a quick Google search yields links to tutorials for working with various APIs, and there is a great deal of information available. Yet, the main hindrance for the average person is learning the jargon, skills, and technical thought processes that make any of this possible to begin with. Unlike learning HTML and CSS for formatting a blog, learning to work with various APIs is more intensive. Instead of working with only one platform and set of protocols, there will be at least two software applications involved (and sometimes more), and knowledge of programming languages, JSON, HTTP, etc. will be required in order to satisfactorily complete the task.

Learn

There are some helpful sites dedicated to helping novices learn how to code, or for assisting developers in debugging and getting "un-stuck." If you have the time and resources to devote to a software development learning path, then here are some recommended sites for anyone interested in developing (no pun intended) some programming skills:

1. Stack OverFlow
One of the most popular and helpful sites is Stack Overflow, and there are 161 categories within the site to assist with just about any complex niche imaginable.

2. Codecademy
Codecademy offers free online coding instruction with helpful videos and tutorials that allow anyone to try out programming. It's also useful for building skills and learning new techniques.

3. One Month
If you're willing to spend some money, then One Month is touted as one of the best paid sites for becoming a developer. Their plans start at $29/month for one person, so it shouldn't break the bank.

4. Michael Hartl
By far, Michael Hartl is an esteemed Ruby on Rails instructors. He even offers his tutorial for free online, via a PDF. In addition, Mr. Hartl has a monthly paid resource, dubbed Learn Enough, for those wanting to start at the beginning developer level and learn about things such as the command line.

5. Khan Academy
Not only is this an excellent site for learning about math, science, and history, but Khan Academy has an interactive learning environment for would-be programmers. There are several paths available, and it's all for free.

Find a Pro

For many, time is of the essence, and learning skills and programming languages is simply not practical. One of the greatest lessons early developers learn is knowing when to ask for help. At some point it's necessary to do a cost-benefit analysis in order to compare the time spent working on an integration to the cost of missing out on other important business opportunities or sources of revenue. Not to mention the headache of having to commit to tedious trial and error. Often, custom integrations seem simple, but there are hidden complications to many, if not most of them. That's why it's simpler to pass the job along to a team of skilled professionals.

Comparatively, hiring a middleware service to handle your integration could be a much better investment of resources, because services such as CodePilot already have the skills and tools required to quickly and effectively handle custom configurations that would otherwise seem complex or downright impossible. Making an attempt to fix the leaky sink is admirable, but if the kitchen begins flooding it's time to call the plumber. Custom software engineering is no different, and there is no need to waste precious time being frustrated or waiting to ask for a little help.

CodePilot has integrated with an open source ERP, streamlined processes for a talent acquisition software, and created a CRM integration for email campaigns with custom engineering, and a growing list of other configurations. This experience ensures that the team at CodePilot can do just about anything. If you're feeling stuck, wanting to move forward with an integration, or simply don't want to wait for one of the big services to get to your integration, then CodePilot can handle it.

James David Wade

About James David Wade

James is an automation analyst for Twin Engine Labs' CodePilot.io. He also happens to be our chief documentarian and an excellent editor who enjoys helping our customers better understand what we do.