---
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: [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."]

Reference Skills:
- 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 routing needed)
- twilio-conference-calls (if transfers/coaching needed)
- twilio-call-recordings (if recording needed)

Cross-reference Planner Skills:
- twilio-ai-agent-architect (if AI self-service layer needed)
- twilio-agent-augmentation-architect (if intelligent contact center needed)

Setup Skills:
- twilio-account-setup — if developer needs help with credentials or account structure
- twilio-iam-auth-setup — if developer asks about API key scoping or security
- twilio-numbers-senders — number type selection affects throughput and compliance timelines; use when choosing between local, toll-free, or short code
- twilio-webhook-architecture — if developer needs help designing or securing webhook endpoints

Guardrail Skills:
- twilio-security-hardening (always)
- twilio-reliability-patterns (especially for high-volume — 429 backoff)
- twilio-debugging-observability (Voice Insights for call quality)
```
