Concepts

What Is a Webhook? Understanding It With a Restaurant Waiting Ticket

9 min read#webhook#api#automation#beginner#concept

Who this is forAnyone who stopped when an AI said 'register this URL as a webhook' and wants to know how webhooks differ from polling.

Series · AI automation glossary part 2 of 13, expand to see all
  1. What Is an API? Understanding It with One Snack Bar Order Slip
  2. What Is a Webhook? Understanding It With a Restaurant Waiting Ticket
  3. What Is a Server? A Computer That Stays On When Yours Doesn't
  4. What is a terminal? A plain-English guide to the CLI and shell
  5. AI automation terms explained: MCP, agent, context, skill, and secret
  6. Claude terms explained: Projects, Artifacts, Cowork, and scheduled tasks
  7. What Is a Database? Why Tables Look Alike but Lock Differently
  8. What Is Supabase? Tables, Auth, and Server Functions in One Place
  9. Auth and RLS Explained: Keep the Screen Open, Lock the Data
  10. What Is Google Apps Script? Running Your Code on Google's Servers
  11. What Is Playwright? Why AI Suddenly Opens a Chrome Window
  12. What Is Aside? An Agent Browser That Clicks Using Your Own Logins
  13. What Does AX Mean? AI Transformation vs. DX and 3 Workplace Bottlenecks

TL;DR: A webhook is an agreement that, when something happens, a signal is sent automatically to a pre-set address. It works exactly like a waiting ticket at a snack shop. Instead of repeatedly asking whether a table is free, you take a ticket, and when a table opens, the shop reaches out first. This article ties that structure to one analogy and ends with you receiving a real signal directly through webhook.site.

When you hand automation work to an AI, you sometimes get the answer “register this URL as a webhook.” In an earlier article, What Is an API?, I explained APIs using a snack-shop order slip. Webhooks work differently. You don’t send a request first, like with an order slip. Instead, the other side reaches out to you when something happens, even if you do nothing. The setting is still the same snack shop, but this time it’s the line outside the store, before you get a seat. You can follow this article without having read the earlier one.

This article is for anyone who is new to AI automation tools and stopped at the sentence “register a webhook.” By the end, you’ll understand why webhooks exist and will have received a real webhook signal yourself using webhook.site, a free service.

Contents

  1. Instead of checking every 10 minutes, you take a ticket
  2. Asking over and over is polling
  3. Translating waiting terms into computer terms
  4. Who sends the signal depends on the situation
  5. Try it: receive a signal with webhook.site
  6. If you want to read further

1. Instead of checking every 10 minutes, you take a ticket

Imagine you’re waiting outside a snack shop. If there are no free tables, you have two options. One is to go to the counter every few minutes and ask, “Is there a table free yet?” The other is to take a ticket, wait, and get a text when a table opens.

The first method is polling. The second is a webhook. Programs work the same way. You can build a program that repeatedly asks, “Is there a new order?” Or you can register an address once and only receive a signal at that address when an order actually comes in. When an AI says “register a webhook,” it means the second approach.

What happens while waiting = what happens with a webhook

Customer Take a ticket You register your contact details with the shop in advance
→
A table opens Event The moment something actually happens that is worth sending a signal about
→
Shop Reaches out first The shop texts the contact you registered, before you ask
→
Customer Receives the signal (webhook call) A notification arrives even though you didn't ask

2. Asking over and over is polling

What would happen without webhooks? A program would have no choice but to keep asking, “Is there new data?” every few seconds or minutes. This repeated asking has a name: polling. Checking the counter every 10 minutes to see if a table is free is polling. Taking a ticket and waiting for a text is a webhook.

Placing the two methods side by side makes the difference clear. On the left is polling, where the customer has to keep moving. On the right is a webhook, where the shop moves first.

Polling: go and ask every 10 minutes

  1. What the customer does Go to the counter and ask "Is a table free?" Even when no table is free, you keep going back to ask
  2. Most of the answers "Not yet" Nine out of ten trips are wasted
  3. Result Both the customer and the counter stay tied up Even when nothing has changed, every check takes effort

The party asking has to keep moving

Webhook: take a ticket and wait

  1. What the customer does Take one ticket and sit down There's no need to go back to the counter
  2. When a table opens The shop texts first Contact comes only at the moment you were waiting for
  3. Result Reacts precisely and only when needed No need to ask, so it takes less effort

The party informing moves first

3. Translating waiting terms into computer terms

Waiting Computer term Meaning
Take a ticket Webhook registration Giving the address where signals should be received, in advance
Go and ask every 10 minutes Polling Repeatedly checking whether something new has happened
A table opens Event Something worth sending a signal about actually happened
A text arrives Webhook call The signal arrives at the address you registered

You don’t need to memorize the words on the right. If you meet the sentence “the webhook listens” in an automation explanation an AI wrote for you, read it by swapping in the left column. It means “a ticket is hung up and waiting.”

4. Who sends the signal depends on the situation

One thing needs clarifying here. All the examples so far have run in one direction: you take the ticket, and the other side sends the signal to you. But webhooks aren’t fixed in one direction. The reverse case, where the other side gives you an address, you register it, and you send signals to that address, is also called a webhook.

For example, Discord creates an address for each channel. If you register that address in your automation, your side can send results to it whenever a job finishes, and a post appears in the Discord channel. This time you’re not the customer taking the ticket; you’re playing the role of the shop that issues the ticket. How to create one on the actual screen is covered in Creating a Webhook in Discord.

5. Try it: receive a signal with webhook.site

You’ll quickly feel that you don’t need a special tool to receive a webhook once you try it yourself. All you need is a browser, and no sign-up is required.

  1. Open https://webhook.site in your browser.
  2. As soon as you arrive, a unique address that is hard to guess is generated automatically. At the top of the screen you’ll see a long address starting with https://webhook.site/. However, this address is not protected by a login, so anyone who knows it can view the records inside. This address is your ticket.
  3. Copy that address, paste it into a new tab, and go there. That visit itself is one request sent to that address.
  4. Go back to the original tab (the webhook.site screen), and the request you just sent appears immediately in the list on the left.

On a real service, much more varied content arrives at this kind of address. For example, an order system might send data in a form like the one below (this is an example, not something I actually received).

{"event":"new_order","item":"떡볶이","price":4000}

What you’ll check yourself is simpler than this. Because the visit to the address is itself the signal, only the visit record is saved, with no extra content. Below is the result I got when I actually followed these steps.

Actual result I confirmed (browser visit measured on August 31, 2026)

Signal sent Visiting the ticket address in a new tab The visit itself is one request sent to that address
→
webhook.site screen 1 record added (immediately on visit) The visit time and the address sent to appear in the list as-is

The visit to the address is itself the signal, and as I confirmed, it is recorded in the list.

The free address has two limits. It is automatically deleted along with its data after seven days, and before that it records at most 100 entries. If your address disappears during practice or stops recording, go to webhook.site again and get a new address.

6. If you want to read further

This article focused on building the framework with an analogy. Once that framework is in place, the two resources below are good for filling in the details. Both are in Korean and free.

  • Toss Payments Developer Center, “Webhook” (Toss Payments is a major South Korean payment provider.) It summarizes the webhook concept and the difference from polling, and links to a separate document for the registration steps.
  • BizSpring, “Understanding Webhooks” (BizSpring is a South Korean tech blog.) It uses real-life examples such as payment completion, issue creation, and delivery tracking, and summarizes the difference from polling in a table.

The seven-day retention period and 100-record limit for free webhook.site addresses were confirmed in the official FAQ on August 31, 2026. Free plan terms can change on the service’s side, so if the screen shows different information, follow what the screen says.

Frequently asked questions

What is a webhook and how does it differ from polling?
A webhook is an agreement that, when something happens, a signal is sent automatically to a pre-set address. You register the address once, so you don't have to keep asking whether anything new has happened.
How do I receive a test webhook signal with webhook.site?
Open webhook.site in a browser; it generates a unique address with no sign-up needed. Paste that address into a new tab and visit it. The visit then appears as a request in the list on the left of the webhook.site screen.

Want the full system? The Claude Code & Codex Skills guidebook collects the skills and subagents behind this blog, from $19.