Agent Skillsopenai/plugins › twilio-content-template-builder

twilio-content-template-builder

GitHub

用于通过Twilio Content API创建、管理及发送跨渠道消息模板(WhatsApp/SMS等),支持变量替换及Meta审批流程,适用于需预审批或统一格式的 structured messages。

plugins/twilio-developer-kit/skills/twilio-content-template-builder/SKILL.md openai/plugins

Trigger Scenarios

需要创建消息模板 提交WhatsApp模板审核 使用ContentSid发送消息

Install

npx skills add openai/plugins --skill twilio-content-template-builder -g -y
More Options

Non-standard path

npx skills add https://github.com/openai/plugins/tree/main/plugins/twilio-developer-kit/skills/twilio-content-template-builder -g -y

Use without installing

npx skills use openai/plugins@twilio-content-template-builder

指定 Agent (Claude Code)

npx skills add openai/plugins --skill twilio-content-template-builder -a claude-code -g -y

安装 repo 全部 skill

npx skills add openai/plugins --all -g -y

预览 repo 内 skill

npx skills add openai/plugins --list

SKILL.md

Frontmatter
{
    "name": "twilio-content-template-builder",
    "description": "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 formatting across channels."
}

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) or twilio-whatsapp-manage-senders (production)
  • Environment variables:
    • TWILIO_ACCOUNT_SID
    • TWILIO_AUTH_TOKEN — See twilio-iam-auth-setup for 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 WhatsApp
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

Version History

  • 11c74d6 Current 2026-07-19 09:48

Same Skill Collection

.agents/skills/plugin-creator/SKILL.md
plugins/airtable/skills/airtable-cli/SKILL.md
plugins/airtable/skills/airtable-filters/SKILL.md
plugins/airtable/skills/airtable-overview/SKILL.md
plugins/atlassian-rovo/skills/capture-tasks-from-meeting-notes/SKILL.md
plugins/atlassian-rovo/skills/generate-status-report/SKILL.md
plugins/base44/skills/base44-cli/SKILL.md
plugins/base44/skills/base44-sdk/SKILL.md
plugins/base44/skills/base44-troubleshooter/SKILL.md
plugins/boltz-api-cli/skills/boltz-check-status/SKILL.md
plugins/boltz-api-cli/skills/boltz-cli-setup/SKILL.md
plugins/boltz-api-cli/skills/boltz-protein-design/SKILL.md
plugins/boltz-api-cli/skills/boltz-protein-screen/SKILL.md
plugins/boltz-api-cli/skills/boltz-small-molecule-adme/SKILL.md
plugins/boltz-api-cli/skills/boltz-small-molecule-design/SKILL.md
plugins/boltz-api-cli/skills/boltz-small-molecule-screen/SKILL.md
plugins/boltz-api-cli/skills/boltz-structure-and-binding/SKILL.md
plugins/box/skills/box/SKILL.md
plugins/brighthire/skills/brighthire/SKILL.md
plugins/build-ios-apps/skills/ios-app-intents/SKILL.md
plugins/build-ios-apps/skills/ios-debugger-agent/SKILL.md
plugins/build-ios-apps/skills/ios-ettrace-performance/SKILL.md
plugins/build-ios-apps/skills/ios-memgraph-leaks/SKILL.md
plugins/build-ios-apps/skills/ios-simulator-browser/SKILL.md
plugins/build-ios-apps/skills/swiftui-liquid-glass/SKILL.md
plugins/build-ios-apps/skills/swiftui-performance-audit/SKILL.md
plugins/build-ios-apps/skills/swiftui-ui-patterns/SKILL.md
plugins/build-ios-apps/skills/swiftui-view-refactor/SKILL.md
plugins/build-macos-apps/skills/appkit-interop/SKILL.md
plugins/build-macos-apps/skills/build-run-debug/SKILL.md
plugins/build-macos-apps/skills/liquid-glass/SKILL.md
plugins/build-macos-apps/skills/packaging-notarization/SKILL.md
plugins/build-macos-apps/skills/signing-entitlements/SKILL.md
plugins/build-macos-apps/skills/swiftpm-macos/SKILL.md
plugins/build-macos-apps/skills/swiftui-patterns/SKILL.md
plugins/build-macos-apps/skills/telemetry/SKILL.md
plugins/build-macos-apps/skills/test-triage/SKILL.md
plugins/build-macos-apps/skills/view-refactor/SKILL.md
plugins/build-macos-apps/skills/window-management/SKILL.md
plugins/build-web-apps/skills/frontend-app-builder/SKILL.md
plugins/build-web-apps/skills/frontend-testing-debugging/SKILL.md
plugins/build-web-apps/skills/react-best-practices/SKILL.md
plugins/build-web-apps/skills/shadcn-best-practices/SKILL.md
plugins/build-web-apps/skills/supabase-best-practices/SKILL.md
plugins/build-web-data-visualization/skills/accessibility-and-inclusive-visualization/SKILL.md
plugins/build-web-data-visualization/skills/canvas2d-data-visualization/SKILL.md
plugins/build-web-data-visualization/skills/d3-data-visualization/SKILL.md
plugins/build-web-data-visualization/skills/dashboards-and-real-time-visualization/SKILL.md
plugins/build-web-data-visualization/skills/data-visualization/SKILL.md
plugins/build-web-data-visualization/skills/gantt-chart-visualization/SKILL.md

Metadata

Files
0
Version
11c74d6
Hash
6fdefa27
Indexed
2026-07-19 09:48

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-08 14:44
浙ICP备14020137号-1 $Carte des visiteurs$