Buy or build: Should you build integrations in house, or use Terra's API
We noticed that over time, most customers that try to build integrations in-house contact us to use Terra since they realize that integrations are much more difficult than they look and take much more time.
Furthermore, I wanted to write an article to explain the process of what's necessary, and how to make an informed decision about whether to build this in-house or use Terra to connect with all of them at once through our fitness API / wearable API.
The process of creating an integration involves the following steps:
- Establishing a partnership
- Doing the integration
- Standardizing data
- Maintainance and updates
- Security and Privacy
Forming a partnership
Most people don't think about this - but it is one of the most critical steps. Assume you want to create an integration with a company like Garmin or WHOOP. You would need to contact the company and speak with multiple teams of theirs until you establish access to their technology - assuming it's available. In such cases, for many wearable companies, it actually takes a lot of time to be approved. In many cases, it might take almost a year for this to be completed. (yes, we've been there)
Doing the integration
Each wearable company uses a different technology. For example, a company like Garmin uses Webhooks, and a company like Fitbit uses HTTP and REST APIs. In addition, there are mobile developers with SDKs and so on.
Connecting with all these technologies will require good expertise in DevOps, and you would need to have the people internally for these tasks.
To connect with mobile apps, you would need a mobile developer for Webhooks, a backend developer, and so on. You would also need to establish your backend to support all of these, and hence you would need an expert in infrastructure.
Standardizing data
After you connect to all the integrations, you will realize that most companies use their language and have their own formats.
For example, Peloton API might have ‘calories', whereas Zwift API might have ‘kcal'. Moreover, you will see that everyone is using different files and formats. For example, Suunto API might use the FIT format protocol, and another wearable uses JSON.
Strong expertise in data engineering is necessary here.
And let's not forget. Unfortunately, most great hardware wearable companies are not the best at software, so you will have to go through many issues understanding inadequate documentation and so on.
Maintenance and updates
APIs and connections change constantly, and usually, there's a change every week. For example, WHOOP is a wearable company that moves fast due to how innovative they are. Hence, the data the device measures changes continuously, adding more and more. Thus you would need to keep up.
Likewise, Oura is adding more and more data to their devices. In fact, last week they added the ability to measure your activity from the ring. As you can imagine, this leads to some very important data points, and updating your integration with them would be very important.
In addition, many times an API or integration you already made will not respond, have issues, etc. So you would need to be on top of it all the time. (Terra has a handy dashboard that shows you the health of each integration.)
Security and privacy
Speaking to all these wearable APIs / fitness APIs requires constant testing and validation if things work. You should ensure that the data you receive is always secure and that your compliances are in place, such as GDPR, HIPAA, etc.
To sum this up
The way I would think about it is whether I want to have an in-house DevOps team who does this internally all the time, or if I want to focus on my core business and use Terra's API to do that for me.