From twilio-developer-kit
Twilio Messaging channel overview and onboarding guide. Covers all channels (SMS, WhatsApp, RCS, Facebook Messenger), the unified Messages API, channel selection guidance, and the recommended setup sequence from first message to production monitoring. Start here before choosing a specific messaging channel.
npx claudepluginhub twilio/ai --plugin twilio-developer-kitThis skill uses the workspace's default tool permissions.
Twilio's Messaging platform sends and receives messages across multiple channels through a single API. All channels use `client.messages.create()` — only the address format changes.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Twilio's Messaging platform sends and receives messages across multiple channels through a single API. All channels use client.messages.create() — only the address format changes.
| Channel | Address format | Rich media | Template required? | Reach | Skill |
|---|---|---|---|---|---|
| SMS/MMS | +15551234567 (E.164) | MMS: images/video, US/CA/AU only | No | Global (180+ countries) | twilio-sms-send-message |
whatsapp:+15551234567 | Yes (images, docs, video, location) | Outside 24hr window: yes | 190+ countries | twilio-whatsapp-send-message | |
| RCS | Same number (via Messaging Service) | Yes (rich cards, carousels, video) | No | US + expanding globally | twilio-rcs-messaging |
| Facebook Messenger | messenger:{page-scoped-id} | Yes | No | Global | — |
| If you need to... | Use | Why |
|---|---|---|
| Reach any phone number | SMS | Universal — works on every phone, no app needed |
| Send rich media globally | Images, docs, video work worldwide (MMS is US/CA/AU only) | |
| Send time-sensitive alerts (OTP, outages) | SMS | Highest open rates, no app dependency |
| Reach opted-in audience at lower cost | No per-message fee in many markets | |
| Run marketing campaigns across channels | Start with twilio-marketing-promotions-advisor | Planner skill handles channel mix, compliance, and fallback |
| Send transactional notifications | Start with twilio-notifications-alerts-advisor | Planner skill handles urgency-based channel routing |
Not sure? Use a Planner skill first — it will qualify your use case and recommend the right channel combination.
All channels share messages.create(). The only difference is the address format in from and to.
Python
import os
from twilio.rest import Client
client = Client(os.environ["TWILIO_ACCOUNT_SID"], os.environ["TWILIO_AUTH_TOKEN"])
# SMS
sms = client.messages.create(
from_="+15017122661",
to="+15558675310",
body="Your order shipped."
)
# WhatsApp — same API, prefixed addresses
whatsapp = client.messages.create(
from_="whatsapp:+15017122661",
to="whatsapp:+15558675310",
body="Your order shipped."
)
Node.js
const client = require("twilio")(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
// SMS
const sms = await client.messages.create({
from: "+15017122661",
to: "+15558675310",
body: "Your order shipped.",
});
// WhatsApp — same API, prefixed addresses
const whatsapp = await client.messages.create({
from: "whatsapp:+15017122661",
to: "whatsapp:+15558675310",
body: "Your order shipped.",
});
Set up messaging in this order. Each step builds on the previous.
Get a Twilio number, send your first SMS.
twilio-account-setup → twilio-sms-send-messageCreate a Messaging Service and add your numbers to a sender pool. Use messagingServiceSid instead of from for all production sends — this enables geo-match, sticky sender, and unlocks compliance features.
twilio-messaging-servicesRegister for A2P 10DLC (required for US SMS traffic). Set up opt-out handling.
twilio-compliance-onboarding → twilio-compliance-trafficEnable SMS pumping protection (prevents artificial traffic inflation) and compliance toolkit (quiet hours, reassigned number detection) on your Messaging Service.
twilio-messaging-services (Compliance Toolkit + SMS Pumping Protection sections)Add WhatsApp or other channels. Use Content Templates for cross-channel message formatting.
twilio-whatsapp-send-message → twilio-content-template-builderEnable intelligent alerts for error pattern detection. Set up status callbacks for delivery tracking.
twilio-messaging-services (Intelligent Alerts section) → twilio-messaging-webhooksmessages.create() targets one channel. For multi-channel fallback, implement sequencing in your application (e.g., try SMS, on failure send WhatsApp).twilio-whatsapp-send-message.from number sends don't get these protections.twilio-sms-send-messagetwilio-rcs-messagingtwilio-whatsapp-send-messagetwilio-messaging-servicestwilio-marketing-promotions-advisortwilio-notifications-alerts-advisor