If you ask a developer today how to build a trigger-based SaaS integration (for example, with Salesforce or HubSpot), they'll likely recommend using Zapier.
However, I'd argue a webhook-based solution makes these integrations:
A ton of SaaS platforms (Salesforce, HubSpot, Asana, JIRA, Stripe, Quickbooks, Xero, etc.) support registering webhooks to be notified when data is updated. For example, you may want to receive a notification when:
Although most of these are possible to achieve with Zapier, using webhooks to do this makes the experience for users of a SaaS product much simpler. Rather than leaving your application to configure a new Zap, you could have the same functionality with one click.
Let's compare the user experience of a webhook-based native integration with a Zapier powered integration, solely based on the steps the user has to take to link their Salesforce account.
As you can see, the webhook-based integration is a cleaner experience for users, that makes it easier to get started and minimizes points where they could drop off. From my personal experience of using both types of integrations, native webhook integrations are infinitely less frustrating to configure (plus, they don't cost your user anything).
By no means should you stop using/supporting Zapier. Zapier enables non-technical users to stitch together many different applications ****to create powerful workflows.
For the developer of a SaaS app, that means building a Zapier integration gives your users access to a ton of awesome data sources and makes your platform work with them instantly. This is generally a great value add for users.
However, Zapier should not be the only route for users to integrate their apps. For platforms the bulk of your users integrate with, you should definitely offer a native flow that makes it easy for users to onboard and gives you more control over their experience.
Creating a webhook integration, on a high level, boils down to 3 steps:
The first step is building an authorization flow so your users can login to the 3rd party app(s) to integrate with. This typically involves creating an OAuth app, redirecting users to a login page, and obtaining API access tokens.
A sample of an authorization flow with Quickbooks is shown below:
Sample Quickbooks OAuth authorization flow
The next step is to register a webhook endpoint in the 3rd party app. This process varies between SaaS apps – for example, HubSpot allows you to configure this as part of your OAuth app settings while Asana requires you to configure this via their API.
HubSpot OAuth App webhook settings
Finally, you must consume the incoming data from the 3rd party platform within your own app. This process is dependent on your web app and use case, but platforms like Hookdeck can make the development process much easier and solve many of the infrastructure issues for you.
Although Zapier is a great option for getting blanket coverage of many different data sources, the most widely used integrations should be built natively. This can vastly improve the user experience, prevent drop off, and give you more flexibility in how it's implemented – for trigger based integrations, webhooks are the obvious way to achieve that.
I'd love to get feedback on this from the IndieHackers community:
For those of you who have used Zapier in the past:
For those of you who have used webhook-based integrations in the past:
Thanks for reading! 👋