Learn

GuideAutomation & integrationsCompanion to APIs and connections

What is a webhook? Follow a change from event to result

A webhook sends a message to a configured receiver when a chosen event happens. Instead of repeatedly asking a service whether something changed, you arrange to receive an event message. [1]

In the fictional Demo Desk shop, order D-104 changes from Preparing to Ready for collection. We want a local practice dashboard to reflect that change. All information in this example is made up.

Asking versus being notified

With polling, the dashboard asks for the order’s status on a schedule. It might receive “Preparing” several times before receiving “Ready for collection.”

With a webhook, the shop sends a message after the status changes. The receiver is an endpoint: an address set up to accept these deliveries. The message’s data is called its payload. [1]

In our example, the payload contains an event ID, an order ID, and the new status. The event ID identifies this occurrence of a change; the order ID identifies the order itself.

A fictional order-ready event is verified, queued, acknowledged, and applied to a practice dashboard. Its event ID is marked processed. A duplicate delivery is acknowledged without another dashboard update.

Swipe sideways to see the whole diagram, or open it full size.

A delivery can arrive twice. In this practice design, delivery receipt and dashboard success are separate. A duplicate event does not create a second update.

Figure explanation: Four participants are shown: Demo Desk, a receiver, an event queue, and a practice dashboard. Demo Desk delivers event DEMO-E-17 saying D-104 is ready. The receiver verifies the sender and checks the event, saves an accepted event to the queue, and acknowledges receipt. The queue applies the ready status to the dashboard, receives confirmation, and marks the event processed. A later delivery of DEMO-E-17 is recognized as already processed and is not queued again. The receiver acknowledges it. The final counts are two deliveries and one dashboard update. Acknowledgment and successful downstream work are separate steps.

Sources

  1. GitHub: About webhooks. Event subscriptions, payload delivery, and polling. Accessed September 25, 2026.
  2. GitHub: Best practices for using webhooks and Validating webhook deliveries. Verification, acknowledgment, event checks, and delivery identifiers. Accessed September 25, 2026.
  3. Stripe: Webhooks. Provider-specific examples of duplicates, retries, and ordering limits. No Stripe account or payment is used in this lesson. Accessed September 25, 2026.

Demo Desk and the practice handler are original teaching examples, not a description of an installed integration.

Cookie preferences