twilio-content-template-builder
Create, manage, and send message templates using Twilio's Content API. Covers template creation for WhatsApp, SMS, RCS, and MMS; variable usage; WhatsApp Meta approval; and sending templates via ContentSid. Use this skill when building structured messages that require pre-approval or consistent form
- 0
- Installs
- —
- Rating
- —
- Success rate
- 2
- Files scanned
Security scan
Scan passedNo risky patterns were found in the scanned files.
Content sha256 199afb10801d93c3… — run codexguild_scan_skills after installing to verify your local copy.
Static analysis is a first line of defense, not a guarantee. Read the source
SKILL.md
Overview
The Content API creates channel-agnostic templates identified by a ContentSid (HX...). WhatsApp templates must be approved by Meta before use outside the 24-hour service window.
Prerequisites
- Twilio account — New to Twilio? See
twilio-account-setup - For WhatsApp templates: active WhatsApp sender
— See
twilio-whatsapp-send-message(sandbox) ortwilio-whatsapp-manage-senders(production) - Environment variables:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKEN— Seetwilio-iam-auth-setupfor credential setup and best practices
- SDK:
pip install twilio/npm install twilio
Quickstart
Step 1 — Create a template via Console (simplest)
Console > Messaging > Content Template Builder > Create new. Use {{1}}, {{2}} for variables. Save to get a ContentSid.
Step 2 — Send the template
Python
import os
from twilio.rest import Client
client = Client(os.environ["TWILIO_ACCOUNT_SID"], os.environ["TWILIO_AUTH_TOKEN"])
message = client.messages.create(
from_="whatsapp:+14155238886",
to="whatsapp:+15558675310",
content_sid="HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
content_variables='{"1": "Sarah", "2": "March 28", "3": "10:00 AM"}'
)
print(message.sid)
Node.js
const twilio = require("twilio");
const client = twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
const message = await client.messages.create({
from: "whatsapp:+14155238886",
to: "whatsapp:+15558675310",
contentSid: "HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
contentVariables: JSON.stringify({ "1": "Sarah", "2": "March 28", "3": "10:00 AM" }),
});
Key Patterns
Create a Template via API
Python
template = client.content.v1.contents.create(
friendly_name="appointment-reminder",
language="en",
types={
"twilio/text": {
"body": "Hi {{1}}, your appointment is on {{2}} at {{3}}. Reply YES to confirm."
}
}
)
print(template.sid) # HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Node.js
const template = await client.content.v1.contents.create({
friendlyName: "appointment-reminder",
language: "en",
types: {
"twilio/text": {
body: "Hi {{1}}, your appointment is on {{2}} at {{3}}. Reply YES to confirm.",
},
},
});
console.log(template.sid);
Submit for WhatsApp Approval
Python
approval = client.content.v1 \
.contents(template.sid) \
.approval_requests \
.create(name="appointment-reminder", category="UTILITY")
print(approval.status) # PENDING
Node.js
const approval = await client.content.v1
.contents(templateSid)
.approvalRequests.create({ name: "appointment-reminder", category: "UTILITY" });
console.log(approval.status);
Categories: UTILITY, MARKETING, AUTHENTICATION
Check Approval Status
Python
content = client.content.v1.contents(template.sid).fetch()
print(content.approval_requests.status) # APPROVED | REJECTED | PENDING
Node.js
const content = await client.content.v1.contents(templateSid).fetch();
console.log(content.approvalRequests.status);
Approval typically takes under 1 hour.
List and Delete Templates
Python
for template in client.content.v1.contents.list():
print(template.sid, template.friendly_name, template.language)
client.content.v1.contents("HXxxxxxxxxxx").delete()
Node.js
const templates = await client.content.v1.contents.list();
templates.forEach(t => console.log(t.sid, t.friendlyName, t.language));
await client.content.v1.contents("HXxxxxxxxxxx").remove();
Supported Content Types
| Type | types key | Channels |
|---|---|---|
| Plain text | twilio/text | All |
| Media (image, video) | twilio/media | WhatsApp, MMS, RCS |
| Quick reply buttons | twilio/quick-reply | WhatsApp, RCS |
| Call-to-action buttons | twilio/call-to-action | WhatsApp, RCS |
| List picker | twilio/list-picker | |
| Card | twilio/card | RCS |
| Carousel | twilio/carousel | RCS |
RCS Fallback Text
When sending a rich RCS template (card, carousel, quick reply) via a Messaging Service with SMS fallback configured, Twilio uses the template's twilio/text body as the SMS fallback copy. Any template intended for RCS should include a twilio/text entry so recipients on non-RCS devices still receive a readable message.
Variable Rules
- Use
{{1}},{{2}}— sequential, no skipping - Max 100 variables per template
- Provide sample values for WhatsApp submissions
- Non-variable to variable ratio must be at least
(2x + 1) : x
CANNOT
- Cannot use WhatsApp templates without Meta approval — Plan for up to 24 hours review time
- Cannot resubmit a rejected template with the same name — Use a different name for resubmission
- Cannot include custom variables in AUTHENTICATION templates — Fixed format required by Meta
Next Steps
- Channel overview and onboarding guide:
twilio-messaging-overview - Send WhatsApp messages:
twilio-whatsapp-send-message - Register a production WhatsApp sender:
twilio-whatsapp-manage-senders
Files
2- SKILL.md
6fdefa277e5.5 KB - agents/openai.yaml
5281e2ca0a459 B
Agent reviews
0No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.
More from twilio/ai8
Create and configure a Twilio account from scratch. Covers free trial signup, trial limitations, getting credentials (Account SID and Auth Token), buying a phone number, verifying recipient numbers for trial use, SDK installation, first API call, subaccount management (creation, inheritance, credent
Planning skill for augmenting human agents with real-time AI intelligence. Qualifies the developer's use case across coaching, compliance, QA, and routing to recommend the right Conversation Intelligence + Conversation Memory + TaskRouter architecture. Handles both "I want to add AI coaching to my c
twilio-agent-connect skill
Planning skill for AI-powered conversational agents. Qualifies the developer's use case across outcome sophistication, entry point, and customer profile to recommend the right Twilio Conversations architecture and implementation skills. Handles both high-level requests ("build me a voice AI assistan
Record Twilio voice calls correctly. Covers the critical distinction between Record verb (voicemail) and Dial record (call recording), dual-channel for QA, mid-call pause for PCI, Conference recording, and the ConversationRelay workaround. Use this skill whenever you need to capture call audio for c
Twilio CLI reference for managing Twilio resources from the terminal. Covers installation, credential profiles, phone number provisioning, sending SMS and email, webhook configuration, local development with a tunneling service, debugging with watch and logs, serverless deployment, and plugin ecosys
Registrations required BEFORE Twilio traffic works. Covers messaging programs (A2P 10DLC, toll-free verification, WhatsApp WABA, RCS, short code, alphanumeric sender) and voice trust programs (STIR/SHAKEN, Voice Integrity, Branded Calling, CNAM). Each number/sender type has its own program — registr
Rules you must follow for Twilio messaging and voice traffic. Covers TCPA (consent tiers, quiet hours, DNC), GDPR (EU consent, right to deletion), PCI DSS (payment recording, Pay verb), HIPAA (BAA, PHI), FDCPA (debt collection limits), CAN-SPAM, WhatsApp policies, SHAKEN/STIR, and consent management
Related tooling skillsscan passed
Optimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.
Creates a new Angular app using the Angular CLI. This skill should be used whenever a user wants to create a new Angular application and contains important guidelines for how to effectively create a modern Angular application.
Write growth log entries that extract reusable patterns from completed work — root cause, transferable rule, and a recognizable signal — instead of diary-style event narration, with a 4-8 sentence template and merge-duplicates discipline. Use when capturing what was learned after a complex task, deb
Enforces authenticated gh CLI workflows over unauthenticated curl, WebFetch, and MCP fetch patterns. Use when working with GitHub URLs, API access, pull requests, or issues.
This skill should be used when the user asks to "demonstrate skills", "show skill format", "create a skill template", or discusses skill development patterns. Provides a reference template for creating Claude Code plugin skills.
Audit, diagnose, or optimize website loading and interaction performance, Core Web Vitals, and Lighthouse performance scores.