What is a Webhook & What Do They Do?
by Tony Shannon
If you’ve been using several different software platforms and building onto their functionality through APIs, you have probably come across the term “webhook” recently. A webhook is an API concept that has grown rapidly in popularity in recent years.
As the web has changed in recent years, webhooks have become more useful and applicable in most uses. Webhooks are particularly useful when events trigger programmatic actions.
They present developers and companies with a way to implement event reactions in a way that is resource-light and usually simple to install.
If you develop your own software or use APIs to connect several platforms together, there is a good chance that you have or will come across webhooks in the near future. When you do, it is important that you are able to understand them so that you can identify when a webhook will be the best choice in specific circumstances.
So, What Is a Webhook?
A webhook (which is also known as a web callback or HTTP push API), in short, allows for apps to provide other applications with data in real time. A webhook is responsible for pushing the data from one application to another in real time.
Let’s say that you had one app that tracks the number of steps that you take in a day, and another that would turn that data into visual graphs. Since the visualization app didn’t collect the data, it would need another app to provide data on how many steps you have taken. The best way for this data to be pushed toward the graphing visualization app would be through webhooks.
This differs from typical APIs. APIs are not able to push data in real time and instead would require that you poll for data frequently to keep other apps updated with the freshest information. Webhooks deliver information as it happens, meaning that the apps receive the data immediately.
Webhooks are sometimes referred to as “reverse APIs.” But that is just a nickname — webhooks don’t run backwards. Webhooks still require an API to use, where the webhook will make an HTTP request to your app and then the app will be charged with reading the incoming request.
Difference Between a Webhook and API
Put into simple terms — an API does what you want it to do when you ask it to. A webhook does what you want it to on its own when certain criteria are met or when certain events take place.
Let’s spell it out a bit. APIs can be used from Site A to communicate with Site B. In that communication, the API is able to perform a number of actions — namely, List, Create, Edit, or Delete items. The API requires very specific instructions in order to do those things. Additionally, the API is not able to deliver data in real-time as it happens.
A webhook is different. They are automated calls from Site B to another server. Those calls are typically triggered when a specific event takes place. In an example, if a new user signed up on Site B the automated call to Site A may request that Site A send out a welcome email to the new user. This happens in real time as the event (the user signing up) triggered the automated call to go out.
When Are Webhooks Used?
Using the above examples, it makes it easy to understand when a webhook might be a better choice than an API. Any situation requires that data be passed immediately is an excellent situation to use a webhook instead of a traditional API.
They are typically used in situations where the user has to interact with some piece of data and it is imperative that the data is passed to the correct server or location from its original storage point.
Webhooks are often used to perform small requests and tasks. These small tasks might not require a full API, which would be wasteful when a webhook could pass the information more quickly and with less overhead.
In instances where a platform requires real-time updates and you don’t want to waste your resources, webhooks are an excellent solution.
I would like to offer one word of caution, however. Because webhooks aren’t used to regularly request data and only request data when an action takes place or new data becomes available, it is possible to miss new updates when the system goes offline.
You also won’t have as much control over the flow of data, as webhooks always send the full data record with each update based on the parameters of the webhook itself.
I’ve provided a few examples in this article, but let’s take a look at some real-life use cases for webhooks, which may be able to paint a better picture of their usage.
- MailChimp uses webhooks for their platform. Events like subscriptions, unsubscribes, profile updates, and other actions can all use webhooks. If you have a weekly newsletter, you’ll be notified when someone changes their information (like their email identification) and then you can update the subscribers list directly in your CRM system. This is important for when a subscriber changes their email address or unsubscribes from your mailing list.
- Zapier is basically a platform built on the back of webhooks. Their platform allows you to connect specific apps together and when an event occurs, an action or data delivery is triggered in another app. Familiarizing yourself with Zapier and how it works is a great way to better understand webhooks and how they can be used within your systems.
- Stripe uses webhooks to send automated emails to customers whenever a subscription payment fails to go through.
Webhooks are a Useful Tool
Webhooks are an effective, resource-light solution to passing data between apps and servers. While they are not always the best choice, there are many specific instances (typically whenever you want an action to happen automatically and instantly) where they would be the right development choice. When it comes to technology and marketing, webhooks offer significant advantages in collecting real time data.
Tony Shannon is the President of RiseFuel, a technology marketing company that helps companies leverage the HubSpot Growth Stack to increase leads, modernize sales processes and grow revenue.