Zapier is a popular tool that helps to make tedious tasks quicker and easier. One of the features they offer when building zaps are webhooks, which allow you to send and receive data between different apps and APIs.
One way apps can communicate with each other is through webhooks, which are essentially automated messages exchanging codified pieces of information. They can be used in nearly any situation where there is one piece of software or service is sending out data, and a second party receiving it for their own purposes.
For those of you that want to go deep on the subject, Zapier has written this great guide.
In Zapier's case, webhooks can both be the trigger step of a zap, and added as an action step (and, in theory, both). Behind the scenes, webhook technology is also what powers the apps that have instant triggers.
If you add a webhook as a trigger in your zap you've got several options, including:
With the "Retrieve Poll" trigger, Zapier you'll be prompted to provide a URL for the API of the app you want to connect to. Fully explaining this is beyond the scope of this article, but most API's have helpful documentation to guide you.
Essentially, though, once set up, Zapier will trigger per your plan's schedule and contact the API asking to receive back any new data posted since the last check. The zap will then run on any new data it receives.
This is the most common webhook trigger to set up. Here you'll be given a unique URL. Some apps will offer to send data to a webhook and ask yo to input a URL - the one you get from Zapier is the one to use in these situations.
Once switched on, these zaps will run instantly when it receives new data from an external app.
In this guide, our friend Jimmy Rose shows you how to setup a catch hook-triggered zap:
In much the same broad way, adding webhooks as action steps in your zap, allows you to both send data to and retrieve data from external apps.
When adding the step, you'll have a few different options, but the main ones you'll likely be using are as follows.
This is when you want to send data to an app and have the app do something with it - like create a new record or object
This is where you're asking an app to send you data from an existing record or object.
In both cases, you'll need to provide an endpoint URL (get this from the API docs) and parameters - snippets of information that the API will need to either create or find the desired record.
Beyond that, there are a few other configuration options that typically correspond to the various data requirements some APIs have.
In the following videos from our friend Gavin Wiener, he demonstrates how to setup both GET and POST webhook steps in Zapier.
Given that the smooth running of webhook zaps is somewhat dependant on the API of the apps you're sending data to, and receiving from, there are a whole load of things that can go wrong.
Luckily, Zapier has seen a lot of the same issues before, and has written this guide to help you troubleshoot:
Webhooks are a huge topic, and with proficiency, there is so much you can do with them - and not just in Zapier.
If you've got 2.5 hours to spare, we highly recommend watching this video:
In conclusion, webhooks are a powerful way to extend your workflows, particularly where an app might not already exist on Zapier. While there is a learning curve to using them, it's well worth investing.