All posts
April 25, 2026 · Snapdock

What Is a Webhook? How Apps Talk to Each Other Without You Being Involved.

You have been building automations with Claude, ChatGPT, Cursor, or Bolt and at some point you encountered the word "webhook." Maybe Zapier asked you for a…

You have been building automations with Claude, ChatGPT, Cursor, or Bolt and at some point you encountered the word “webhook.” Maybe Zapier asked you for a webhook URL. Maybe a payment service said it would send webhook events. Maybe your AI mentioned setting up a webhook endpoint and you nodded along. Webhooks are one of those concepts that sounds technical but describes something simple: a way for one app to automatically notify another app that something happened.

Here is the plain English explanation.

The Problem Webhooks Solve

Imagine you are waiting for an important package. You have two options.

Option one: call the courier company every five minutes to ask if it has arrived yet. Exhausting, inefficient, and you are still the one doing all the work.

Option two: give the courier your phone number and ask them to call you the moment it arrives. You do nothing until the moment it matters.

Option one is how most software used to work. It is called polling, and it means your app constantly checks another service for updates. Inefficient, slow, and resource-heavy.

Option two is how webhooks work. Instead of your app constantly asking “has anything happened?”, you give the other service a URL and say “when something happens, send a message here.” The other service sends the message. Your app receives it and does whatever it needs to do.

A webhook is that URL. An address your app provides so other services can reach it when something worth knowing about occurs.

A Real Example

You use Stripe to take payments in your app. When someone pays, you want your app to immediately send them a confirmation email and unlock their account.

Without webhooks: your app would have to check Stripe every few seconds asking “did someone just pay?” Wasteful and slow.

With webhooks: you give Stripe a webhook URL for your app. When a payment completes, Stripe sends a message to that URL instantly. Your app receives the message, sees that a payment happened, sends the confirmation email, and unlocks the account. All automatically, in seconds.

You did not have to build a system that checks Stripe constantly. You just had to build a door for Stripe to knock on.

What a Webhook URL Looks Like

A webhook URL is just a regular URL that points to a specific part of your app designed to receive incoming messages. Something like:

https://yourapp.com/webhooks/stripe

Your app has code running at that address that knows how to handle whatever Stripe sends. When Stripe sends a payment notification, your code at that URL processes it.

Setting up a webhook in most services means:

  1. Going to the service’s settings and finding “Webhooks” or “Integrations”
  2. Pasting your webhook URL
  3. Selecting which events you want to be notified about
  4. Saving

The code that handles incoming webhooks is called a webhook handler. Ask your AI: “Can you write a webhook handler for my app that receives [describe the event] from [service name] and [describe what it should do]?” It will write the handler and tell you exactly what URL to register with the service.

The Most Common Services That Use Webhooks

Stripe sends webhooks for payments, refunds, subscription changes, and failed charges.

GitHub sends webhooks when code is pushed, pull requests are opened, or issues are created.

Shopify sends webhooks for new orders, inventory changes, and customer events.

Slack sends webhooks for incoming messages to specific channels.

Zapier and Make both work extensively with webhooks as triggers and actions.

If a service you use has an “Integrations” or “Developer” section, it almost certainly supports webhooks.

Do You Need to Understand Webhooks to Use Them?

Not deeply. If you are using Zapier or Make to connect services, webhooks are handled for you behind the scenes. Zapier calls its webhook URLs “Webhooks by Zapier” and you just paste the URL where the service asks for it.

If you are building a custom app and need to receive webhook events directly, you need a webhook handler in your code. Your AI can write this. Tell it what service is sending the webhook, what event triggers it, and what you want your app to do when it receives it.

The One Thing to Remember

A webhook is a URL you provide to another service so it can notify your app when something happens, without your app having to constantly check. Think of it as giving a courier your phone number instead of calling them every five minutes. Most modern services support webhooks. Your AI can write the code to handle incoming webhooks. You just need to register the URL in the service’s settings.


Want your app handling webhooks and running reliably? → Snapdock

New here? These might help: What is an API? The honest explanation nobody bothers to give you. → What is a cron job? The simplest explanation you will find. →