What is a webhook?
Webhooks provide a sophisticated way for apps to communicate and exchange information with other apps in real time.
Let’s say you have a drop-shipping store implemented using Shopify that tracks when people complete an order. You ideally want to be able to notify shippers about orders and filter orders so they can start preparing the shipment. Basically, it is a way for your apps to talk to each other.
Wait, isn't that just APIs?
Well, they're similar but webhooks are so much simpler. APIs let you share data or functionality. For example, you might use a products API to look up a specific product by name, then view the product details. With most APIs there’s a request followed by a response. Basically, you have to do the work yourself. If you have an application that connects to another app via an API, you need to have ways to request the other app for new data when it needs it. With webhooks, there's no need for a request, instead the data gets sent the moment it becomes available.
In more technical terms, a webhook (also called a web callback or HTTP push API) is a way for one application to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately. Unlike typical APIs where you would need to poll for data very frequently in order to get it real-time. This makes webhooks much more efficient for both provider and consumer.
Webhooks are sometimes referred to as “Reverse APIs,” as they give you what amounts to an API spec, and you must design an API for the webhook to use. The webhook will make an HTTP request to your app (typically a POST), and you will then be charged with interpreting it.
Trust me, you need to use webhooks
Let me tell you how easy it is to use webhooks and why you need to use them. You don't even have to write any custom code to use them as the solutions that support webhooks already have built-in connectors that can snap together to create that beautiful integration that will save you so much time.
Imagine you have a website that sells products. Every time a customer pays you through a payment gateway like Paypal, you have to manually input their order and shipping details into your inventory management application. As the rate of new orders increase, this process can become tedious. If only Paypal and your inventory software could talk to each other. Wouldn't it be nice if an order is automatically added in your inventory software when a customer places an order?
Let's take a look at another example, say you want to connect a Shopify eCommerce website inventory with inventory from a custom CRM system within your company. You could set up a webhook so that every time a product is added or updated within Shopify, a webhook is triggered and calls back into your custom CRM, letting it know automatically and instantly that a new product was added or updated.
What if an app doesn’t have webhook integrations?
In this case, an application like Zapier can help you connect apps that don’t have webhook integrations and allow them to share data with one another.
At the end of the day…
To really understand webhooks, you just need to try them out for yourself. Start using them to connect some of your apps, and get a feel for it. My absolute ideal future is when all applications on earth implement APIs and webhooks and developers like myself won't have to write a single line of code to integrate any of them.