---
"@context": https://schema.org
"@type": TechArticle
"@id": https://www.twilio.com/docs/usage/webhooks#article
headline: Introduction to Webhooks
description: Launching point for information about Twilio webhooks, including product-specific guides, tutorials, and getting started information.
url: https://www.twilio.com/docs/usage/webhooks
inLanguage: en
dateModified: 2026-10-14T20:48:46.000Z
author:
  "@type": Organization
  name: Twilio Developer Education Team
publisher:
  "@type": Organization
  name: Twilio
---

# Introduction to Webhooks

To notify your web app when events like incoming phone calls or SMS messages occur, Twilio uses *webhooks*. While the Twilio REST API handles requests *from* your app *to* Twilio, webhooks handle the reverse: requests *from* Twilio *to* your app responding to events that Twilio processes.

## What are webhooks?

After certain events occur in Twilio, Twilio sends an [HTTP][] request to a webhook URL you provided to Twilio for your web app. This request is called a *webhook* or *callback*. Your web app receives a webhook because a user did something that *your* app should handle. The Twilio request includes details of the event like the incoming phone number or the body of an incoming message. Many other modern web services like GitHub and Slack also make use of webhooks to communicate events.

![SMS webhook request cycle from sender to Twilio to recipient.](https://docs-resources.prod.twilio.com/79151a29480b443e107245a4c278fddeee9a1f654e2eaf1c57af02ba00a9d971.gif)

> \[!NOTE]
>
> After a customer hangs up on a voice call to a customer service phone number that Twilio provides, Twilio can send a webhook to your web app. Your web app could then perform one or more of the following actions:
>
> * Tag the customer service agent who handled that phone call as available.
> * Add a record to the customer's profile about the length of the call.
> * Prompt the customer service agent to write follow-up notes.

The patterns that some Twilio products vary due to platform or other differences. Services like Twilio use webhooks because your web app doesn't maintain an open session or connection with that service. This results in the service making an asynchronous HTTP request to your app.

## Types of webhoooks

Twilio manages two types of webhooks: webhooks for its products and webhooks for runtime.

### Product-based webhooks

Each Twilio product handles different events. Twilio [Voice][], [Messaging][], [Conversations][], and [Sync][] each use webhooks differently. To learn more about which webhooks each product uses and how to set them up with your app, see the documentation for that product.

### Twilio runtime webhooks

Twilio includes [webhooks for events][events-webhook] other than product events. When events occur in your app, you can also have Twilio send you webhooks. When Twilio calls your web app, these events include [billing levels reaching a threshold][usage-triggers] or errors that occur. You can set up a pipeline that sends your webhooks to Slack, Microsoft Teams, or another chat system. You can also set up a webhook that send you email notifications.

## What do you do with incoming webhooks?

Twilio sends some webhooks to ask for instructions. An inbound SMS message to a Twilio phone number triggers a webhook to your web app. Your web app would then return a valid [Twilio Markup Language (TwiML)][TwiML] document to the Twilio webhook request with instructions on how to proceed.

Twilio sends other webhooks to provide information. A webhook might notify your web app that a voice recording finished. Twilio doesn't require a response from your web app, other acknowledging receipt.

## Get started with webhooks

To get started with Twilio webhooks, see the [Getting started with Twilio webhooks guide][].

## Configure how Twilio delivers your webhooks

With the [Webhooks configuration API][config], you can control how Twilio authenticates, signs, and delivers each outbound webhook, based on the webhook's URL. With this API, you can do the following:

* [Authenticate Twilio to your endpoints][auth] with OAuth 2.0, Basic, or Digest credentials.
* [Sign requests with a key][keys] you manage instead of your account authentication token.
* Set the [timeouts, retries, and edge zones][settings] Twilio uses and can collect as [webhook rules][rules].

To move an existing endpoint off credentials and overrides in its URL, see [Migrate to the Webhooks configuration API][migrate].

## What's next?

To learn more, see how [webhooks][webhooks-overview] work, how to [validate that inbound webhooks come from Twilio][webhook-security], and [answers to common questions][webhooks-faq].

## Webhook tutorials

To implement webhooks and explore their capabilities, follow these tutorials:

* [Track Delivery Status of Messages][]
* [Receive and Reply to SMS and MMS Messages][]
* [Serverless Webhooks with Azure Functions and C#][]
* [Serverless Webhooks with Azure Functions and Node.js][]
* [Creating an ASP.NET MVC Webhook Project][]

[auth]: /docs/usage/webhooks/webhook-auth-profiles

[config]: /docs/usage/webhooks/webhook-configuration

[migrate]: /docs/usage/webhooks/webhook-migration

[Conversations]: /docs/conversations-classic/conversations-webhooks

[keys]: /docs/usage/webhooks/webhook-shared-keys

[rules]: /docs/usage/webhooks/webhook-rules

[settings]: /docs/usage/webhooks/webhook-settings

[Creating an ASP.NET MVC Webhook Project]: /docs/usage/tutorials/how-to-set-up-your-csharp-and-asp-net-mvc-development-environment

[events-webhook]: /docs/usage/troubleshooting/debugging-event-webhooks

[Getting started with Twilio webhooks guide]: /docs/usage/webhooks/getting-started-twilio-webhooks

[HTTP]: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

[Messaging]: /docs/usage/webhooks/messaging-webhooks

[webhooks-overview]: /docs/usage/webhooks/webhooks-overview

[usage-triggers]: /docs/usage/api/usage-trigger

[Receive and Reply to SMS and MMS Messages]: /docs/messaging/tutorials/how-to-receive-and-reply

[Serverless Webhooks with Azure Functions and C#]: /docs/usage/tutorials/serverless-webhooks-azure-functions-and-csharp

[Serverless Webhooks with Azure Functions and Node.js]: /docs/usage/tutorials/serverless-webhooks-azure-functions-and-node-js

[Sync]: /docs/sync/webhooks

[Track Delivery Status of Messages]: /docs/messaging/guides/track-outbound-message-status

[Voice]: /docs/usage/webhooks/voice-webhooks

[webhook-security]: /docs/usage/webhooks/webhooks-security

[webhooks-faq]: /docs/usage/webhooks/webhooks-faq

[TwiML]: /docs/glossary/what-is-twilio-markup-language-twiml
