plugins/twilio-developer-kit/skills/twilio-messaging-overview/SKILL.md
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 skillsauth add openai/plugins twilio-messaging-overviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 | 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 | WhatsApp | 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 | WhatsApp | 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-advisordevelopment
Use when the user wants to spin up / create / launch / provision a DigitalOcean droplet (or "a remote dev box on DO") and connect to it from Codex as a remote SSH workspace.
data-ai
Search through Microsoft Teams chats or channels, triage unread or recent activity, draft follow-ups, and manage Planner tasks through connected Teams data.
tools
Motion / animation context for the `use_figma` MCP tool — animating Figma nodes via manual keyframes, animation styles, easing, and timeline duration. Load alongside figma-use whenever a task involves adding, editing, or inspecting animation on a node.
development
SwiftUI ↔ Figma translation. Use whenever the user mentions Swift, SwiftUI, iOS, iPhone, or iPad — in EITHER direction — translating a Figma design into SwiftUI (design → code), or pushing SwiftUI views / screens / tokens back into a Figma file (code → design). Triggers on phrases like 'implement this Figma design in SwiftUI', 'build this screen in Swift', 'push this SwiftUI view to Figma', 'mirror my Swift code in a Figma file', or whenever a Figma URL appears alongside `.swift` files / an `.xcodeproj`. Routes to a direction-specific reference doc; loads alongside `figma-use` for the code → design path.