twilio-messaging-webhooks

Handle inbound Twilio messages and delivery status callbacks via webhook endpoints.

5.3k|765|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/openai/plugins --skill twilio-messaging-webhooks
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: twilio-messaging-webhooks
Source: https://github.com/openai/plugins/tree/main/plugins/twilio-developer-kit/skills/twilio-messaging-webhooks
Command: npx skills add https://github.com/openai/plugins --skill twilio-messaging-webhooks

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires twilio, flask, express.

What problem does it solve?

Building servers that receive inbound SMS, MMS, WhatsApp, and RCS messages and track outbound delivery status requires correctly implementing Twilio webhook contracts, TwiML responses, and signature validation, which is error-prone without guidance.

Core Features & Use Cases

  • Inbound Message Handling: Receive messages across SMS, MMS, WhatsApp, and RCS, parse webhook parameters like Body, From, and NumMedia, and reply with TwiML.
  • Delivery Status Tracking: Configure status callbacks to monitor the queued, sent, delivered, undelivered, and failed lifecycle of outbound messages.
  • Webhook Security: Validate X-Twilio-Signature headers with the Twilio RequestValidator to reject forged requests.
  • Use Case: A support team wants to auto-reply to customer WhatsApp messages and log delivery failures. This Skill provides Flask and Express handlers that respond with TwiML and process status callbacks with error codes.

Quick Start

Set up a Flask or Express endpoint that receives inbound Twilio messages, replies with TwiML, and validates the Twilio request signature.

Frequently Asked Questions about twilio-messaging-webhooks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I receive inbound SMS messages with Twilio webhooks?

Create a POST endpoint that reads form parameters like Body, From, and MessageSid, then return a TwiML MessagingResponse to reply or an empty response to acknowledge. Configure the webhook URL under your phone number's Messaging settings in the Twilio Console.

How to validate Twilio webhook signatures in Flask or Express?

Use Twilio's RequestValidator in Python or validateRequest in Node.js with your auth token, the request URL, parameters, and the X-Twilio-Signature header. Return 403 Forbidden when validation fails to reject forged requests.

Does Twilio webhook handling work for WhatsApp and RCS messages?

Yes, the same webhook pattern works across SMS, MMS, WhatsApp, and RCS. The difference is that WhatsApp and RCS webhook URLs are configured on the sender rather than the phone number, and From addresses use channel prefixes like whatsapp:+.

How do I track Twilio message delivery status?

Pass a statusCallback URL when creating the message, then handle POST requests containing MessageSid, MessageStatus, and ErrorCode. Statuses flow from queued to sent to delivered, or undelivered and failed, and your handler should return HTTP 204.

Why does Twilio return error 11200 for my webhook?

Error 11200 means Twilio could not reach your webhook URL. Verify the endpoint is publicly accessible with curl, check DNS, firewall rules, and SSL certificate validity, and remember ngrok URLs change on restart.

What are the limitations of Twilio webhook responses?

Webhooks must respond within 15 seconds or Twilio retries, replies must use Content-Type text/xml with TwiML, and status callbacks are best-effort since delivered status requires carrier confirmation.