twilio-customer-support-architect
$
npx mdskill add openai/plugins/twilio-customer-support-architectDesign scalable Twilio support systems for any customer inquiry.
- Plans architecture for call centers, IVRs, and automated support.
- Integrates with Twilio APIs for routing, recording, and agent tools.
- Selects solutions based on specificity and operational scale.
- Delivers tailored recommendations for self-service or contact centers.
SKILL.md
.github/skills/twilio-customer-support-architectView on GitHub ↗
---
name: twilio-customer-support-architect
description: >
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."
tier: discover
---
## Role
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.
## When This Skill Activates
Trigger on any of these signals:
- "Contact center," "call center," "support line," "help desk"
- "IVR," "phone tree," "call routing," "call queue"
- "Agent desktop," "Flex," "agent routing"
- "Inbound calls," "customer service," "support chat"
- "Warm transfer," "call recording," "whisper," "barge," "coaching"
- "Self-service," "automated support"
- Any request to handle incoming customer communications at scale
## Step 1: Detect Specificity and Decide Your Mode
**High-level request** (e.g., "I need to build a customer support system"):
→ DISCOVERY MODE. Walk through Steps 2-4. This is a big architectural decision.
**Mid-level request** (e.g., "I need an IVR with call routing to different departments"):
→ VALIDATION MODE. They've described a pattern — validate the approach, recommend Studio vs custom TwiML, check if they need TaskRouter or simple `<Dial>` routing.
**Specific implementation request** (e.g., "Create a TwiML Bin that plays a greeting and gathers digits"):
→ 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.
## Step 2: Qualify Intent — The 6 Essential Questions
1. **Inbound, outbound, or both?**
- Inbound only (customers calling you): Focus on IVR + routing + agent tools
- Outbound only (you calling customers): Focus on campaign dialing + compliance
- Both: Full contact center — likely needs TaskRouter + Flex
2. **Which channels do customers use to reach you?**
- Voice only → TwiML + routing
- Voice + SMS → Add messaging handling, possibly Conversations API for threading
- Voice + SMS + WhatsApp + Email + Chat → Omnichannel — Conversations API + Flex
- Reference the Channel Mix Matrix: Voice and Email dominate Customer Service & Support
3. **What's your call/message volume?**
- Low (< 50/day): Simple TwiML + `<Dial>` may suffice
- Medium (50-500/day): TaskRouter for fair distribution + basic reporting
- High (500+/day): Full TaskRouter + Flex + real-time monitoring + queue management
4. **Do you need self-service automation?**
- Simple menu ("Press 1 for billing"): TwiML `<Gather>` + `<Say>`
- Complex multi-step flow: Twilio Studio (no-code, recommended by SEs over custom state machines)
- AI-powered self-service: → Hand off to `twilio-ai-agent-architect` Planner skill
5. **Do you need agent tooling (desktop, CRM integration)?**
- No (agents use their own phone) → TwiML + TaskRouter, no Flex needed
- Yes (browser-based agent desktop) → Twilio Flex
- Yes + CRM integration → Flex + Salesforce/HubSpot/Zendesk connector
6. **What happens during transfers and holds?**
- Simple cold transfer → `<Dial>` to another number
- Warm transfer (introduce caller to next agent) → Conference API
- Coaching/whisper/barge (supervisor listens, coaches agent) → Conference with participant modes
## Step 3: Assess Sophistication — The Support Ladder
### Level 1: Self-Service Automation
**Developer says:** "I want an automated phone menu / IVR."
**Architecture:** TwiML (`<Gather>`, `<Say>`, `<Play>`) or Twilio Studio
**Key decision — Studio vs Custom TwiML:**
- **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.
- **Use custom TwiML when:** Developer team wants full code control. Flows are simple (< 3 levels). Need dynamic behavior from external APIs.
- **Use TwiML Bins when:** Static responses only. No logic. Fastest to deploy.
**Skills to install:** `twilio-voice-twiml`
### Level 2: AI-Powered Self-Service
**Developer says:** "I want AI to handle the easy questions before routing to humans."
**Architecture:** Level 1 + ConversationRelay (voice AI) or LLM-powered chat
→ **Hand off to `twilio-ai-agent-architect`** for the AI layer design. This Planner skill handles the surrounding infrastructure (routing, recording, human fallback).
**Integration point:** The AI agent's escalation payload feeds into Level 3's TaskRouter.
### Level 3: Contact Center
**Developer says:** "I need agent routing, queues, transfers, recording, and monitoring."
**Architecture:** TaskRouter + Conference + Recordings + (optionally) Flex
**TaskRouter** (the core of any Twilio contact center):
- Workers = your agents (with attributes: skills, languages, department)
- Task Queues = logical groups (billing, technical, VIP)
- Workflows = routing rules (if skill=billing AND language=es, route to Spanish billing queue)
- Reservations = agent accepts/rejects the task
**Conference** (for call orchestration):
- Every call should be a Conference, not a direct `<Dial>` — this enables warm transfer, hold, coaching
- Hold vs Mute: Hold plays music and the held party can't hear. Mute silences one party but they still hear. Critical distinction.
- Coaching: Supervisor joins as coach — hears both sides, can speak to agent only. Coach audio is NOT in the conference recording.
**Recordings:**
- Record every call for QA: `<Dial record="record-from-answer-dual">` for dual-channel (agent on one channel, caller on other)
- `<Record>` verb is NOT for recording calls — it's voicemail-style. This is the #1 mistake developers make.
- For mid-call control (pause during credit card), use the Recordings REST API
**Skills to install:** `twilio-taskrouter-routing`, `twilio-conference-calls`, `twilio-call-recordings`
### Level 4: Intelligent Contact Center
**Developer says:** "I want AI analytics, real-time coaching, and customer context for my agents."
→ **Hand off to `twilio-agent-augmentation-architect`** for the intelligence layer. This Planner skill provides the contact center foundation that augmentation builds on.
## Step 4: Qualify Context
### Existing Infrastructure
- **Greenfield (building from scratch):** Start with Studio (self-service) + TaskRouter (routing) + Conference (transfers). Add Flex if browser-based desktop needed.
- **Existing phone system / PBX:** Consider Elastic SIP Trunking to connect existing infrastructure to Twilio. Or migrate incrementally — route overflow to Twilio first.
- **Existing Flex deployment:** Focus on what to add (TaskRouter workflows, Conference patterns, recordings) rather than rebuilding.
### CRM Integration
- **Salesforce:** Flex has native Salesforce connector. Alternatively, use Studio + Twilio Functions to push/pull data.
- **HubSpot:** Webhook-based integration via Functions. No native connector.
- **Zendesk:** Flex plugin available. Ticket creation on call completion.
- **ServiceNow:** REST API integration via Functions. Common in enterprise.
- 3-5 questions determine integration success — qualify the CRM early.
### Regulatory & Compliance Context
- **TCPA:** Quiet hours (8am-9pm recipient local time). Prior express consent required for autodialed/prerecorded calls. Applies to outbound contact center campaigns.
- **PCI DSS:** Never record credit card numbers. Use `<Pay>` 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.
- **HIPAA:** Requires BAA with Twilio. Recording encryption mandatory. Transcript access restrictions. API key rotation. PHI in IVR prompts must be minimized.
- **FDCPA / 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.
- **GDPR:** EU call recording requires explicit consent or legitimate interest basis. Right to deletion applies to recordings and transcripts.
- **SHAKEN/STIR:** Three attestation levels (A/B/C). Only A produces green checkmark on caller ID. Affects answer rates for outbound. E.164 formatting required.
### Tech Stack Considerations
- **Existing CCaaS (Genesys, Five9, NICE):** Webhook-based integration. Consider incremental migration — handle overflow or specific queues via Twilio first.
- **SIP Infrastructure:** Elastic SIP Trunking for PBX interconnect. TLS and SRTP configuration. E.164 dialplan requirements.
- **Serverless constraints:** Twilio Functions: 30 concurrent executions/service, 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.
- **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.
### Scale & Architecture
- **< 10 agents:** TaskRouter with simple workflow, single queue. No Flex needed — agents can use phone.
- **10-50 agents:** TaskRouter with skills-based routing, multiple queues. Flex recommended for desktop.
- **50+ agents:** Full Flex deployment, multi-skill workflows, real-time queue monitoring, supervisor tools. Consider `twilio-agent-augmentation-architect` for intelligence layer.
- **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/tripling callback volume.
## Decision Rules
### Studio vs Functions vs Custom Code
- **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.
- **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.
- **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.
- **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.
### Conference Patterns
- Every multi-agent call should use Conference, not direct Dial
- Warm transfer: Put caller on hold in Conference → dial new agent into same Conference → brief → drop original agent
- Gotcha: Conference requires ≥2 participants to exist. API state can be misleading for single-participant conferences.
- Gotcha: Coach audio is NOT captured in conference recordings. Record separately if needed.
### TaskRouter Gotchas
- Hyphens in worker attribute names break expressions silently
- `HAS` operator on non-array attributes silently matches nothing (no error — tasks sit in queue forever)
- Reservation timeout → worker moves to offline Activity → fewer available workers → deeper backlog → positive feedback loop (cascade failure)
- Activity `available` flag updates return 200 OK but may not change the value
## Output Format
After qualifying the developer, recommend:
```
Recommended Architecture: [Level 1-4 description]
Product Skills to Install:
- twilio-voice-twiml (always for voice support)
- twilio-voice-outbound-calls (if outbound calling needed)
- twilio-sms-send-message (if SMS support channel)
- twilio-messaging-webhooks (if inbound SMS)
- twilio-email-send (if email channel with Twilio Account SID + Auth Token) or twilio-sendgrid-email-send (if email channel with SendGrid API key)
- twilio-conversations-api (if omnichannel threading)
- twilio-taskrouter-routing (if multi-agent — Level 3+)
- twilio-conference-calls (if transfers/coaching — Level 3+)
- twilio-call-recordings (if recording needed — Level 3+)
Cross-reference Planner Skills:
- twilio-ai-agent-architect (if Level 2 — AI self-service)
- twilio-agent-augmentation-architect (if Level 4 — intelligent CC)
Setup Skills:
- twilio-account-setup
- twilio-iam-auth-setup
- twilio-numbers-senders
- twilio-webhook-architecture
Guardrail Skills:
- twilio-security-hardening (always)
- twilio-reliability-patterns (especially for high-volume — 429 backoff)
- twilio-debugging-observability (Voice Insights for call quality)
```
More from openai/plugins
- accessibility-and-inclusive-visualizationMake data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.
- agent-browserBrowser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.
- agent-browser-verifyAutomated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass/fail before continuing.
- agents-sdkBuild AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
- ai-elementsAI Elements component library guidance — pre-built React components for AI interfaces built on shadcn/ui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.
- ai-gatewayVercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.
- ai-generation-persistenceAI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation
- ai-sdkVercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider.
- aiq-deploy|
- aiq-research|