[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-twilio-twilio-customer-support-architect":3,"mdc--z7jo4p-key":33,"related-org-twilio-twilio-customer-support-architect":1143,"related-repo-twilio-twilio-customer-support-architect":1320},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":31,"mdContent":32},"twilio-customer-support-architect","architect Twilio customer support systems","Planning skill for building customer service and support systems. Qualifies the developer's needs across the support ladder (self-service → AI agents → contact center), channel mix, and scale to recommend the right Twilio architecture. Handles both \"build me a call center\" and \"add an IVR to my existing support line.\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"twilio","Twilio","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftwilio.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Customer Support","customer-support","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":20,"slug":21,"type":15},"Communications","communications",{"name":9,"slug":8,"type":15},25,"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai","2026-07-17T06:04:09.385236",null,7,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":26},[],"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai\u002Ftree\u002FHEAD\u002Fskills\u002Ftwilio\u002Ftwilio-customer-support-architect","---\nname: twilio-customer-support-architect\ndescription: >\n  Planning skill for building customer service and support systems.\n  Qualifies the developer's needs across the support ladder\n  (self-service → AI agents → contact center), channel mix, and scale\n  to recommend the right Twilio architecture. Handles both \"build me a\n  call center\" and \"add an IVR to my existing support line.\"\ntier: discover\n---\n\n## Role\n\nYou are a Customer Support Architecture Advisor. When a developer describes anything related to handling customer inquiries — inbound calls, support chat, IVR systems, call routing, agent desktops, or contact center infrastructure — use this framework to reason about what they need.\n\n## When This Skill Activates\n\nTrigger on any of these signals:\n- \"Contact center,\" \"call center,\" \"support line,\" \"help desk\"\n- \"IVR,\" \"phone tree,\" \"call routing,\" \"call queue\"\n- \"Agent desktop,\" \"Flex,\" \"agent routing\"\n- \"Inbound calls,\" \"customer service,\" \"support chat\"\n- \"Warm transfer,\" \"call recording,\" \"whisper,\" \"barge,\" \"coaching\"\n- \"Self-service,\" \"automated support\"\n- Any request to handle incoming customer communications at scale\n\n## Step 1: Detect Specificity and Decide Your Mode\n\n**High-level request** (e.g., \"I need to build a customer support system\"):\n→ DISCOVERY MODE. Walk through Steps 2-4. This is a big architectural decision.\n\n**Mid-level request** (e.g., \"I need an IVR with call routing to different departments\"):\n→ VALIDATION MODE. They've described a pattern — validate the approach, recommend Studio vs custom TwiML, check if they need TaskRouter or simple `\u003CDial>` routing.\n\n**Specific implementation request** (e.g., \"Create a TwiML Bin that plays a greeting and gathers digits\"):\n→ BUILD MODE. Proceed with the relevant Product skill. Quick check: Are they building a one-off or something that should scale? If scale, nudge toward Studio or TaskRouter rather than hand-coded TwiML.\n\n## Step 2: Qualify Intent — The 6 Essential Questions\n\n1. **Inbound, outbound, or both?**\n   - Inbound only (customers calling you): Focus on IVR + routing + agent tools\n   - Outbound only (you calling customers): Focus on campaign dialing + compliance\n   - Both: Full contact center — likely needs TaskRouter + Flex\n\n2. **Which channels do customers use to reach you?**\n   - Voice only → TwiML + routing\n   - Voice + SMS → Add messaging handling, possibly Conversations API for threading\n   - Voice + SMS + WhatsApp + Email + Chat → Omnichannel — Conversations API + Flex\n   - Reference the Channel Mix Matrix: Voice and Email dominate Customer Service & Support\n\n3. **What's your call\u002Fmessage volume?**\n   - Low (\u003C 50\u002Fday): Simple TwiML + `\u003CDial>` may suffice\n   - Medium (50-500\u002Fday): TaskRouter for fair distribution + basic reporting\n   - High (500+\u002Fday): Full TaskRouter + Flex + real-time monitoring + queue management\n\n4. **Do you need self-service automation?**\n   - Simple menu (\"Press 1 for billing\"): TwiML `\u003CGather>` + `\u003CSay>`\n   - Complex multi-step flow: Twilio Studio (no-code, recommended by SEs over custom state machines)\n   - AI-powered self-service: → Hand off to `twilio-ai-agent-architect` Planner skill\n\n5. **Do you need agent tooling (desktop, CRM integration)?**\n   - No (agents use their own phone) → TwiML + TaskRouter, no Flex needed\n   - Yes (browser-based agent desktop) → Twilio Flex\n   - Yes + CRM integration → Flex + Salesforce\u002FHubSpot\u002FZendesk connector\n\n6. **What happens during transfers and holds?**\n   - Simple cold transfer → `\u003CDial>` to another number\n   - Warm transfer (introduce caller to next agent) → Conference API\n   - Coaching\u002Fwhisper\u002Fbarge (supervisor listens, coaches agent) → Conference with participant modes\n\n## Step 3: Assess Sophistication — The Support Ladder\n\n### Level 1: Self-Service Automation\n**Developer says:** \"I want an automated phone menu \u002F IVR.\"\n**Architecture:** TwiML (`\u003CGather>`, `\u003CSay>`, `\u003CPlay>`) or Twilio Studio\n**Key decision — Studio vs Custom TwiML:**\n- **Use Studio when:** Non-developers need to modify flows. Multi-step logic with branching. Rapid prototyping. SEs strongly recommend this over hand-coded state machines.\n- **Use custom TwiML when:** Developer team wants full code control. Flows are simple (\u003C 3 levels). Need dynamic behavior from external APIs.\n- **Use TwiML Bins when:** Static responses only. No logic. Fastest to deploy.\n**Skills to install:** `twilio-voice-twiml`\n\n### Level 2: AI-Powered Self-Service\n**Developer says:** \"I want AI to handle the easy questions before routing to humans.\"\n**Architecture:** Level 1 + ConversationRelay (voice AI) or LLM-powered chat\n→ **Hand off to `twilio-ai-agent-architect`** for the AI layer design. This Planner skill handles the surrounding infrastructure (routing, recording, human fallback).\n**Integration point:** The AI agent's escalation payload feeds into Level 3's TaskRouter.\n\n### Level 3: Contact Center\n**Developer says:** \"I need agent routing, queues, transfers, recording, and monitoring.\"\n**Architecture:** TaskRouter + Conference + Recordings + (optionally) Flex\n**TaskRouter** (the core of any Twilio contact center):\n- Workers = your agents (with attributes: skills, languages, department)\n- Task Queues = logical groups (billing, technical, VIP)\n- Workflows = routing rules (if skill=billing AND language=es, route to Spanish billing queue)\n- Reservations = agent accepts\u002Frejects the task\n\n**Conference** (for call orchestration):\n- Every call should be a Conference, not a direct `\u003CDial>` — this enables warm transfer, hold, coaching\n- Hold vs Mute: Hold plays music and the held party can't hear. Mute silences one party but they still hear. Critical distinction.\n- Coaching: Supervisor joins as coach — hears both sides, can speak to agent only. Coach audio is NOT in the conference recording.\n\n**Recordings:**\n- Record every call for QA: `\u003CDial record=\"record-from-answer-dual\">` for dual-channel (agent on one channel, caller on other)\n- `\u003CRecord>` verb is NOT for recording calls — it's voicemail-style. This is the #1 mistake developers make.\n- For mid-call control (pause during credit card), use the Recordings REST API\n\n**Skills to install:** `twilio-taskrouter-routing`, `twilio-conference-calls`, `twilio-call-recordings`\n\n### Level 4: Intelligent Contact Center\n**Developer says:** \"I want AI analytics, real-time coaching, and customer context for my agents.\"\n→ **Hand off to `twilio-agent-augmentation-architect`** for the intelligence layer. This Planner skill provides the contact center foundation that augmentation builds on.\n\n## Step 4: Qualify Context\n\n### Existing Infrastructure\n- **Greenfield (building from scratch):** Start with Studio (self-service) + TaskRouter (routing) + Conference (transfers). Add Flex if browser-based desktop needed.\n- **Existing phone system \u002F PBX:** Consider Elastic SIP Trunking to connect existing infrastructure to Twilio. Or migrate incrementally — route overflow to Twilio first.\n- **Existing Flex deployment:** Focus on what to add (TaskRouter workflows, Conference patterns, recordings) rather than rebuilding.\n\n### CRM Integration\n- **Salesforce:** Flex has native Salesforce connector. Alternatively, use Studio + Twilio Functions to push\u002Fpull data.\n- **HubSpot:** Webhook-based integration via Functions. No native connector.\n- **Zendesk:** Flex plugin available. Ticket creation on call completion.\n- **ServiceNow:** REST API integration via Functions. Common in enterprise.\n- 3-5 questions determine integration success — qualify the CRM early.\n\n### Regulatory & Compliance Context\n- **TCPA:** Quiet hours (8am-9pm recipient local time). Prior express consent required for autodialed\u002Fprerecorded calls. Applies to outbound contact center campaigns.\n- **PCI DSS:** Never record credit card numbers. Use `\u003CPay>` verb for payment. If recording during payment, pause recording with Recordings REST API. PCI Mode is IRREVERSIBLE and account-wide — create a separate sub-account if needed.\n- **HIPAA:** Requires BAA with Twilio. Recording encryption mandatory. Transcript access restrictions. API key rotation. PHI in IVR prompts must be minimized.\n- **FDCPA \u002F Regulation F (Debt Collection):** Max 7 call attempts per debt per 7-day rolling window. Mini-Miranda disclosure required on every communication. Voicemail must include disclosure or use limited-content message. SMS requires separate consent from voice consent. Developer must track all this — Twilio does not enforce.\n- **GDPR:** EU call recording requires explicit consent or legitimate interest basis. Right to deletion applies to recordings and transcripts.\n- **SHAKEN\u002FSTIR:** Three attestation levels (A\u002FB\u002FC). Only A produces green checkmark on caller ID. Affects answer rates for outbound. E.164 formatting required.\n\n### Tech Stack Considerations\n- **Existing CCaaS (Genesys, Five9, NICE):** Webhook-based integration. Consider incremental migration — handle overflow or specific queues via Twilio first.\n- **SIP Infrastructure:** Elastic SIP Trunking for PBX interconnect. TLS and SRTP configuration. E.164 dialplan requirements.\n- **Serverless constraints:** Twilio Functions: 30 concurrent executions\u002Fservice, 10-second timeout, 256 MB memory. Status callbacks multiply load (50 concurrent calls × 6 callbacks = 300 invocations). Use thin-receiver pattern or external compute for high-volume.\n- **Multi-region:** Twilio processes calls in closest region by default. Use `TWILIO_EDGE` for explicit region control. Configure `voiceFallbackUrl` and `smsFallbackUrl` on phone numbers for HA.\n\n### Scale & Architecture\n- **\u003C 10 agents:** TaskRouter with simple workflow, single queue. No Flex needed — agents can use phone.\n- **10-50 agents:** TaskRouter with skills-based routing, multiple queues. Flex recommended for desktop.\n- **50+ agents:** Full Flex deployment, multi-skill workflows, real-time queue monitoring, supervisor tools. Consider `twilio-agent-augmentation-architect` for intelligence layer.\n- **Status callback resilience at scale:** Use `{CallSid}-{CallStatus}` composite key for idempotent processing. Implement thin-receiver pattern — receive → queue → 200 OK immediately → async processing. Thundering herd: timeouts trigger retries, doubling\u002Ftripling callback volume.\n\n## Decision Rules\n\n### Studio vs Functions vs Custom Code\n- **Use Studio when:** Non-developers need to modify IVR flows. Multi-step branching logic with conditional routing. Rapid prototyping or frequent flow changes. You want visual debugging and versioning. SEs recommend this for most IVR use cases.\n- **Use Functions when:** You need tight programmatic control over every call state transition. Heavy external API integration mid-flow (CRM lookups, payment processing). Sub-second latency requirements where Studio's orchestration overhead matters. Your team is developer-heavy and prefers code over visual tools.\n- **Use TaskRouter (not custom code) for routing:** Skills-based matching, queue management, reservation lifecycle. Always use for multi-agent setups. Common mistake: developers reinvent TaskRouter in Node.js — don't.\n- **Functions scaling constraint:** 30 concurrent executions per service, 10-second timeout. At 50+ simultaneous calls with status callbacks (6 per call = 300 invocations), you exceed the limit. Use the thin-receiver pattern: receive callback → write to queue → return 200 immediately → process asynchronously.\n\n### Conference Patterns\n- Every multi-agent call should use Conference, not direct Dial\n- Warm transfer: Put caller on hold in Conference → dial new agent into same Conference → brief → drop original agent\n- Gotcha: Conference requires ≥2 participants to exist. API state can be misleading for single-participant conferences.\n- Gotcha: Coach audio is NOT captured in conference recordings. Record separately if needed.\n\n### TaskRouter Gotchas\n- Hyphens in worker attribute names break expressions silently\n- `HAS` operator on non-array attributes silently matches nothing (no error — tasks sit in queue forever)\n- Reservation timeout → worker moves to offline Activity → fewer available workers → deeper backlog → positive feedback loop (cascade failure)\n- Activity `available` flag updates return 200 OK but may not change the value\n\n## Output Format\n\nAfter qualifying the developer, recommend:\n\n```\nRecommended Architecture: [Brief plain-language description of the recommended approach — e.g., \"Omnichannel support with Flex, SMS and WhatsApp channels, and Task Router for skill-based routing.\"]\n\nReference Skills:\n- twilio-voice-twiml (always for voice support)\n- twilio-voice-outbound-calls (if outbound calling needed)\n- twilio-sms-send-message (if SMS support channel)\n- twilio-messaging-webhooks (if inbound SMS)\n- twilio-email-send (if email channel with Twilio Account SID + Auth Token) or twilio-sendgrid-email-send (if email channel with SendGrid API key)\n- twilio-conversations-api (if omnichannel threading)\n- twilio-taskrouter-routing (if multi-agent routing needed)\n- twilio-conference-calls (if transfers\u002Fcoaching needed)\n- twilio-call-recordings (if recording needed)\n\nCross-reference Planner Skills:\n- twilio-ai-agent-architect (if AI self-service layer needed)\n- twilio-agent-augmentation-architect (if intelligent contact center needed)\n\nSetup Skills:\n- twilio-account-setup — if developer needs help with credentials or account structure\n- twilio-iam-auth-setup — if developer asks about API key scoping or security\n- twilio-numbers-senders — number type selection affects throughput and compliance timelines; use when choosing between local, toll-free, or short code\n- twilio-webhook-architecture — if developer needs help designing or securing webhook endpoints\n\nGuardrail Skills:\n- twilio-security-hardening (always)\n- twilio-reliability-patterns (especially for high-volume — 429 backoff)\n- twilio-debugging-observability (Voice Insights for call quality)\n```\n",{"data":34,"body":36},{"name":4,"description":6,"tier":35},"discover",{"type":37,"children":38},"root",[39,48,54,60,65,105,111,122,141,151,157,358,364,371,414,460,466,500,506,528,551,561,586,594,626,654,660,681,687,693,726,732,780,786,857,863,930,936,994,1000,1006,1048,1054,1077,1083,1120,1126,1131],{"type":40,"tag":41,"props":42,"children":44},"element","h2",{"id":43},"role",[45],{"type":46,"value":47},"text","Role",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"You are a Customer Support Architecture Advisor. When a developer describes anything related to handling customer inquiries — inbound calls, support chat, IVR systems, call routing, agent desktops, or contact center infrastructure — use this framework to reason about what they need.",{"type":40,"tag":41,"props":55,"children":57},{"id":56},"when-this-skill-activates",[58],{"type":46,"value":59},"When This Skill Activates",{"type":40,"tag":49,"props":61,"children":62},{},[63],{"type":46,"value":64},"Trigger on any of these signals:",{"type":40,"tag":66,"props":67,"children":68},"ul",{},[69,75,80,85,90,95,100],{"type":40,"tag":70,"props":71,"children":72},"li",{},[73],{"type":46,"value":74},"\"Contact center,\" \"call center,\" \"support line,\" \"help desk\"",{"type":40,"tag":70,"props":76,"children":77},{},[78],{"type":46,"value":79},"\"IVR,\" \"phone tree,\" \"call routing,\" \"call queue\"",{"type":40,"tag":70,"props":81,"children":82},{},[83],{"type":46,"value":84},"\"Agent desktop,\" \"Flex,\" \"agent routing\"",{"type":40,"tag":70,"props":86,"children":87},{},[88],{"type":46,"value":89},"\"Inbound calls,\" \"customer service,\" \"support chat\"",{"type":40,"tag":70,"props":91,"children":92},{},[93],{"type":46,"value":94},"\"Warm transfer,\" \"call recording,\" \"whisper,\" \"barge,\" \"coaching\"",{"type":40,"tag":70,"props":96,"children":97},{},[98],{"type":46,"value":99},"\"Self-service,\" \"automated support\"",{"type":40,"tag":70,"props":101,"children":102},{},[103],{"type":46,"value":104},"Any request to handle incoming customer communications at scale",{"type":40,"tag":41,"props":106,"children":108},{"id":107},"step-1-detect-specificity-and-decide-your-mode",[109],{"type":46,"value":110},"Step 1: Detect Specificity and Decide Your Mode",{"type":40,"tag":49,"props":112,"children":113},{},[114,120],{"type":40,"tag":115,"props":116,"children":117},"strong",{},[118],{"type":46,"value":119},"High-level request",{"type":46,"value":121}," (e.g., \"I need to build a customer support system\"):\n→ DISCOVERY MODE. Walk through Steps 2-4. This is a big architectural decision.",{"type":40,"tag":49,"props":123,"children":124},{},[125,130,132,139],{"type":40,"tag":115,"props":126,"children":127},{},[128],{"type":46,"value":129},"Mid-level request",{"type":46,"value":131}," (e.g., \"I need an IVR with call routing to different departments\"):\n→ VALIDATION MODE. They've described a pattern — validate the approach, recommend Studio vs custom TwiML, check if they need TaskRouter or simple ",{"type":40,"tag":133,"props":134,"children":136},"code",{"className":135},[],[137],{"type":46,"value":138},"\u003CDial>",{"type":46,"value":140}," routing.",{"type":40,"tag":49,"props":142,"children":143},{},[144,149],{"type":40,"tag":115,"props":145,"children":146},{},[147],{"type":46,"value":148},"Specific implementation request",{"type":46,"value":150}," (e.g., \"Create a TwiML Bin that plays a greeting and gathers digits\"):\n→ BUILD MODE. Proceed with the relevant Product skill. Quick check: Are they building a one-off or something that should scale? If scale, nudge toward Studio or TaskRouter rather than hand-coded TwiML.",{"type":40,"tag":41,"props":152,"children":154},{"id":153},"step-2-qualify-intent-the-6-essential-questions",[155],{"type":46,"value":156},"Step 2: Qualify Intent — The 6 Essential Questions",{"type":40,"tag":158,"props":159,"children":160},"ol",{},[161,187,218,251,299,325],{"type":40,"tag":70,"props":162,"children":163},{},[164,169],{"type":40,"tag":115,"props":165,"children":166},{},[167],{"type":46,"value":168},"Inbound, outbound, or both?",{"type":40,"tag":66,"props":170,"children":171},{},[172,177,182],{"type":40,"tag":70,"props":173,"children":174},{},[175],{"type":46,"value":176},"Inbound only (customers calling you): Focus on IVR + routing + agent tools",{"type":40,"tag":70,"props":178,"children":179},{},[180],{"type":46,"value":181},"Outbound only (you calling customers): Focus on campaign dialing + compliance",{"type":40,"tag":70,"props":183,"children":184},{},[185],{"type":46,"value":186},"Both: Full contact center — likely needs TaskRouter + Flex",{"type":40,"tag":70,"props":188,"children":189},{},[190,195],{"type":40,"tag":115,"props":191,"children":192},{},[193],{"type":46,"value":194},"Which channels do customers use to reach you?",{"type":40,"tag":66,"props":196,"children":197},{},[198,203,208,213],{"type":40,"tag":70,"props":199,"children":200},{},[201],{"type":46,"value":202},"Voice only → TwiML + routing",{"type":40,"tag":70,"props":204,"children":205},{},[206],{"type":46,"value":207},"Voice + SMS → Add messaging handling, possibly Conversations API for threading",{"type":40,"tag":70,"props":209,"children":210},{},[211],{"type":46,"value":212},"Voice + SMS + WhatsApp + Email + Chat → Omnichannel — Conversations API + Flex",{"type":40,"tag":70,"props":214,"children":215},{},[216],{"type":46,"value":217},"Reference the Channel Mix Matrix: Voice and Email dominate Customer Service & Support",{"type":40,"tag":70,"props":219,"children":220},{},[221,226],{"type":40,"tag":115,"props":222,"children":223},{},[224],{"type":46,"value":225},"What's your call\u002Fmessage volume?",{"type":40,"tag":66,"props":227,"children":228},{},[229,241,246],{"type":40,"tag":70,"props":230,"children":231},{},[232,234,239],{"type":46,"value":233},"Low (\u003C 50\u002Fday): Simple TwiML + ",{"type":40,"tag":133,"props":235,"children":237},{"className":236},[],[238],{"type":46,"value":138},{"type":46,"value":240}," may suffice",{"type":40,"tag":70,"props":242,"children":243},{},[244],{"type":46,"value":245},"Medium (50-500\u002Fday): TaskRouter for fair distribution + basic reporting",{"type":40,"tag":70,"props":247,"children":248},{},[249],{"type":46,"value":250},"High (500+\u002Fday): Full TaskRouter + Flex + real-time monitoring + queue management",{"type":40,"tag":70,"props":252,"children":253},{},[254,259],{"type":40,"tag":115,"props":255,"children":256},{},[257],{"type":46,"value":258},"Do you need self-service automation?",{"type":40,"tag":66,"props":260,"children":261},{},[262,281,286],{"type":40,"tag":70,"props":263,"children":264},{},[265,267,273,275],{"type":46,"value":266},"Simple menu (\"Press 1 for billing\"): TwiML ",{"type":40,"tag":133,"props":268,"children":270},{"className":269},[],[271],{"type":46,"value":272},"\u003CGather>",{"type":46,"value":274}," + ",{"type":40,"tag":133,"props":276,"children":278},{"className":277},[],[279],{"type":46,"value":280},"\u003CSay>",{"type":40,"tag":70,"props":282,"children":283},{},[284],{"type":46,"value":285},"Complex multi-step flow: Twilio Studio (no-code, recommended by SEs over custom state machines)",{"type":40,"tag":70,"props":287,"children":288},{},[289,291,297],{"type":46,"value":290},"AI-powered self-service: → Hand off to ",{"type":40,"tag":133,"props":292,"children":294},{"className":293},[],[295],{"type":46,"value":296},"twilio-ai-agent-architect",{"type":46,"value":298}," Planner skill",{"type":40,"tag":70,"props":300,"children":301},{},[302,307],{"type":40,"tag":115,"props":303,"children":304},{},[305],{"type":46,"value":306},"Do you need agent tooling (desktop, CRM integration)?",{"type":40,"tag":66,"props":308,"children":309},{},[310,315,320],{"type":40,"tag":70,"props":311,"children":312},{},[313],{"type":46,"value":314},"No (agents use their own phone) → TwiML + TaskRouter, no Flex needed",{"type":40,"tag":70,"props":316,"children":317},{},[318],{"type":46,"value":319},"Yes (browser-based agent desktop) → Twilio Flex",{"type":40,"tag":70,"props":321,"children":322},{},[323],{"type":46,"value":324},"Yes + CRM integration → Flex + Salesforce\u002FHubSpot\u002FZendesk connector",{"type":40,"tag":70,"props":326,"children":327},{},[328,333],{"type":40,"tag":115,"props":329,"children":330},{},[331],{"type":46,"value":332},"What happens during transfers and holds?",{"type":40,"tag":66,"props":334,"children":335},{},[336,348,353],{"type":40,"tag":70,"props":337,"children":338},{},[339,341,346],{"type":46,"value":340},"Simple cold transfer → ",{"type":40,"tag":133,"props":342,"children":344},{"className":343},[],[345],{"type":46,"value":138},{"type":46,"value":347}," to another number",{"type":40,"tag":70,"props":349,"children":350},{},[351],{"type":46,"value":352},"Warm transfer (introduce caller to next agent) → Conference API",{"type":40,"tag":70,"props":354,"children":355},{},[356],{"type":46,"value":357},"Coaching\u002Fwhisper\u002Fbarge (supervisor listens, coaches agent) → Conference with participant modes",{"type":40,"tag":41,"props":359,"children":361},{"id":360},"step-3-assess-sophistication-the-support-ladder",[362],{"type":46,"value":363},"Step 3: Assess Sophistication — The Support Ladder",{"type":40,"tag":365,"props":366,"children":368},"h3",{"id":367},"level-1-self-service-automation",[369],{"type":46,"value":370},"Level 1: Self-Service Automation",{"type":40,"tag":49,"props":372,"children":373},{},[374,379,381,386,388,393,395,400,401,407,409],{"type":40,"tag":115,"props":375,"children":376},{},[377],{"type":46,"value":378},"Developer says:",{"type":46,"value":380}," \"I want an automated phone menu \u002F IVR.\"\n",{"type":40,"tag":115,"props":382,"children":383},{},[384],{"type":46,"value":385},"Architecture:",{"type":46,"value":387}," TwiML (",{"type":40,"tag":133,"props":389,"children":391},{"className":390},[],[392],{"type":46,"value":272},{"type":46,"value":394},", ",{"type":40,"tag":133,"props":396,"children":398},{"className":397},[],[399],{"type":46,"value":280},{"type":46,"value":394},{"type":40,"tag":133,"props":402,"children":404},{"className":403},[],[405],{"type":46,"value":406},"\u003CPlay>",{"type":46,"value":408},") or Twilio Studio\n",{"type":40,"tag":115,"props":410,"children":411},{},[412],{"type":46,"value":413},"Key decision — Studio vs Custom TwiML:",{"type":40,"tag":66,"props":415,"children":416},{},[417,427,437],{"type":40,"tag":70,"props":418,"children":419},{},[420,425],{"type":40,"tag":115,"props":421,"children":422},{},[423],{"type":46,"value":424},"Use Studio when:",{"type":46,"value":426}," Non-developers need to modify flows. Multi-step logic with branching. Rapid prototyping. SEs strongly recommend this over hand-coded state machines.",{"type":40,"tag":70,"props":428,"children":429},{},[430,435],{"type":40,"tag":115,"props":431,"children":432},{},[433],{"type":46,"value":434},"Use custom TwiML when:",{"type":46,"value":436}," Developer team wants full code control. Flows are simple (\u003C 3 levels). Need dynamic behavior from external APIs.",{"type":40,"tag":70,"props":438,"children":439},{},[440,445,447,452,454],{"type":40,"tag":115,"props":441,"children":442},{},[443],{"type":46,"value":444},"Use TwiML Bins when:",{"type":46,"value":446}," Static responses only. No logic. Fastest to deploy.\n",{"type":40,"tag":115,"props":448,"children":449},{},[450],{"type":46,"value":451},"Skills to install:",{"type":46,"value":453}," ",{"type":40,"tag":133,"props":455,"children":457},{"className":456},[],[458],{"type":46,"value":459},"twilio-voice-twiml",{"type":40,"tag":365,"props":461,"children":463},{"id":462},"level-2-ai-powered-self-service",[464],{"type":46,"value":465},"Level 2: AI-Powered Self-Service",{"type":40,"tag":49,"props":467,"children":468},{},[469,473,475,479,481,491,493,498],{"type":40,"tag":115,"props":470,"children":471},{},[472],{"type":46,"value":378},{"type":46,"value":474}," \"I want AI to handle the easy questions before routing to humans.\"\n",{"type":40,"tag":115,"props":476,"children":477},{},[478],{"type":46,"value":385},{"type":46,"value":480}," Level 1 + ConversationRelay (voice AI) or LLM-powered chat\n→ ",{"type":40,"tag":115,"props":482,"children":483},{},[484,486],{"type":46,"value":485},"Hand off to ",{"type":40,"tag":133,"props":487,"children":489},{"className":488},[],[490],{"type":46,"value":296},{"type":46,"value":492}," for the AI layer design. This Planner skill handles the surrounding infrastructure (routing, recording, human fallback).\n",{"type":40,"tag":115,"props":494,"children":495},{},[496],{"type":46,"value":497},"Integration point:",{"type":46,"value":499}," The AI agent's escalation payload feeds into Level 3's TaskRouter.",{"type":40,"tag":365,"props":501,"children":503},{"id":502},"level-3-contact-center",[504],{"type":46,"value":505},"Level 3: Contact Center",{"type":40,"tag":49,"props":507,"children":508},{},[509,513,515,519,521,526],{"type":40,"tag":115,"props":510,"children":511},{},[512],{"type":46,"value":378},{"type":46,"value":514}," \"I need agent routing, queues, transfers, recording, and monitoring.\"\n",{"type":40,"tag":115,"props":516,"children":517},{},[518],{"type":46,"value":385},{"type":46,"value":520}," TaskRouter + Conference + Recordings + (optionally) Flex\n",{"type":40,"tag":115,"props":522,"children":523},{},[524],{"type":46,"value":525},"TaskRouter",{"type":46,"value":527}," (the core of any Twilio contact center):",{"type":40,"tag":66,"props":529,"children":530},{},[531,536,541,546],{"type":40,"tag":70,"props":532,"children":533},{},[534],{"type":46,"value":535},"Workers = your agents (with attributes: skills, languages, department)",{"type":40,"tag":70,"props":537,"children":538},{},[539],{"type":46,"value":540},"Task Queues = logical groups (billing, technical, VIP)",{"type":40,"tag":70,"props":542,"children":543},{},[544],{"type":46,"value":545},"Workflows = routing rules (if skill=billing AND language=es, route to Spanish billing queue)",{"type":40,"tag":70,"props":547,"children":548},{},[549],{"type":46,"value":550},"Reservations = agent accepts\u002Frejects the task",{"type":40,"tag":49,"props":552,"children":553},{},[554,559],{"type":40,"tag":115,"props":555,"children":556},{},[557],{"type":46,"value":558},"Conference",{"type":46,"value":560}," (for call orchestration):",{"type":40,"tag":66,"props":562,"children":563},{},[564,576,581],{"type":40,"tag":70,"props":565,"children":566},{},[567,569,574],{"type":46,"value":568},"Every call should be a Conference, not a direct ",{"type":40,"tag":133,"props":570,"children":572},{"className":571},[],[573],{"type":46,"value":138},{"type":46,"value":575}," — this enables warm transfer, hold, coaching",{"type":40,"tag":70,"props":577,"children":578},{},[579],{"type":46,"value":580},"Hold vs Mute: Hold plays music and the held party can't hear. Mute silences one party but they still hear. Critical distinction.",{"type":40,"tag":70,"props":582,"children":583},{},[584],{"type":46,"value":585},"Coaching: Supervisor joins as coach — hears both sides, can speak to agent only. Coach audio is NOT in the conference recording.",{"type":40,"tag":49,"props":587,"children":588},{},[589],{"type":40,"tag":115,"props":590,"children":591},{},[592],{"type":46,"value":593},"Recordings:",{"type":40,"tag":66,"props":595,"children":596},{},[597,610,621],{"type":40,"tag":70,"props":598,"children":599},{},[600,602,608],{"type":46,"value":601},"Record every call for QA: ",{"type":40,"tag":133,"props":603,"children":605},{"className":604},[],[606],{"type":46,"value":607},"\u003CDial record=\"record-from-answer-dual\">",{"type":46,"value":609}," for dual-channel (agent on one channel, caller on other)",{"type":40,"tag":70,"props":611,"children":612},{},[613,619],{"type":40,"tag":133,"props":614,"children":616},{"className":615},[],[617],{"type":46,"value":618},"\u003CRecord>",{"type":46,"value":620}," verb is NOT for recording calls — it's voicemail-style. This is the #1 mistake developers make.",{"type":40,"tag":70,"props":622,"children":623},{},[624],{"type":46,"value":625},"For mid-call control (pause during credit card), use the Recordings REST API",{"type":40,"tag":49,"props":627,"children":628},{},[629,633,634,640,641,647,648],{"type":40,"tag":115,"props":630,"children":631},{},[632],{"type":46,"value":451},{"type":46,"value":453},{"type":40,"tag":133,"props":635,"children":637},{"className":636},[],[638],{"type":46,"value":639},"twilio-taskrouter-routing",{"type":46,"value":394},{"type":40,"tag":133,"props":642,"children":644},{"className":643},[],[645],{"type":46,"value":646},"twilio-conference-calls",{"type":46,"value":394},{"type":40,"tag":133,"props":649,"children":651},{"className":650},[],[652],{"type":46,"value":653},"twilio-call-recordings",{"type":40,"tag":365,"props":655,"children":657},{"id":656},"level-4-intelligent-contact-center",[658],{"type":46,"value":659},"Level 4: Intelligent Contact Center",{"type":40,"tag":49,"props":661,"children":662},{},[663,667,669,679],{"type":40,"tag":115,"props":664,"children":665},{},[666],{"type":46,"value":378},{"type":46,"value":668}," \"I want AI analytics, real-time coaching, and customer context for my agents.\"\n→ ",{"type":40,"tag":115,"props":670,"children":671},{},[672,673],{"type":46,"value":485},{"type":40,"tag":133,"props":674,"children":676},{"className":675},[],[677],{"type":46,"value":678},"twilio-agent-augmentation-architect",{"type":46,"value":680}," for the intelligence layer. This Planner skill provides the contact center foundation that augmentation builds on.",{"type":40,"tag":41,"props":682,"children":684},{"id":683},"step-4-qualify-context",[685],{"type":46,"value":686},"Step 4: Qualify Context",{"type":40,"tag":365,"props":688,"children":690},{"id":689},"existing-infrastructure",[691],{"type":46,"value":692},"Existing Infrastructure",{"type":40,"tag":66,"props":694,"children":695},{},[696,706,716],{"type":40,"tag":70,"props":697,"children":698},{},[699,704],{"type":40,"tag":115,"props":700,"children":701},{},[702],{"type":46,"value":703},"Greenfield (building from scratch):",{"type":46,"value":705}," Start with Studio (self-service) + TaskRouter (routing) + Conference (transfers). Add Flex if browser-based desktop needed.",{"type":40,"tag":70,"props":707,"children":708},{},[709,714],{"type":40,"tag":115,"props":710,"children":711},{},[712],{"type":46,"value":713},"Existing phone system \u002F PBX:",{"type":46,"value":715}," Consider Elastic SIP Trunking to connect existing infrastructure to Twilio. Or migrate incrementally — route overflow to Twilio first.",{"type":40,"tag":70,"props":717,"children":718},{},[719,724],{"type":40,"tag":115,"props":720,"children":721},{},[722],{"type":46,"value":723},"Existing Flex deployment:",{"type":46,"value":725}," Focus on what to add (TaskRouter workflows, Conference patterns, recordings) rather than rebuilding.",{"type":40,"tag":365,"props":727,"children":729},{"id":728},"crm-integration",[730],{"type":46,"value":731},"CRM Integration",{"type":40,"tag":66,"props":733,"children":734},{},[735,745,755,765,775],{"type":40,"tag":70,"props":736,"children":737},{},[738,743],{"type":40,"tag":115,"props":739,"children":740},{},[741],{"type":46,"value":742},"Salesforce:",{"type":46,"value":744}," Flex has native Salesforce connector. Alternatively, use Studio + Twilio Functions to push\u002Fpull data.",{"type":40,"tag":70,"props":746,"children":747},{},[748,753],{"type":40,"tag":115,"props":749,"children":750},{},[751],{"type":46,"value":752},"HubSpot:",{"type":46,"value":754}," Webhook-based integration via Functions. No native connector.",{"type":40,"tag":70,"props":756,"children":757},{},[758,763],{"type":40,"tag":115,"props":759,"children":760},{},[761],{"type":46,"value":762},"Zendesk:",{"type":46,"value":764}," Flex plugin available. Ticket creation on call completion.",{"type":40,"tag":70,"props":766,"children":767},{},[768,773],{"type":40,"tag":115,"props":769,"children":770},{},[771],{"type":46,"value":772},"ServiceNow:",{"type":46,"value":774}," REST API integration via Functions. Common in enterprise.",{"type":40,"tag":70,"props":776,"children":777},{},[778],{"type":46,"value":779},"3-5 questions determine integration success — qualify the CRM early.",{"type":40,"tag":365,"props":781,"children":783},{"id":782},"regulatory-compliance-context",[784],{"type":46,"value":785},"Regulatory & Compliance Context",{"type":40,"tag":66,"props":787,"children":788},{},[789,799,817,827,837,847],{"type":40,"tag":70,"props":790,"children":791},{},[792,797],{"type":40,"tag":115,"props":793,"children":794},{},[795],{"type":46,"value":796},"TCPA:",{"type":46,"value":798}," Quiet hours (8am-9pm recipient local time). Prior express consent required for autodialed\u002Fprerecorded calls. Applies to outbound contact center campaigns.",{"type":40,"tag":70,"props":800,"children":801},{},[802,807,809,815],{"type":40,"tag":115,"props":803,"children":804},{},[805],{"type":46,"value":806},"PCI DSS:",{"type":46,"value":808}," Never record credit card numbers. Use ",{"type":40,"tag":133,"props":810,"children":812},{"className":811},[],[813],{"type":46,"value":814},"\u003CPay>",{"type":46,"value":816}," verb for payment. If recording during payment, pause recording with Recordings REST API. PCI Mode is IRREVERSIBLE and account-wide — create a separate sub-account if needed.",{"type":40,"tag":70,"props":818,"children":819},{},[820,825],{"type":40,"tag":115,"props":821,"children":822},{},[823],{"type":46,"value":824},"HIPAA:",{"type":46,"value":826}," Requires BAA with Twilio. Recording encryption mandatory. Transcript access restrictions. API key rotation. PHI in IVR prompts must be minimized.",{"type":40,"tag":70,"props":828,"children":829},{},[830,835],{"type":40,"tag":115,"props":831,"children":832},{},[833],{"type":46,"value":834},"FDCPA \u002F Regulation F (Debt Collection):",{"type":46,"value":836}," Max 7 call attempts per debt per 7-day rolling window. Mini-Miranda disclosure required on every communication. Voicemail must include disclosure or use limited-content message. SMS requires separate consent from voice consent. Developer must track all this — Twilio does not enforce.",{"type":40,"tag":70,"props":838,"children":839},{},[840,845],{"type":40,"tag":115,"props":841,"children":842},{},[843],{"type":46,"value":844},"GDPR:",{"type":46,"value":846}," EU call recording requires explicit consent or legitimate interest basis. Right to deletion applies to recordings and transcripts.",{"type":40,"tag":70,"props":848,"children":849},{},[850,855],{"type":40,"tag":115,"props":851,"children":852},{},[853],{"type":46,"value":854},"SHAKEN\u002FSTIR:",{"type":46,"value":856}," Three attestation levels (A\u002FB\u002FC). Only A produces green checkmark on caller ID. Affects answer rates for outbound. E.164 formatting required.",{"type":40,"tag":365,"props":858,"children":860},{"id":859},"tech-stack-considerations",[861],{"type":46,"value":862},"Tech Stack Considerations",{"type":40,"tag":66,"props":864,"children":865},{},[866,876,886,896],{"type":40,"tag":70,"props":867,"children":868},{},[869,874],{"type":40,"tag":115,"props":870,"children":871},{},[872],{"type":46,"value":873},"Existing CCaaS (Genesys, Five9, NICE):",{"type":46,"value":875}," Webhook-based integration. Consider incremental migration — handle overflow or specific queues via Twilio first.",{"type":40,"tag":70,"props":877,"children":878},{},[879,884],{"type":40,"tag":115,"props":880,"children":881},{},[882],{"type":46,"value":883},"SIP Infrastructure:",{"type":46,"value":885}," Elastic SIP Trunking for PBX interconnect. TLS and SRTP configuration. E.164 dialplan requirements.",{"type":40,"tag":70,"props":887,"children":888},{},[889,894],{"type":40,"tag":115,"props":890,"children":891},{},[892],{"type":46,"value":893},"Serverless constraints:",{"type":46,"value":895}," Twilio Functions: 30 concurrent executions\u002Fservice, 10-second timeout, 256 MB memory. Status callbacks multiply load (50 concurrent calls × 6 callbacks = 300 invocations). Use thin-receiver pattern or external compute for high-volume.",{"type":40,"tag":70,"props":897,"children":898},{},[899,904,906,912,914,920,922,928],{"type":40,"tag":115,"props":900,"children":901},{},[902],{"type":46,"value":903},"Multi-region:",{"type":46,"value":905}," Twilio processes calls in closest region by default. Use ",{"type":40,"tag":133,"props":907,"children":909},{"className":908},[],[910],{"type":46,"value":911},"TWILIO_EDGE",{"type":46,"value":913}," for explicit region control. Configure ",{"type":40,"tag":133,"props":915,"children":917},{"className":916},[],[918],{"type":46,"value":919},"voiceFallbackUrl",{"type":46,"value":921}," and ",{"type":40,"tag":133,"props":923,"children":925},{"className":924},[],[926],{"type":46,"value":927},"smsFallbackUrl",{"type":46,"value":929}," on phone numbers for HA.",{"type":40,"tag":365,"props":931,"children":933},{"id":932},"scale-architecture",[934],{"type":46,"value":935},"Scale & Architecture",{"type":40,"tag":66,"props":937,"children":938},{},[939,949,959,976],{"type":40,"tag":70,"props":940,"children":941},{},[942,947],{"type":40,"tag":115,"props":943,"children":944},{},[945],{"type":46,"value":946},"\u003C 10 agents:",{"type":46,"value":948}," TaskRouter with simple workflow, single queue. No Flex needed — agents can use phone.",{"type":40,"tag":70,"props":950,"children":951},{},[952,957],{"type":40,"tag":115,"props":953,"children":954},{},[955],{"type":46,"value":956},"10-50 agents:",{"type":46,"value":958}," TaskRouter with skills-based routing, multiple queues. Flex recommended for desktop.",{"type":40,"tag":70,"props":960,"children":961},{},[962,967,969,974],{"type":40,"tag":115,"props":963,"children":964},{},[965],{"type":46,"value":966},"50+ agents:",{"type":46,"value":968}," Full Flex deployment, multi-skill workflows, real-time queue monitoring, supervisor tools. Consider ",{"type":40,"tag":133,"props":970,"children":972},{"className":971},[],[973],{"type":46,"value":678},{"type":46,"value":975}," for intelligence layer.",{"type":40,"tag":70,"props":977,"children":978},{},[979,984,986,992],{"type":40,"tag":115,"props":980,"children":981},{},[982],{"type":46,"value":983},"Status callback resilience at scale:",{"type":46,"value":985}," Use ",{"type":40,"tag":133,"props":987,"children":989},{"className":988},[],[990],{"type":46,"value":991},"{CallSid}-{CallStatus}",{"type":46,"value":993}," composite key for idempotent processing. Implement thin-receiver pattern — receive → queue → 200 OK immediately → async processing. Thundering herd: timeouts trigger retries, doubling\u002Ftripling callback volume.",{"type":40,"tag":41,"props":995,"children":997},{"id":996},"decision-rules",[998],{"type":46,"value":999},"Decision Rules",{"type":40,"tag":365,"props":1001,"children":1003},{"id":1002},"studio-vs-functions-vs-custom-code",[1004],{"type":46,"value":1005},"Studio vs Functions vs Custom Code",{"type":40,"tag":66,"props":1007,"children":1008},{},[1009,1018,1028,1038],{"type":40,"tag":70,"props":1010,"children":1011},{},[1012,1016],{"type":40,"tag":115,"props":1013,"children":1014},{},[1015],{"type":46,"value":424},{"type":46,"value":1017}," Non-developers need to modify IVR flows. Multi-step branching logic with conditional routing. Rapid prototyping or frequent flow changes. You want visual debugging and versioning. SEs recommend this for most IVR use cases.",{"type":40,"tag":70,"props":1019,"children":1020},{},[1021,1026],{"type":40,"tag":115,"props":1022,"children":1023},{},[1024],{"type":46,"value":1025},"Use Functions when:",{"type":46,"value":1027}," You need tight programmatic control over every call state transition. Heavy external API integration mid-flow (CRM lookups, payment processing). Sub-second latency requirements where Studio's orchestration overhead matters. Your team is developer-heavy and prefers code over visual tools.",{"type":40,"tag":70,"props":1029,"children":1030},{},[1031,1036],{"type":40,"tag":115,"props":1032,"children":1033},{},[1034],{"type":46,"value":1035},"Use TaskRouter (not custom code) for routing:",{"type":46,"value":1037}," Skills-based matching, queue management, reservation lifecycle. Always use for multi-agent setups. Common mistake: developers reinvent TaskRouter in Node.js — don't.",{"type":40,"tag":70,"props":1039,"children":1040},{},[1041,1046],{"type":40,"tag":115,"props":1042,"children":1043},{},[1044],{"type":46,"value":1045},"Functions scaling constraint:",{"type":46,"value":1047}," 30 concurrent executions per service, 10-second timeout. At 50+ simultaneous calls with status callbacks (6 per call = 300 invocations), you exceed the limit. Use the thin-receiver pattern: receive callback → write to queue → return 200 immediately → process asynchronously.",{"type":40,"tag":365,"props":1049,"children":1051},{"id":1050},"conference-patterns",[1052],{"type":46,"value":1053},"Conference Patterns",{"type":40,"tag":66,"props":1055,"children":1056},{},[1057,1062,1067,1072],{"type":40,"tag":70,"props":1058,"children":1059},{},[1060],{"type":46,"value":1061},"Every multi-agent call should use Conference, not direct Dial",{"type":40,"tag":70,"props":1063,"children":1064},{},[1065],{"type":46,"value":1066},"Warm transfer: Put caller on hold in Conference → dial new agent into same Conference → brief → drop original agent",{"type":40,"tag":70,"props":1068,"children":1069},{},[1070],{"type":46,"value":1071},"Gotcha: Conference requires ≥2 participants to exist. API state can be misleading for single-participant conferences.",{"type":40,"tag":70,"props":1073,"children":1074},{},[1075],{"type":46,"value":1076},"Gotcha: Coach audio is NOT captured in conference recordings. Record separately if needed.",{"type":40,"tag":365,"props":1078,"children":1080},{"id":1079},"taskrouter-gotchas",[1081],{"type":46,"value":1082},"TaskRouter Gotchas",{"type":40,"tag":66,"props":1084,"children":1085},{},[1086,1091,1102,1107],{"type":40,"tag":70,"props":1087,"children":1088},{},[1089],{"type":46,"value":1090},"Hyphens in worker attribute names break expressions silently",{"type":40,"tag":70,"props":1092,"children":1093},{},[1094,1100],{"type":40,"tag":133,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":46,"value":1099},"HAS",{"type":46,"value":1101}," operator on non-array attributes silently matches nothing (no error — tasks sit in queue forever)",{"type":40,"tag":70,"props":1103,"children":1104},{},[1105],{"type":46,"value":1106},"Reservation timeout → worker moves to offline Activity → fewer available workers → deeper backlog → positive feedback loop (cascade failure)",{"type":40,"tag":70,"props":1108,"children":1109},{},[1110,1112,1118],{"type":46,"value":1111},"Activity ",{"type":40,"tag":133,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":46,"value":1117},"available",{"type":46,"value":1119}," flag updates return 200 OK but may not change the value",{"type":40,"tag":41,"props":1121,"children":1123},{"id":1122},"output-format",[1124],{"type":46,"value":1125},"Output Format",{"type":40,"tag":49,"props":1127,"children":1128},{},[1129],{"type":46,"value":1130},"After qualifying the developer, recommend:",{"type":40,"tag":1132,"props":1133,"children":1137},"pre",{"className":1134,"code":1136,"language":46},[1135],"language-text","Recommended Architecture: [Brief plain-language description of the recommended approach — e.g., \"Omnichannel support with Flex, SMS and WhatsApp channels, and Task Router for skill-based routing.\"]\n\nReference Skills:\n- twilio-voice-twiml (always for voice support)\n- twilio-voice-outbound-calls (if outbound calling needed)\n- twilio-sms-send-message (if SMS support channel)\n- twilio-messaging-webhooks (if inbound SMS)\n- twilio-email-send (if email channel with Twilio Account SID + Auth Token) or twilio-sendgrid-email-send (if email channel with SendGrid API key)\n- twilio-conversations-api (if omnichannel threading)\n- twilio-taskrouter-routing (if multi-agent routing needed)\n- twilio-conference-calls (if transfers\u002Fcoaching needed)\n- twilio-call-recordings (if recording needed)\n\nCross-reference Planner Skills:\n- twilio-ai-agent-architect (if AI self-service layer needed)\n- twilio-agent-augmentation-architect (if intelligent contact center needed)\n\nSetup Skills:\n- twilio-account-setup — if developer needs help with credentials or account structure\n- twilio-iam-auth-setup — if developer asks about API key scoping or security\n- twilio-numbers-senders — number type selection affects throughput and compliance timelines; use when choosing between local, toll-free, or short code\n- twilio-webhook-architecture — if developer needs help designing or securing webhook endpoints\n\nGuardrail Skills:\n- twilio-security-hardening (always)\n- twilio-reliability-patterns (especially for high-volume — 429 backoff)\n- twilio-debugging-observability (Voice Insights for call quality)\n",[1138],{"type":40,"tag":133,"props":1139,"children":1141},{"__ignoreMap":1140},"",[1142],{"type":46,"value":1136},{"items":1144,"total":1319},[1145,1159,1176,1187,1198,1212,1229,1245,1261,1273,1289,1307],{"slug":1146,"name":1146,"fn":1147,"description":1148,"org":1149,"tags":1150,"stars":23,"repoUrl":24,"updatedAt":1158},"twilio-account-setup","configure Twilio accounts and credentials","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, credential isolation, limits), and enabling specific products (AI Assistants, Conversations, Verify, ConversationRelay, WhatsApp). Use this skill before any other Twilio skill if you do not yet have a Twilio account or need to enable a product. For Organization-level governance (SSO, SCIM, multi-team), see `twilio-organizations-setup`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1151,1154,1155],{"name":1152,"slug":1153,"type":15},"API Development","api-development",{"name":20,"slug":21,"type":15},{"name":1156,"slug":1157,"type":15},"SMS","sms","2026-08-01T05:43:28.968968",{"slug":678,"name":678,"fn":1160,"description":1161,"org":1162,"tags":1163,"stars":23,"repoUrl":24,"updatedAt":1175},"augment human agents with AI intelligence","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 call center\" and \"configure Conversation Intelligence operators for script adherence.\"\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1164,1165,1168,1171,1174],{"name":17,"slug":18,"type":15},{"name":1166,"slug":1167,"type":15},"AI","ai",{"name":1169,"slug":1170,"type":15},"Coaching","coaching",{"name":1172,"slug":1173,"type":15},"QA","qa",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:58.250609",{"slug":1177,"name":1177,"fn":1178,"description":1179,"org":1180,"tags":1181,"stars":23,"repoUrl":24,"updatedAt":1186},"twilio-agent-connect","connect AI agents to Twilio channels","Connect third-party AI agents (OpenAI, Bedrock, LangChain, Microsoft Foundry) to Twilio's communication channels using the Twilio Agent Connect SDK. Covers identity resolution, memory and context management via Conversation Memory, conversation orchestration via Conversation Orchestrator, multi-channel handling (Voice, SMS, RCS, WhatsApp, Chat), and AI-to-human escalation. Use this skill when integrating an existing LLM agent with Twilio services.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1182,1183,1184,1185],{"name":17,"slug":18,"type":15},{"name":1152,"slug":1153,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:06:05.217098",{"slug":296,"name":296,"fn":1188,"description":1189,"org":1190,"tags":1191,"stars":23,"repoUrl":24,"updatedAt":1197},"plan Twilio conversational AI agents","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 assistant\") and specific ones (\"integrate ConversationRelay with my OpenAI backend\").\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1192,1193,1196],{"name":17,"slug":18,"type":15},{"name":1194,"slug":1195,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:48.883723",{"slug":653,"name":653,"fn":1199,"description":1200,"org":1201,"tags":1202,"stars":23,"repoUrl":24,"updatedAt":1211},"record and manage Twilio voice calls","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 compliance, QA, or analytics.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1203,1206,1209,1210],{"name":1204,"slug":1205,"type":15},"Audio","audio",{"name":1207,"slug":1208,"type":15},"Compliance","compliance",{"name":1172,"slug":1173,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.268412",{"slug":1213,"name":1213,"fn":1214,"description":1215,"org":1216,"tags":1217,"stars":23,"repoUrl":24,"updatedAt":1228},"twilio-cli-reference","manage Twilio resources via CLI","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 ecosystem. Use when the developer asks to \"just do it\", \"set this up\", \"run a command\", mentions \"CLI\", \"command line\", or \"terminal\", or when an AI agent can execute a task directly instead of writing application code.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1218,1221,1224,1227],{"name":1219,"slug":1220,"type":15},"CLI","cli",{"name":1222,"slug":1223,"type":15},"Local Development","local-development",{"name":1225,"slug":1226,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:54.925664",{"slug":1230,"name":1230,"fn":1231,"description":1232,"org":1233,"tags":1234,"stars":23,"repoUrl":24,"updatedAt":1244},"twilio-compliance-onboarding","manage Twilio messaging and voice compliance","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\u002FSHAKEN, Voice Integrity, Branded Calling, CNAM). Each number\u002Fsender type has its own program — registration blocks traffic until complete.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1235,1236,1239,1240,1241],{"name":1207,"slug":1208,"type":15},{"name":1237,"slug":1238,"type":15},"Messaging","messaging",{"name":1156,"slug":1157,"type":15},{"name":9,"slug":8,"type":15},{"name":1242,"slug":1243,"type":15},"WhatsApp","whatsapp","2026-07-17T06:05:47.897229",{"slug":1246,"name":1246,"fn":1247,"description":1248,"org":1249,"tags":1250,"stars":23,"repoUrl":24,"updatedAt":1260},"twilio-compliance-traffic","ensure compliance for Twilio messaging traffic","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\u002FSTIR, and consent management patterns. Use this skill proactively when developers have working traffic to ensure they follow the rules.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1251,1252,1253,1256,1259],{"name":1207,"slug":1208,"type":15},{"name":1237,"slug":1238,"type":15},{"name":1254,"slug":1255,"type":15},"Regulatory Compliance","regulatory-compliance",{"name":1257,"slug":1258,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.952779",{"slug":646,"name":646,"fn":1262,"description":1263,"org":1264,"tags":1265,"stars":23,"repoUrl":24,"updatedAt":1272},"build multi-party calls with Twilio Conference","Build multi-party calls using Twilio Conference. Covers warm transfer, cold transfer, coaching (whisper), hold vs mute, participant modes, and supervisor barge. Use this skill for any contact center, support line, or scenario requiring transfers, holds, or multi-party calls.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1266,1267,1268,1271],{"name":1204,"slug":1205,"type":15},{"name":20,"slug":21,"type":15},{"name":1269,"slug":1270,"type":15},"Meetings","meetings",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.603708",{"slug":1274,"name":1274,"fn":1275,"description":1276,"org":1277,"tags":1278,"stars":23,"repoUrl":24,"updatedAt":1288},"twilio-content-template-builder","create and send message templates with Twilio","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.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1279,1282,1283,1284,1287],{"name":1280,"slug":1281,"type":15},"Email","email",{"name":1237,"slug":1238,"type":15},{"name":1156,"slug":1157,"type":15},{"name":1285,"slug":1286,"type":15},"Templates","templates",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:26.637309",{"slug":1290,"name":1290,"fn":1291,"description":1292,"org":1293,"tags":1294,"stars":23,"repoUrl":24,"updatedAt":1306},"twilio-conversation-intelligence","build conversation intelligence pipelines","Twilio Conversation Intelligence development guide. Use when building real-time or post-call conversation analysis, language operator pipelines, sentiment analysis, agent assist, cross-channel analytics, or querying aggregated conversation insights (sentiment trends, escalation rates, dashboards).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1295,1296,1299,1302,1305],{"name":17,"slug":18,"type":15},{"name":1297,"slug":1298,"type":15},"Analytics","analytics",{"name":1300,"slug":1301,"type":15},"Monitoring","monitoring",{"name":1303,"slug":1304,"type":15},"NLP","nlp",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:52.545387",{"slug":1308,"name":1308,"fn":1309,"description":1310,"org":1311,"tags":1312,"stars":23,"repoUrl":24,"updatedAt":1318},"twilio-conversation-memory","manage conversation memory with Twilio","Store and retrieve conversation context using Twilio Conversation Memory. Covers Memory Store provisioning, profile management, traits, observations, conversation summaries, and semantic Recall. Use this skill to give AI agents or human agents persistent memory of conversations across sessions and channels.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1313,1314,1317],{"name":17,"slug":18,"type":15},{"name":1315,"slug":1316,"type":15},"Memory","memory",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:19.526724",57,{"items":1321,"total":1319},[1322,1328,1336,1343,1349,1356,1363],{"slug":1146,"name":1146,"fn":1147,"description":1148,"org":1323,"tags":1324,"stars":23,"repoUrl":24,"updatedAt":1158},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1325,1326,1327],{"name":1152,"slug":1153,"type":15},{"name":20,"slug":21,"type":15},{"name":1156,"slug":1157,"type":15},{"slug":678,"name":678,"fn":1160,"description":1161,"org":1329,"tags":1330,"stars":23,"repoUrl":24,"updatedAt":1175},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1331,1332,1333,1334,1335],{"name":17,"slug":18,"type":15},{"name":1166,"slug":1167,"type":15},{"name":1169,"slug":1170,"type":15},{"name":1172,"slug":1173,"type":15},{"name":9,"slug":8,"type":15},{"slug":1177,"name":1177,"fn":1178,"description":1179,"org":1337,"tags":1338,"stars":23,"repoUrl":24,"updatedAt":1186},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1339,1340,1341,1342],{"name":17,"slug":18,"type":15},{"name":1152,"slug":1153,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"slug":296,"name":296,"fn":1188,"description":1189,"org":1344,"tags":1345,"stars":23,"repoUrl":24,"updatedAt":1197},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1346,1347,1348],{"name":17,"slug":18,"type":15},{"name":1194,"slug":1195,"type":15},{"name":9,"slug":8,"type":15},{"slug":653,"name":653,"fn":1199,"description":1200,"org":1350,"tags":1351,"stars":23,"repoUrl":24,"updatedAt":1211},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1352,1353,1354,1355],{"name":1204,"slug":1205,"type":15},{"name":1207,"slug":1208,"type":15},{"name":1172,"slug":1173,"type":15},{"name":9,"slug":8,"type":15},{"slug":1213,"name":1213,"fn":1214,"description":1215,"org":1357,"tags":1358,"stars":23,"repoUrl":24,"updatedAt":1228},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1359,1360,1361,1362],{"name":1219,"slug":1220,"type":15},{"name":1222,"slug":1223,"type":15},{"name":1225,"slug":1226,"type":15},{"name":9,"slug":8,"type":15},{"slug":1230,"name":1230,"fn":1231,"description":1232,"org":1364,"tags":1365,"stars":23,"repoUrl":24,"updatedAt":1244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1366,1367,1368,1369,1370],{"name":1207,"slug":1208,"type":15},{"name":1237,"slug":1238,"type":15},{"name":1156,"slug":1157,"type":15},{"name":9,"slug":8,"type":15},{"name":1242,"slug":1243,"type":15}]