You’re growing as a business, you have a great SaaS idea and you have customers that are interested. They like what they see but they don’t want to start using your product from scratch. They don’t want to fill everything up with their data. They’d rather import it all from their existing apps. So you decide to build a bunch of integrations.
“No problem”, you think. We’ll just write a bunch of integrations. How hard could it be?
You look around and it turns out there are 100s of apps out there. You can’t do them all, so you make a much shorter list of 10 apps. Sure that’s not great, but it’s better than nothing.
Maybe you can do this all in-house. Put together a team, start building a system, and presto! You’d be done before you know it.
But it turns out that talking to 100s of API endpoints and systems is not all that easy. It’s a lot of work. it’s also repetitive. Your engineers don’t exactly wake up every day thinking “I can’t wait to work on yet another integration today!”.
Even if you have an enthusiastic engineering. That enthusiasm won’t last by the time he reaches the 10th integration.
So, it turns out, integrations are still hard. You need to:
- Support 10s of API styles
- Support 10+ types of authentication (OAuth1, OAuth2, JWT, Key-based, Basic Authentication, OpenID, etc.)
- Provide a UI and UX for the integration
- Support GraphQL for more modern APIs
- Support Push APIs for event-based, incoming data
- Provide mapping of custom fields
- Implement polling for old school APIs that don’t support push APIs. Polling causes 1000s of calls per day for every user.
- Define queries and filters to get your specific data
- Provide Pagination support: if you’re doing a data import and there are millions of records, you need to page the calls so you can get more data without running out of memory
- Perform data conversion. For example, many dates will differ in formats. For example, one API might show date as 19/02/2020 but you might require 19th Feb 2020 as the format. Same applies for phone numbers, time fields, timestamps, numbers with scientific notations, large numbers, etc
- Implement retry logic in case an API isn’t working with exponential backoff
- Keep track of the state of data if you’re doing data sync
- Perform conditional actions based on various events
- Implement API limits: Service providers place limits on API calls. So your algorithm needs to tackle that. This is also known as throttling.
- Implementing a queueing system for when you get throttled or when the API is down. You want to retry the task afterward.
- If you’re doing 2-way syncs, you need to implement complex logic to break infinite update loops where the same update keeps going back and forth between two systems in sync. It’s a lot common than you’d imagine.
- Support and manage the infrastructure for all of this
- If you’re doing 2-way sync, maintain data-mapping tables between services
- Maintain API versions, manage API changes and upgrades
- Test APIs for inconsistencies. You’d be surprised how frequently what’s documented in the API and the behavior are not the same
So, really, what did you commit to here? Your SaaS isn’t about integrations. Sure it’s a problem you have, but so was hosting. You don’t buy racks of machines anymore, you go to a cloud provider.
You care about solving your problem and moving fast. So, is it a good idea to spend all this energy in an area you aren’t an expert in? If you look at the requirements mentioned above, you can see that this is a multi-month endeavor even before you see a single integration. That makes it a ton of work per integration. Your SaaS is losing time and you’re now focusing on a non-core area.
But we get it. No one does integrations in quite the way you want them. They’re either much too distant from your users, like Microsoft Flow and Integromat, or they’re too basic and brittle to do anything meaningful, like Zapier or IFTTT.
Hell, that’s why we started Integry: no one quite fit the bill. Too slow, too cumbersome, too “old-school enterprise”, not enough consumer-internet heart. Why can’t integrations be fast and lovable? We wanted to solve this because we as SaaS founders ourselves kept facing these issues.
So, how do we address the above? Integry cuts down your integration time remarkably while giving you options and freedom. We manage all the complexities and the integrations look like they’re built by your own team. The UX is exactly what you want. The user integration setup time is minimal and you get higher conversion. The infrastructure is scalable and it all just works.
We still have a long way to go with making things perfect, we’re barely at 1% of our ultimate integrations goal, but Integry today will save you man-years without compromising what makes your SaaS unique. Ultimately, this puts you ahead of your peers who want to do everything themselves.