[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-twilio-twilio-ai-agent-architect":3,"mdc--t7pvsm-key":30,"related-org-twilio-twilio-ai-agent-architect":1656,"related-repo-twilio-twilio-ai-agent-architect":1830},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":28,"mdContent":29},"twilio-ai-agent-architect","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},"twilio","Twilio","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftwilio.png",[12,16,19],{"name":13,"slug":14,"type":15},"Architecture","architecture","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},25,"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai","2026-07-17T06:07:48.883723",null,7,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":23},[],"https:\u002F\u002Fgithub.com\u002Ftwilio\u002Fai\u002Ftree\u002FHEAD\u002Fskills\u002Ftwilio\u002Ftwilio-ai-agent-architect","---\nname: twilio-ai-agent-architect\ndescription: >\n  Planning skill for AI-powered conversational agents. Qualifies the\n  developer's use case across outcome sophistication, entry point, and\n  customer profile to recommend the right Twilio Conversations architecture and\n  implementation skills. Handles both high-level requests (\"build me a\n  voice AI assistant\") and specific ones (\"integrate ConversationRelay\n  with my OpenAI backend\").\ntier: discover\n---\n\n## Role\n\nYou are an AI Agent Architecture Advisor. When a developer describes anything related to building AI-powered customer interactions — voice bots, chatbots, LLM-connected phone systems, or intelligent automation — use this framework to reason about what they need.\n\n## When This Skill Activates\n\nTrigger on any of these signals:\n- \"AI agent,\" \"voice bot,\" \"chatbot,\" \"virtual assistant,\" \"LLM + phone\"\n- \"ConversationRelay,\" \"speech-to-text,\" \"text-to-speech,\" \"real-time voice\"\n- \"AI customer service,\" \"automated support,\" \"conversational AI\"\n- \"Conversation Memory,\" \"Conversation Intelligence,\" \"Conversation Orchestrator,\" \"TAC,\" \"Agent Connect\"\n- Any request to connect an LLM (OpenAI, Claude, Gemini) to Twilio Voice or Messaging\n\n## Step 1: Detect Specificity and Decide Your Mode\n\nBefore anything else, assess how specific the developer's request is:\n\n**High-level request** (e.g., \"I want to build an AI voice agent for customer support\"):\n→ Enter DISCOVERY MODE. Walk through Steps 2-4 to qualify their needs before recommending.\n\n**Mid-level request** (e.g., \"I need ConversationRelay with customer memory\"):\n→ Enter VALIDATION MODE. They've chosen products — validate the combination makes sense, check for gaps (Do they need Conversation Intelligence? Have they considered escalation?), then recommend Product skills.\n\n**Specific implementation request** (e.g., \"Set up a WebSocket handler for ConversationRelay with Deepgram\"):\n→ Enter BUILD MODE. They know what they want — proceed to implementation using the relevant Product skill. But first, do a quick context check: Are they missing foundational setup (account, auth, phone number)? Are they aware of the CANNOT constraints?\n\n## Step 2: Qualify Intent — The 5 Essential Questions\n\nIf you lack answers to these, ask before recommending. You don't need all 5 upfront — gather organically through conversation.\n\n1. **What outcome are you trying to achieve?**\n   - Autonomous customer service (ordering, FAQ, booking)\n   - Outbound AI calling (reminders, surveys, collections)\n   - Voice AI for internal tools (agents, copilots)\n   - Conversational commerce (sales, upsell)\n\n2. **Which channels?**\n   - Voice only → ConversationRelay\n   - Voice + SMS\u002FWhatsApp → ConversationRelay + Conversation Orchestrator for cross-channel\n   - Chat\u002Fmessaging only → Conversation Orchestrator + your LLM (no ConversationRelay needed)\n   - Omnichannel → Full Twilio Conversations stack\n\n3. **Do you need the agent to remember customers across sessions?**\n   - No (stateless, each call is independent) → Skip Conversation Memory\n   - Yes (returning customers, order history, preferences) → Add Conversation Memory\n\n4. **Do you need real-time supervision or analytics?**\n   - No → Skip Conversation Intelligence\n   - Yes (compliance monitoring, sentiment detection, churn risk) → Add Conversation Intelligence\n\n5. **Will the AI ever need to hand off to a human?**\n   - No (fully autonomous) → No TaskRouter needed\n   - Yes (escalation for complex issues) → Add TaskRouter + design escalation payload\n\n## Step 3: Assess Sophistication — The Capability Ladder\n\nWalk the developer up this ladder based on their answers. Each level adds products and complexity. Stop at the level that matches their stated outcome.\n\n### Level 1: Basic Voice AI Agent\n**Developer says:** \"I just want a voice bot connected to my LLM.\"\n**Architecture:** ConversationRelay + WebSocket server + LLM API\n**What it does:** Phone call → Twilio transcribes speech → sends text to your WebSocket → you call your LLM → return text → Twilio speaks response\n**Products:** ConversationRelay (managed STT\u002FTTS)\n**Implementation paths:**\n- **Fast path (recommended):** `twilio-agent-connect` — Python\u002FTypeScript SDK, multi-channel support (Voice, SMS, RCS, WhatsApp, Chat), automatic memory integration, OpenAI adapter\n- **Microsoft Azure deployment:** `twilio-agent-connect-microsoft` — Microsoft Agent Framework connector (Foundry Hosted\u002FPrompt Agents, Azure OpenAI), Voice Live connector with native interrupts\n- **AWS deployment:** `twilio-agent-connect-aws` — Strands SDK connector, Bedrock Agents connector, Bedrock AgentCore connector\n- **Custom path:** `twilio-voice-conversation-relay` + `twilio-voice-twiml` — Manual WebSocket server, full control\n\n### Level 2: + Customer Memory\n**Developer says:** \"I want it to remember who's calling and their history.\"\n**Architecture:** Level 1 + Conversation Memory (profiles, observations, semantic Recall)\n**What it adds:** Before responding, agent queries Conversation Memory for customer profile → retrieves relevant past interactions via semantic search → injects context into LLM prompt\n**Key decisions:**\n- Identity resolution: How do you identify the caller? (phone number, email, account ID)\n- Memory scope: What should be remembered? (transactions, preferences, sentiment, communication style)\n- Retention: What persists forever vs. what gets summarized over time?\n**Implementation:**\n- **With TAC SDK:** Automatic memory retrieval built-in (configure `MEMORY_STORE_ID` env var)\n- **Without TAC SDK:** Manual Conversation Memory API integration via `twilio-conversation-memory` skill\n\n### Level 3: + Real-Time Intelligence\n**Developer says:** \"I want to detect sentiment, monitor compliance, or trigger actions mid-conversation.\"\n**Architecture:** Level 2 + Conversation Intelligence v3 (Language Operators + webhook triggers)\n**What it adds:** Conversation Intelligence listens to every conversation in parallel → runs operators (sentiment, script adherence, custom) → fires webhooks when signals detected → your backend takes action\n**Key decisions:**\n- Which operators? Pre-built (Sentiment, Next Best Response, Script Adherence, Summary) or Custom\n- Real-time vs post-call? Real-time for intervention, post-call for analytics\n- What actions on detection? Webhook to your backend, Twilio Function trigger, log for review\n**Skills to install:** + `twilio-conversation-intelligence`\n\n### Level 4: + Human Escalation\n**Developer says:** \"When the AI can't handle it, I want it to route to the right human agent.\"\n**Architecture:** Level 3 + TaskRouter (precision routing) + Flex (agent desktop)\n**What it adds:** AI detects escalation need → TAC outputs structured payload (conversation_id, profile_id, reason_code, routing_hints) → TaskRouter consumes these signals for skills-based routing → Human agent sees Conversation Memory profile summary in Flex\n**Key decisions:**\n- Escalation triggers: What makes the AI hand off? (explicit request, confidence threshold, sensitive topic, Conversation Intelligence signal)\n- Routing strategy: FIFO queue or skills-based targeting? (VIP detection, language, department)\n- Context handoff: Summary-only (GA) or deep transcript (post-GA)\n**GA constraint:** No \"boomerang\" handback (human → AI) at GA. No AI copilot mode during human conversation.\n**Skills to install:** + `twilio-taskrouter-routing`\n\n## Architectural Warnings\n\nThese affect which products to recommend and how to set expectations — implementation details are in the Product skills.\n\n- **Silent linkage chain:** Conversation Orchestrator → Conversation Memory → Conversation Intelligence must be linked in sequence. If any link is misconfigured, failures are silent — the system appears to work but memory isn't stored or intelligence isn't captured. This is the #1 debugging time sink.\n- **SDK availability:** Twilio Agent Connect SDK (Python 3.10+ and TypeScript\u002FNode.js 22.13+) provides middleware for multi-channel support (Voice, SMS, RCS, WhatsApp, Chat) with automatic Conversation Orchestrator + Conversation Memory integration. Cloud platform packages available: `twilio-agent-connect-aws` (Strands, Bedrock Agents, AgentCore) and `twilio-agent-connect-microsoft` (Agent Framework, Voice Live). ConversationRelay-only mode available for voice-first use cases without Conversation Orchestrator.\n- **One-way door settings:** `GROUP_BY_PARTICIPANT_ADDRESSES` on a Conversations Service cannot be changed once set. Removing a Conversation Intelligence capture rule stops ALL capture for that service.\n- **Operator lifecycle trap:** Updating a Conversation Intelligence operator via PUT creates an inactive new version with no activation endpoint. Must delete and recreate.\n- **Dashboard latency:** Conversation Intelligence signals take 7-10 minutes to appear in the console dashboard. Use webhook delivery for real-time action.\n- **Tunnel reliability:** Dead ngrok tunnels cause silent webhook delivery failure. For production, deploy to cloud infrastructure.\n\n## Step 4: Qualify Context — Entry Point & Customer Profile\n\n### Entry Point: Pure AI or Hybrid?\n- **Pure AI agent** (no humans in the loop): Levels 1-3 are your world. Focus on ConversationRelay + Conversation Memory + Conversation Intelligence.\n- **Hybrid** (AI handles tier-1, humans handle complex): You need Level 4. Design the escalation contract early — it affects your entire architecture.\n\n### Customer Profile: How does this change the recommendation?\n\n**ISV (building for multiple clients):**\n- Multi-tenant Conversation Memory: Separate Memory Stores per client (max 15 per account)\n- Per-client Conversation Intelligence operator configs\n- Compliance: Each client may have different retention policies\n- Likely needs Segment Bridge for client CRM integration\n\n**Enterprise:**\n- No ngrok: Must use production-grade tunneling or deploy to cloud (dead ngrok tunnels are a common debugging time-sink)\n- Compliance operators: Script adherence and regulatory monitoring likely required\n- Segment Bridge: Bidirectional sync with existing CDP\n- Custom operators: Enterprise-specific detection rules\n\n**SMB \u002F Startup:**\n- Start at Level 1, prove value, then add levels\n- Use managed defaults — don't over-engineer memory or intelligence upfront\n- Quickstart path: Twilio Agent Connect SDK + OpenAI → multi-channel working demo in under an hour\n- Use setup wizard in SDK repos for automated Memory and Conversation Orchestrator configuration\n\n### Regulatory Context\n- **TCPA:** AI voice agents making outbound calls require prior express consent. Automated\u002Fprerecorded voice = strict consent rules. Quiet hours (8am-9pm recipient local time).\n- **HIPAA:** If the AI agent handles PHI (healthcare), BAA with Twilio required. Recording encryption mandatory. Minimize PHI in TTS output. API key rotation.\n- **PCI DSS:** If AI agent collects payment info, use `\u003CPay>` verb. Never let LLM process or log card numbers. PCI Mode is IRREVERSIBLE and account-wide.\n- **GDPR:** EU call recording requires explicit consent. Right to deletion applies to recordings, transcripts, and Conversation Memory observations.\n- **FDCPA:** AI agents for debt collection must include Mini-Miranda disclosure. Max 7 attempts per debt per 7-day window. Developer must enforce — Twilio does not.\n\n### Tech Stack Considerations\n- **ConversationRelay WebSocket server:** Deploy behind load balancer for redundancy. Configure `action` URL on `\u003CConnect>` for graceful fallback to DTMF IVR on disconnect.\n- **LLM provider failover:** WebSocket server should detect LLM timeouts and fall back to secondary provider or scripted response.\n- **Session state persistence:** Persist conversation history to Sync, Redis, or DynamoDB for WebSocket reconnection scenarios.\n- **Functions scaling:** 30 concurrent executions\u002Fservice, 10-second timeout. Status callbacks at 50 concurrent calls = 300 invocations. Use thin-receiver pattern or external compute.\n- **Multi-region:** Twilio processes calls in closest region. Use `TWILIO_EDGE` for explicit control. Co-locate WebSocket server with Twilio region for lowest latency.\n\n## Decision Rules\n\n### Twilio Agent Connect SDK vs Manual Integration\n\n**Use Twilio Agent Connect SDK when:**\n- Building a new Voice or SMS AI agent from scratch\n- Want fastest time-to-value with batteries-included approach\n- Need multi-channel support (Voice + SMS) from one codebase\n- Customer Memory is a core requirement\n- Team is comfortable with Python 3.9+ or TypeScript\u002FNode.js 22.13.0+\n- Don't need access to low-level ConversationRelay protocol events\n\n**Use Manual Integration when:**\n- Need full control over WebSocket lifecycle and protocol handling\n- Building advanced features not yet in SDK (interrupt handling in Python, handoff callbacks in Python)\n- Integrating into existing WebSocket server infrastructure\n- Need to customize beyond SDK's callback model\n- Voice-only and need access to raw ConversationRelay events (setup, DTMF, etc.)\n\n**Key difference:** Twilio Agent Connect is middleware that abstracts channel complexity. Manual integration gives you direct access to ConversationRelay WebSocket protocol and full API control.\n\n### Cloud Platform Selection (TAC SDK)\n\nIf using Twilio Agent Connect SDK, choose the right integration package for your infrastructure:\n\n**Use core TAC SDK (`twilio-agent-connect`) when:**\n- Deploying on any infrastructure (cloud-agnostic)\n- Using OpenAI or Anthropic APIs directly\n- Need maximum flexibility in LLM provider choice\n- Don't need cloud-native agent orchestration\n\n**Use Azure integration (`tac-azure`) when:**\n- Deploying on Azure infrastructure (App Service, Container Apps, AKS)\n- Using Azure AI Foundry for agent management\n- Want Azure OpenAI with Microsoft Agent Framework orchestration\n- Need Azure-native session storage (CosmosDB)\n- Using Azure Voice Live for low-latency streaming\n\n**Use AWS integration (`tac-aws`) when:**\n- Deploying on AWS infrastructure (ECS, Fargate, EKS, Lambda)\n- Using AWS Bedrock models (Claude, Titan, etc.)\n- Want AWS-managed agent runtime (Strands, Bedrock AgentCore)\n- Using Bedrock Agents console for agent configuration\n- Need AWS-native orchestration and knowledge base integration\n\n### ConversationRelay vs Media Streams\n- **Use ConversationRelay when:** You want managed STT\u002FTTS, fast time-to-value, JSON text protocol. This is the default choice for 90% of voice AI use cases.\n- **Use Media Streams when:** You need raw audio access, custom STT\u002FTTS pipeline, audio processing (noise cancellation, speaker diarization), or full bidirectional audio control.\n- **CANNOT:** Mix ConversationRelay and Media Streams on the same call. Choose one.\n- **CANNOT (ConversationRelay):** Access raw audio, auto-reconnect WebSocket, change voice mid-session (only language), handle SMS\u002Fmessaging (voice only), record via ConversationRelay itself (use separate `\u003CStart>\u003CRecording>` before `\u003CConnect>`).\n\n### STT\u002FTTS Provider Selection\n- **Deepgram:** Best real-time accuracy, lowest latency. Supports nova-3-general model. Default recommendation.\n- **Google:** Widest language coverage. Use when multi-lingual support is the priority.\n- **ElevenLabs:** Best voice quality and naturalness. Use for customer-facing premium experiences. Requires account enablement.\n- **Amazon Polly:** Cost-effective for high volume. Fewer voice options.\n- Multi-lingual: The supported language set is the INTERSECTION of your chosen STT and TTS providers. Check compatibility before committing.\n\n### When to Add Conversation Memory\n- Add if: Customer calls back and should be recognized. Personalization matters. You need to recall past interactions.\n- Skip if: Every call is independent (hotline, one-time surveys). Stateless is simpler.\n- Key gotcha (TypeScript SDK): Voice Memory has a known bug (userMemory hardcoded to undefined for voice). Use manual `retrieveMemory()` workaround. Python SDK works correctly.\n\n### When to Add Conversation Intelligence\n- Add if: You need real-time supervision, compliance monitoring, or coaching signals.\n- Skip if: Pure autonomous agent with no monitoring needs. Add it later when you need analytics.\n- Key gotcha: Operator updates via PUT create an inactive new version — there is no activation endpoint. You must recreate the operator to apply changes.\n- Key gotcha: OperatorResults may return results from other conversations. Filter by conversation_id explicitly.\n\n## GA Constraints (May 2026)\n\nWhat works:\n- ConversationRelay: Full STT\u002FTTS\u002FWebSocket pipeline ✅\n- Conversation Memory: Profiles, observations, summaries, semantic Recall, identity resolution ✅\n- Conversation Intelligence v3: Real-time Language Operators, webhook triggers ✅\n- TAC escalation: Structured payload to TaskRouter ✅\n\nWhat requires custom code:\n- Cross-channel binding: Must explicitly pass ConversationId (no automatic stitching)\n- Subject discrimination: Developer must build query normalization (Conversation Orchestrator can't separate topics)\n- Channel switching context: Must manually hydrate context via Conversation Memory Recall\n\nWhat does NOT work at GA:\n- Boomerang handback (human → AI return)\n- AI copilot mode during human conversations\n- Primary channel governance \u002F turn-taking\n- Delegated authority \u002F scoped tokens (planned)\n- Outbound orchestration (planned)\n- Native dashboards (API-only, pipe to your own BI tools)\n\n## SDK Options\n\n**Twilio Agent Connect SDK (Recommended for most use cases):**\n- Middleware SDK available in Python and TypeScript (Public Beta)\n- Handles ConversationRelay + Conversation Orchestrator + Conversation Memory integration automatically\n- Unified callback model for Voice and SMS channels\n- Automatic memory retrieval (when configured)\n- Setup wizard for Memory Store and Conversation Service creation\n- Use `twilio-agent-connect` skill for implementation guidance\n\n**Raw API Integration (Advanced\u002FCustom use cases):**\n- Direct HTTP calls to Conversation Memory, Conversation Orchestrator, Conversation Intelligence APIs\n- Required for advanced features not yet in SDK\n- More flexibility but more integration complexity\n- Use product-specific skills: `twilio-conversation-memory`, `twilio-conversation-orchestrator`, `twilio-conversation-intelligence`\n\nAlways recommend `twilio-debugging-observability` guardrail skill alongside any Twilio Conversations implementation.\n\n## Output Format\n\nAfter qualifying the developer, recommend:\n\n```\nRecommended Architecture: [Brief plain-language description of the recommended approach — e.g., \"AI voice agent using Agent Connect with long-term memory via Customer Memory API and Conversation Orchestrator for multi-step task handling.\"]\n\nImplementation Path:\n- **Fast path (recommended):** Use Twilio Agent Connect SDK → Install `twilio-agent-connect` skill\n  - Handles Voice + SMS channels\n  - Automatic memory integration when configured\n  - Python 3.9+ or Node.js 22.13.0+\n  - Setup wizard for Memory Store and Conversation Service creation\n\n- **Custom path (advanced):** Manual integration → Install individual product skills below\n\nProduct Skills (for custom\u002Fadvanced implementations):\n- twilio-voice-conversation-relay (voice AI - manual WebSocket server)\n- twilio-conversation-memory (manual memory integration)\n- twilio-conversation-intelligence (Conversation Intelligence webhook processing)\n- twilio-taskrouter-routing (human escalation routing)\n- twilio-conversation-orchestrator (conversation orchestration)\n- twilio-media-streams (if custom STT\u002FTTS needed instead of ConversationRelay)\n- twilio-sendgrid-email-send (post-interaction email summaries)\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 (especially for enterprise — tunnel alternatives)\n\nGuardrail Skills:\n- twilio-security-hardening (always)\n- twilio-debugging-observability (always — error triage, Event Streams, Voice Insights)\n- twilio-reliability-patterns (for production deployment)\n```\n",{"data":31,"body":33},{"name":4,"description":6,"tier":32},"discover",{"type":34,"children":35},"root",[36,45,51,57,62,92,98,103,114,124,134,140,145,274,280,285,292,328,409,415,442,501,507,532,562,568,593,629,635,640,724,730,736,759,765,773,796,804,827,835,858,864,925,931,1008,1014,1020,1028,1061,1069,1097,1107,1113,1118,1133,1156,1171,1199,1214,1242,1248,1306,1312,1360,1366,1392,1398,1421,1427,1432,1455,1460,1478,1483,1516,1522,1530,1570,1578,1620,1633,1639,1644],{"type":37,"tag":38,"props":39,"children":41},"element","h2",{"id":40},"role",[42],{"type":43,"value":44},"text","Role",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49],{"type":43,"value":50},"You are an AI Agent Architecture Advisor. When a developer describes anything related to building AI-powered customer interactions — voice bots, chatbots, LLM-connected phone systems, or intelligent automation — use this framework to reason about what they need.",{"type":37,"tag":38,"props":52,"children":54},{"id":53},"when-this-skill-activates",[55],{"type":43,"value":56},"When This Skill Activates",{"type":37,"tag":46,"props":58,"children":59},{},[60],{"type":43,"value":61},"Trigger on any of these signals:",{"type":37,"tag":63,"props":64,"children":65},"ul",{},[66,72,77,82,87],{"type":37,"tag":67,"props":68,"children":69},"li",{},[70],{"type":43,"value":71},"\"AI agent,\" \"voice bot,\" \"chatbot,\" \"virtual assistant,\" \"LLM + phone\"",{"type":37,"tag":67,"props":73,"children":74},{},[75],{"type":43,"value":76},"\"ConversationRelay,\" \"speech-to-text,\" \"text-to-speech,\" \"real-time voice\"",{"type":37,"tag":67,"props":78,"children":79},{},[80],{"type":43,"value":81},"\"AI customer service,\" \"automated support,\" \"conversational AI\"",{"type":37,"tag":67,"props":83,"children":84},{},[85],{"type":43,"value":86},"\"Conversation Memory,\" \"Conversation Intelligence,\" \"Conversation Orchestrator,\" \"TAC,\" \"Agent Connect\"",{"type":37,"tag":67,"props":88,"children":89},{},[90],{"type":43,"value":91},"Any request to connect an LLM (OpenAI, Claude, Gemini) to Twilio Voice or Messaging",{"type":37,"tag":38,"props":93,"children":95},{"id":94},"step-1-detect-specificity-and-decide-your-mode",[96],{"type":43,"value":97},"Step 1: Detect Specificity and Decide Your Mode",{"type":37,"tag":46,"props":99,"children":100},{},[101],{"type":43,"value":102},"Before anything else, assess how specific the developer's request is:",{"type":37,"tag":46,"props":104,"children":105},{},[106,112],{"type":37,"tag":107,"props":108,"children":109},"strong",{},[110],{"type":43,"value":111},"High-level request",{"type":43,"value":113}," (e.g., \"I want to build an AI voice agent for customer support\"):\n→ Enter DISCOVERY MODE. Walk through Steps 2-4 to qualify their needs before recommending.",{"type":37,"tag":46,"props":115,"children":116},{},[117,122],{"type":37,"tag":107,"props":118,"children":119},{},[120],{"type":43,"value":121},"Mid-level request",{"type":43,"value":123}," (e.g., \"I need ConversationRelay with customer memory\"):\n→ Enter VALIDATION MODE. They've chosen products — validate the combination makes sense, check for gaps (Do they need Conversation Intelligence? Have they considered escalation?), then recommend Product skills.",{"type":37,"tag":46,"props":125,"children":126},{},[127,132],{"type":37,"tag":107,"props":128,"children":129},{},[130],{"type":43,"value":131},"Specific implementation request",{"type":43,"value":133}," (e.g., \"Set up a WebSocket handler for ConversationRelay with Deepgram\"):\n→ Enter BUILD MODE. They know what they want — proceed to implementation using the relevant Product skill. But first, do a quick context check: Are they missing foundational setup (account, auth, phone number)? Are they aware of the CANNOT constraints?",{"type":37,"tag":38,"props":135,"children":137},{"id":136},"step-2-qualify-intent-the-5-essential-questions",[138],{"type":43,"value":139},"Step 2: Qualify Intent — The 5 Essential Questions",{"type":37,"tag":46,"props":141,"children":142},{},[143],{"type":43,"value":144},"If you lack answers to these, ask before recommending. You don't need all 5 upfront — gather organically through conversation.",{"type":37,"tag":146,"props":147,"children":148},"ol",{},[149,180,211,232,253],{"type":37,"tag":67,"props":150,"children":151},{},[152,157],{"type":37,"tag":107,"props":153,"children":154},{},[155],{"type":43,"value":156},"What outcome are you trying to achieve?",{"type":37,"tag":63,"props":158,"children":159},{},[160,165,170,175],{"type":37,"tag":67,"props":161,"children":162},{},[163],{"type":43,"value":164},"Autonomous customer service (ordering, FAQ, booking)",{"type":37,"tag":67,"props":166,"children":167},{},[168],{"type":43,"value":169},"Outbound AI calling (reminders, surveys, collections)",{"type":37,"tag":67,"props":171,"children":172},{},[173],{"type":43,"value":174},"Voice AI for internal tools (agents, copilots)",{"type":37,"tag":67,"props":176,"children":177},{},[178],{"type":43,"value":179},"Conversational commerce (sales, upsell)",{"type":37,"tag":67,"props":181,"children":182},{},[183,188],{"type":37,"tag":107,"props":184,"children":185},{},[186],{"type":43,"value":187},"Which channels?",{"type":37,"tag":63,"props":189,"children":190},{},[191,196,201,206],{"type":37,"tag":67,"props":192,"children":193},{},[194],{"type":43,"value":195},"Voice only → ConversationRelay",{"type":37,"tag":67,"props":197,"children":198},{},[199],{"type":43,"value":200},"Voice + SMS\u002FWhatsApp → ConversationRelay + Conversation Orchestrator for cross-channel",{"type":37,"tag":67,"props":202,"children":203},{},[204],{"type":43,"value":205},"Chat\u002Fmessaging only → Conversation Orchestrator + your LLM (no ConversationRelay needed)",{"type":37,"tag":67,"props":207,"children":208},{},[209],{"type":43,"value":210},"Omnichannel → Full Twilio Conversations stack",{"type":37,"tag":67,"props":212,"children":213},{},[214,219],{"type":37,"tag":107,"props":215,"children":216},{},[217],{"type":43,"value":218},"Do you need the agent to remember customers across sessions?",{"type":37,"tag":63,"props":220,"children":221},{},[222,227],{"type":37,"tag":67,"props":223,"children":224},{},[225],{"type":43,"value":226},"No (stateless, each call is independent) → Skip Conversation Memory",{"type":37,"tag":67,"props":228,"children":229},{},[230],{"type":43,"value":231},"Yes (returning customers, order history, preferences) → Add Conversation Memory",{"type":37,"tag":67,"props":233,"children":234},{},[235,240],{"type":37,"tag":107,"props":236,"children":237},{},[238],{"type":43,"value":239},"Do you need real-time supervision or analytics?",{"type":37,"tag":63,"props":241,"children":242},{},[243,248],{"type":37,"tag":67,"props":244,"children":245},{},[246],{"type":43,"value":247},"No → Skip Conversation Intelligence",{"type":37,"tag":67,"props":249,"children":250},{},[251],{"type":43,"value":252},"Yes (compliance monitoring, sentiment detection, churn risk) → Add Conversation Intelligence",{"type":37,"tag":67,"props":254,"children":255},{},[256,261],{"type":37,"tag":107,"props":257,"children":258},{},[259],{"type":43,"value":260},"Will the AI ever need to hand off to a human?",{"type":37,"tag":63,"props":262,"children":263},{},[264,269],{"type":37,"tag":67,"props":265,"children":266},{},[267],{"type":43,"value":268},"No (fully autonomous) → No TaskRouter needed",{"type":37,"tag":67,"props":270,"children":271},{},[272],{"type":43,"value":273},"Yes (escalation for complex issues) → Add TaskRouter + design escalation payload",{"type":37,"tag":38,"props":275,"children":277},{"id":276},"step-3-assess-sophistication-the-capability-ladder",[278],{"type":43,"value":279},"Step 3: Assess Sophistication — The Capability Ladder",{"type":37,"tag":46,"props":281,"children":282},{},[283],{"type":43,"value":284},"Walk the developer up this ladder based on their answers. Each level adds products and complexity. Stop at the level that matches their stated outcome.",{"type":37,"tag":286,"props":287,"children":289},"h3",{"id":288},"level-1-basic-voice-ai-agent",[290],{"type":43,"value":291},"Level 1: Basic Voice AI Agent",{"type":37,"tag":46,"props":293,"children":294},{},[295,300,302,307,309,314,316,321,323],{"type":37,"tag":107,"props":296,"children":297},{},[298],{"type":43,"value":299},"Developer says:",{"type":43,"value":301}," \"I just want a voice bot connected to my LLM.\"\n",{"type":37,"tag":107,"props":303,"children":304},{},[305],{"type":43,"value":306},"Architecture:",{"type":43,"value":308}," ConversationRelay + WebSocket server + LLM API\n",{"type":37,"tag":107,"props":310,"children":311},{},[312],{"type":43,"value":313},"What it does:",{"type":43,"value":315}," Phone call → Twilio transcribes speech → sends text to your WebSocket → you call your LLM → return text → Twilio speaks response\n",{"type":37,"tag":107,"props":317,"children":318},{},[319],{"type":43,"value":320},"Products:",{"type":43,"value":322}," ConversationRelay (managed STT\u002FTTS)\n",{"type":37,"tag":107,"props":324,"children":325},{},[326],{"type":43,"value":327},"Implementation paths:",{"type":37,"tag":63,"props":329,"children":330},{},[331,350,367,384],{"type":37,"tag":67,"props":332,"children":333},{},[334,339,341,348],{"type":37,"tag":107,"props":335,"children":336},{},[337],{"type":43,"value":338},"Fast path (recommended):",{"type":43,"value":340}," ",{"type":37,"tag":342,"props":343,"children":345},"code",{"className":344},[],[346],{"type":43,"value":347},"twilio-agent-connect",{"type":43,"value":349}," — Python\u002FTypeScript SDK, multi-channel support (Voice, SMS, RCS, WhatsApp, Chat), automatic memory integration, OpenAI adapter",{"type":37,"tag":67,"props":351,"children":352},{},[353,358,359,365],{"type":37,"tag":107,"props":354,"children":355},{},[356],{"type":43,"value":357},"Microsoft Azure deployment:",{"type":43,"value":340},{"type":37,"tag":342,"props":360,"children":362},{"className":361},[],[363],{"type":43,"value":364},"twilio-agent-connect-microsoft",{"type":43,"value":366}," — Microsoft Agent Framework connector (Foundry Hosted\u002FPrompt Agents, Azure OpenAI), Voice Live connector with native interrupts",{"type":37,"tag":67,"props":368,"children":369},{},[370,375,376,382],{"type":37,"tag":107,"props":371,"children":372},{},[373],{"type":43,"value":374},"AWS deployment:",{"type":43,"value":340},{"type":37,"tag":342,"props":377,"children":379},{"className":378},[],[380],{"type":43,"value":381},"twilio-agent-connect-aws",{"type":43,"value":383}," — Strands SDK connector, Bedrock Agents connector, Bedrock AgentCore connector",{"type":37,"tag":67,"props":385,"children":386},{},[387,392,393,399,401,407],{"type":37,"tag":107,"props":388,"children":389},{},[390],{"type":43,"value":391},"Custom path:",{"type":43,"value":340},{"type":37,"tag":342,"props":394,"children":396},{"className":395},[],[397],{"type":43,"value":398},"twilio-voice-conversation-relay",{"type":43,"value":400}," + ",{"type":37,"tag":342,"props":402,"children":404},{"className":403},[],[405],{"type":43,"value":406},"twilio-voice-twiml",{"type":43,"value":408}," — Manual WebSocket server, full control",{"type":37,"tag":286,"props":410,"children":412},{"id":411},"level-2-customer-memory",[413],{"type":43,"value":414},"Level 2: + Customer Memory",{"type":37,"tag":46,"props":416,"children":417},{},[418,422,424,428,430,435,437],{"type":37,"tag":107,"props":419,"children":420},{},[421],{"type":43,"value":299},{"type":43,"value":423}," \"I want it to remember who's calling and their history.\"\n",{"type":37,"tag":107,"props":425,"children":426},{},[427],{"type":43,"value":306},{"type":43,"value":429}," Level 1 + Conversation Memory (profiles, observations, semantic Recall)\n",{"type":37,"tag":107,"props":431,"children":432},{},[433],{"type":43,"value":434},"What it adds:",{"type":43,"value":436}," Before responding, agent queries Conversation Memory for customer profile → retrieves relevant past interactions via semantic search → injects context into LLM prompt\n",{"type":37,"tag":107,"props":438,"children":439},{},[440],{"type":43,"value":441},"Key decisions:",{"type":37,"tag":63,"props":443,"children":444},{},[445,450,455,465,483],{"type":37,"tag":67,"props":446,"children":447},{},[448],{"type":43,"value":449},"Identity resolution: How do you identify the caller? (phone number, email, account ID)",{"type":37,"tag":67,"props":451,"children":452},{},[453],{"type":43,"value":454},"Memory scope: What should be remembered? (transactions, preferences, sentiment, communication style)",{"type":37,"tag":67,"props":456,"children":457},{},[458,460],{"type":43,"value":459},"Retention: What persists forever vs. what gets summarized over time?\n",{"type":37,"tag":107,"props":461,"children":462},{},[463],{"type":43,"value":464},"Implementation:",{"type":37,"tag":67,"props":466,"children":467},{},[468,473,475,481],{"type":37,"tag":107,"props":469,"children":470},{},[471],{"type":43,"value":472},"With TAC SDK:",{"type":43,"value":474}," Automatic memory retrieval built-in (configure ",{"type":37,"tag":342,"props":476,"children":478},{"className":477},[],[479],{"type":43,"value":480},"MEMORY_STORE_ID",{"type":43,"value":482}," env var)",{"type":37,"tag":67,"props":484,"children":485},{},[486,491,493,499],{"type":37,"tag":107,"props":487,"children":488},{},[489],{"type":43,"value":490},"Without TAC SDK:",{"type":43,"value":492}," Manual Conversation Memory API integration via ",{"type":37,"tag":342,"props":494,"children":496},{"className":495},[],[497],{"type":43,"value":498},"twilio-conversation-memory",{"type":43,"value":500}," skill",{"type":37,"tag":286,"props":502,"children":504},{"id":503},"level-3-real-time-intelligence",[505],{"type":43,"value":506},"Level 3: + Real-Time Intelligence",{"type":37,"tag":46,"props":508,"children":509},{},[510,514,516,520,522,526,528],{"type":37,"tag":107,"props":511,"children":512},{},[513],{"type":43,"value":299},{"type":43,"value":515}," \"I want to detect sentiment, monitor compliance, or trigger actions mid-conversation.\"\n",{"type":37,"tag":107,"props":517,"children":518},{},[519],{"type":43,"value":306},{"type":43,"value":521}," Level 2 + Conversation Intelligence v3 (Language Operators + webhook triggers)\n",{"type":37,"tag":107,"props":523,"children":524},{},[525],{"type":43,"value":434},{"type":43,"value":527}," Conversation Intelligence listens to every conversation in parallel → runs operators (sentiment, script adherence, custom) → fires webhooks when signals detected → your backend takes action\n",{"type":37,"tag":107,"props":529,"children":530},{},[531],{"type":43,"value":441},{"type":37,"tag":63,"props":533,"children":534},{},[535,540,545],{"type":37,"tag":67,"props":536,"children":537},{},[538],{"type":43,"value":539},"Which operators? Pre-built (Sentiment, Next Best Response, Script Adherence, Summary) or Custom",{"type":37,"tag":67,"props":541,"children":542},{},[543],{"type":43,"value":544},"Real-time vs post-call? Real-time for intervention, post-call for analytics",{"type":37,"tag":67,"props":546,"children":547},{},[548,550,555,556],{"type":43,"value":549},"What actions on detection? Webhook to your backend, Twilio Function trigger, log for review\n",{"type":37,"tag":107,"props":551,"children":552},{},[553],{"type":43,"value":554},"Skills to install:",{"type":43,"value":400},{"type":37,"tag":342,"props":557,"children":559},{"className":558},[],[560],{"type":43,"value":561},"twilio-conversation-intelligence",{"type":37,"tag":286,"props":563,"children":565},{"id":564},"level-4-human-escalation",[566],{"type":43,"value":567},"Level 4: + Human Escalation",{"type":37,"tag":46,"props":569,"children":570},{},[571,575,577,581,583,587,589],{"type":37,"tag":107,"props":572,"children":573},{},[574],{"type":43,"value":299},{"type":43,"value":576}," \"When the AI can't handle it, I want it to route to the right human agent.\"\n",{"type":37,"tag":107,"props":578,"children":579},{},[580],{"type":43,"value":306},{"type":43,"value":582}," Level 3 + TaskRouter (precision routing) + Flex (agent desktop)\n",{"type":37,"tag":107,"props":584,"children":585},{},[586],{"type":43,"value":434},{"type":43,"value":588}," AI detects escalation need → TAC outputs structured payload (conversation_id, profile_id, reason_code, routing_hints) → TaskRouter consumes these signals for skills-based routing → Human agent sees Conversation Memory profile summary in Flex\n",{"type":37,"tag":107,"props":590,"children":591},{},[592],{"type":43,"value":441},{"type":37,"tag":63,"props":594,"children":595},{},[596,601,606],{"type":37,"tag":67,"props":597,"children":598},{},[599],{"type":43,"value":600},"Escalation triggers: What makes the AI hand off? (explicit request, confidence threshold, sensitive topic, Conversation Intelligence signal)",{"type":37,"tag":67,"props":602,"children":603},{},[604],{"type":43,"value":605},"Routing strategy: FIFO queue or skills-based targeting? (VIP detection, language, department)",{"type":37,"tag":67,"props":607,"children":608},{},[609,611,616,618,622,623],{"type":43,"value":610},"Context handoff: Summary-only (GA) or deep transcript (post-GA)\n",{"type":37,"tag":107,"props":612,"children":613},{},[614],{"type":43,"value":615},"GA constraint:",{"type":43,"value":617}," No \"boomerang\" handback (human → AI) at GA. No AI copilot mode during human conversation.\n",{"type":37,"tag":107,"props":619,"children":620},{},[621],{"type":43,"value":554},{"type":43,"value":400},{"type":37,"tag":342,"props":624,"children":626},{"className":625},[],[627],{"type":43,"value":628},"twilio-taskrouter-routing",{"type":37,"tag":38,"props":630,"children":632},{"id":631},"architectural-warnings",[633],{"type":43,"value":634},"Architectural Warnings",{"type":37,"tag":46,"props":636,"children":637},{},[638],{"type":43,"value":639},"These affect which products to recommend and how to set expectations — implementation details are in the Product skills.",{"type":37,"tag":63,"props":641,"children":642},{},[643,653,677,694,704,714],{"type":37,"tag":67,"props":644,"children":645},{},[646,651],{"type":37,"tag":107,"props":647,"children":648},{},[649],{"type":43,"value":650},"Silent linkage chain:",{"type":43,"value":652}," Conversation Orchestrator → Conversation Memory → Conversation Intelligence must be linked in sequence. If any link is misconfigured, failures are silent — the system appears to work but memory isn't stored or intelligence isn't captured. This is the #1 debugging time sink.",{"type":37,"tag":67,"props":654,"children":655},{},[656,661,663,668,670,675],{"type":37,"tag":107,"props":657,"children":658},{},[659],{"type":43,"value":660},"SDK availability:",{"type":43,"value":662}," Twilio Agent Connect SDK (Python 3.10+ and TypeScript\u002FNode.js 22.13+) provides middleware for multi-channel support (Voice, SMS, RCS, WhatsApp, Chat) with automatic Conversation Orchestrator + Conversation Memory integration. Cloud platform packages available: ",{"type":37,"tag":342,"props":664,"children":666},{"className":665},[],[667],{"type":43,"value":381},{"type":43,"value":669}," (Strands, Bedrock Agents, AgentCore) and ",{"type":37,"tag":342,"props":671,"children":673},{"className":672},[],[674],{"type":43,"value":364},{"type":43,"value":676}," (Agent Framework, Voice Live). ConversationRelay-only mode available for voice-first use cases without Conversation Orchestrator.",{"type":37,"tag":67,"props":678,"children":679},{},[680,685,686,692],{"type":37,"tag":107,"props":681,"children":682},{},[683],{"type":43,"value":684},"One-way door settings:",{"type":43,"value":340},{"type":37,"tag":342,"props":687,"children":689},{"className":688},[],[690],{"type":43,"value":691},"GROUP_BY_PARTICIPANT_ADDRESSES",{"type":43,"value":693}," on a Conversations Service cannot be changed once set. Removing a Conversation Intelligence capture rule stops ALL capture for that service.",{"type":37,"tag":67,"props":695,"children":696},{},[697,702],{"type":37,"tag":107,"props":698,"children":699},{},[700],{"type":43,"value":701},"Operator lifecycle trap:",{"type":43,"value":703}," Updating a Conversation Intelligence operator via PUT creates an inactive new version with no activation endpoint. Must delete and recreate.",{"type":37,"tag":67,"props":705,"children":706},{},[707,712],{"type":37,"tag":107,"props":708,"children":709},{},[710],{"type":43,"value":711},"Dashboard latency:",{"type":43,"value":713}," Conversation Intelligence signals take 7-10 minutes to appear in the console dashboard. Use webhook delivery for real-time action.",{"type":37,"tag":67,"props":715,"children":716},{},[717,722],{"type":37,"tag":107,"props":718,"children":719},{},[720],{"type":43,"value":721},"Tunnel reliability:",{"type":43,"value":723}," Dead ngrok tunnels cause silent webhook delivery failure. For production, deploy to cloud infrastructure.",{"type":37,"tag":38,"props":725,"children":727},{"id":726},"step-4-qualify-context-entry-point-customer-profile",[728],{"type":43,"value":729},"Step 4: Qualify Context — Entry Point & Customer Profile",{"type":37,"tag":286,"props":731,"children":733},{"id":732},"entry-point-pure-ai-or-hybrid",[734],{"type":43,"value":735},"Entry Point: Pure AI or Hybrid?",{"type":37,"tag":63,"props":737,"children":738},{},[739,749],{"type":37,"tag":67,"props":740,"children":741},{},[742,747],{"type":37,"tag":107,"props":743,"children":744},{},[745],{"type":43,"value":746},"Pure AI agent",{"type":43,"value":748}," (no humans in the loop): Levels 1-3 are your world. Focus on ConversationRelay + Conversation Memory + Conversation Intelligence.",{"type":37,"tag":67,"props":750,"children":751},{},[752,757],{"type":37,"tag":107,"props":753,"children":754},{},[755],{"type":43,"value":756},"Hybrid",{"type":43,"value":758}," (AI handles tier-1, humans handle complex): You need Level 4. Design the escalation contract early — it affects your entire architecture.",{"type":37,"tag":286,"props":760,"children":762},{"id":761},"customer-profile-how-does-this-change-the-recommendation",[763],{"type":43,"value":764},"Customer Profile: How does this change the recommendation?",{"type":37,"tag":46,"props":766,"children":767},{},[768],{"type":37,"tag":107,"props":769,"children":770},{},[771],{"type":43,"value":772},"ISV (building for multiple clients):",{"type":37,"tag":63,"props":774,"children":775},{},[776,781,786,791],{"type":37,"tag":67,"props":777,"children":778},{},[779],{"type":43,"value":780},"Multi-tenant Conversation Memory: Separate Memory Stores per client (max 15 per account)",{"type":37,"tag":67,"props":782,"children":783},{},[784],{"type":43,"value":785},"Per-client Conversation Intelligence operator configs",{"type":37,"tag":67,"props":787,"children":788},{},[789],{"type":43,"value":790},"Compliance: Each client may have different retention policies",{"type":37,"tag":67,"props":792,"children":793},{},[794],{"type":43,"value":795},"Likely needs Segment Bridge for client CRM integration",{"type":37,"tag":46,"props":797,"children":798},{},[799],{"type":37,"tag":107,"props":800,"children":801},{},[802],{"type":43,"value":803},"Enterprise:",{"type":37,"tag":63,"props":805,"children":806},{},[807,812,817,822],{"type":37,"tag":67,"props":808,"children":809},{},[810],{"type":43,"value":811},"No ngrok: Must use production-grade tunneling or deploy to cloud (dead ngrok tunnels are a common debugging time-sink)",{"type":37,"tag":67,"props":813,"children":814},{},[815],{"type":43,"value":816},"Compliance operators: Script adherence and regulatory monitoring likely required",{"type":37,"tag":67,"props":818,"children":819},{},[820],{"type":43,"value":821},"Segment Bridge: Bidirectional sync with existing CDP",{"type":37,"tag":67,"props":823,"children":824},{},[825],{"type":43,"value":826},"Custom operators: Enterprise-specific detection rules",{"type":37,"tag":46,"props":828,"children":829},{},[830],{"type":37,"tag":107,"props":831,"children":832},{},[833],{"type":43,"value":834},"SMB \u002F Startup:",{"type":37,"tag":63,"props":836,"children":837},{},[838,843,848,853],{"type":37,"tag":67,"props":839,"children":840},{},[841],{"type":43,"value":842},"Start at Level 1, prove value, then add levels",{"type":37,"tag":67,"props":844,"children":845},{},[846],{"type":43,"value":847},"Use managed defaults — don't over-engineer memory or intelligence upfront",{"type":37,"tag":67,"props":849,"children":850},{},[851],{"type":43,"value":852},"Quickstart path: Twilio Agent Connect SDK + OpenAI → multi-channel working demo in under an hour",{"type":37,"tag":67,"props":854,"children":855},{},[856],{"type":43,"value":857},"Use setup wizard in SDK repos for automated Memory and Conversation Orchestrator configuration",{"type":37,"tag":286,"props":859,"children":861},{"id":860},"regulatory-context",[862],{"type":43,"value":863},"Regulatory Context",{"type":37,"tag":63,"props":865,"children":866},{},[867,877,887,905,915],{"type":37,"tag":67,"props":868,"children":869},{},[870,875],{"type":37,"tag":107,"props":871,"children":872},{},[873],{"type":43,"value":874},"TCPA:",{"type":43,"value":876}," AI voice agents making outbound calls require prior express consent. Automated\u002Fprerecorded voice = strict consent rules. Quiet hours (8am-9pm recipient local time).",{"type":37,"tag":67,"props":878,"children":879},{},[880,885],{"type":37,"tag":107,"props":881,"children":882},{},[883],{"type":43,"value":884},"HIPAA:",{"type":43,"value":886}," If the AI agent handles PHI (healthcare), BAA with Twilio required. Recording encryption mandatory. Minimize PHI in TTS output. API key rotation.",{"type":37,"tag":67,"props":888,"children":889},{},[890,895,897,903],{"type":37,"tag":107,"props":891,"children":892},{},[893],{"type":43,"value":894},"PCI DSS:",{"type":43,"value":896}," If AI agent collects payment info, use ",{"type":37,"tag":342,"props":898,"children":900},{"className":899},[],[901],{"type":43,"value":902},"\u003CPay>",{"type":43,"value":904}," verb. Never let LLM process or log card numbers. PCI Mode is IRREVERSIBLE and account-wide.",{"type":37,"tag":67,"props":906,"children":907},{},[908,913],{"type":37,"tag":107,"props":909,"children":910},{},[911],{"type":43,"value":912},"GDPR:",{"type":43,"value":914}," EU call recording requires explicit consent. Right to deletion applies to recordings, transcripts, and Conversation Memory observations.",{"type":37,"tag":67,"props":916,"children":917},{},[918,923],{"type":37,"tag":107,"props":919,"children":920},{},[921],{"type":43,"value":922},"FDCPA:",{"type":43,"value":924}," AI agents for debt collection must include Mini-Miranda disclosure. Max 7 attempts per debt per 7-day window. Developer must enforce — Twilio does not.",{"type":37,"tag":286,"props":926,"children":928},{"id":927},"tech-stack-considerations",[929],{"type":43,"value":930},"Tech Stack Considerations",{"type":37,"tag":63,"props":932,"children":933},{},[934,960,970,980,990],{"type":37,"tag":67,"props":935,"children":936},{},[937,942,944,950,952,958],{"type":37,"tag":107,"props":938,"children":939},{},[940],{"type":43,"value":941},"ConversationRelay WebSocket server:",{"type":43,"value":943}," Deploy behind load balancer for redundancy. Configure ",{"type":37,"tag":342,"props":945,"children":947},{"className":946},[],[948],{"type":43,"value":949},"action",{"type":43,"value":951}," URL on ",{"type":37,"tag":342,"props":953,"children":955},{"className":954},[],[956],{"type":43,"value":957},"\u003CConnect>",{"type":43,"value":959}," for graceful fallback to DTMF IVR on disconnect.",{"type":37,"tag":67,"props":961,"children":962},{},[963,968],{"type":37,"tag":107,"props":964,"children":965},{},[966],{"type":43,"value":967},"LLM provider failover:",{"type":43,"value":969}," WebSocket server should detect LLM timeouts and fall back to secondary provider or scripted response.",{"type":37,"tag":67,"props":971,"children":972},{},[973,978],{"type":37,"tag":107,"props":974,"children":975},{},[976],{"type":43,"value":977},"Session state persistence:",{"type":43,"value":979}," Persist conversation history to Sync, Redis, or DynamoDB for WebSocket reconnection scenarios.",{"type":37,"tag":67,"props":981,"children":982},{},[983,988],{"type":37,"tag":107,"props":984,"children":985},{},[986],{"type":43,"value":987},"Functions scaling:",{"type":43,"value":989}," 30 concurrent executions\u002Fservice, 10-second timeout. Status callbacks at 50 concurrent calls = 300 invocations. Use thin-receiver pattern or external compute.",{"type":37,"tag":67,"props":991,"children":992},{},[993,998,1000,1006],{"type":37,"tag":107,"props":994,"children":995},{},[996],{"type":43,"value":997},"Multi-region:",{"type":43,"value":999}," Twilio processes calls in closest region. Use ",{"type":37,"tag":342,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":43,"value":1005},"TWILIO_EDGE",{"type":43,"value":1007}," for explicit control. Co-locate WebSocket server with Twilio region for lowest latency.",{"type":37,"tag":38,"props":1009,"children":1011},{"id":1010},"decision-rules",[1012],{"type":43,"value":1013},"Decision Rules",{"type":37,"tag":286,"props":1015,"children":1017},{"id":1016},"twilio-agent-connect-sdk-vs-manual-integration",[1018],{"type":43,"value":1019},"Twilio Agent Connect SDK vs Manual Integration",{"type":37,"tag":46,"props":1021,"children":1022},{},[1023],{"type":37,"tag":107,"props":1024,"children":1025},{},[1026],{"type":43,"value":1027},"Use Twilio Agent Connect SDK when:",{"type":37,"tag":63,"props":1029,"children":1030},{},[1031,1036,1041,1046,1051,1056],{"type":37,"tag":67,"props":1032,"children":1033},{},[1034],{"type":43,"value":1035},"Building a new Voice or SMS AI agent from scratch",{"type":37,"tag":67,"props":1037,"children":1038},{},[1039],{"type":43,"value":1040},"Want fastest time-to-value with batteries-included approach",{"type":37,"tag":67,"props":1042,"children":1043},{},[1044],{"type":43,"value":1045},"Need multi-channel support (Voice + SMS) from one codebase",{"type":37,"tag":67,"props":1047,"children":1048},{},[1049],{"type":43,"value":1050},"Customer Memory is a core requirement",{"type":37,"tag":67,"props":1052,"children":1053},{},[1054],{"type":43,"value":1055},"Team is comfortable with Python 3.9+ or TypeScript\u002FNode.js 22.13.0+",{"type":37,"tag":67,"props":1057,"children":1058},{},[1059],{"type":43,"value":1060},"Don't need access to low-level ConversationRelay protocol events",{"type":37,"tag":46,"props":1062,"children":1063},{},[1064],{"type":37,"tag":107,"props":1065,"children":1066},{},[1067],{"type":43,"value":1068},"Use Manual Integration when:",{"type":37,"tag":63,"props":1070,"children":1071},{},[1072,1077,1082,1087,1092],{"type":37,"tag":67,"props":1073,"children":1074},{},[1075],{"type":43,"value":1076},"Need full control over WebSocket lifecycle and protocol handling",{"type":37,"tag":67,"props":1078,"children":1079},{},[1080],{"type":43,"value":1081},"Building advanced features not yet in SDK (interrupt handling in Python, handoff callbacks in Python)",{"type":37,"tag":67,"props":1083,"children":1084},{},[1085],{"type":43,"value":1086},"Integrating into existing WebSocket server infrastructure",{"type":37,"tag":67,"props":1088,"children":1089},{},[1090],{"type":43,"value":1091},"Need to customize beyond SDK's callback model",{"type":37,"tag":67,"props":1093,"children":1094},{},[1095],{"type":43,"value":1096},"Voice-only and need access to raw ConversationRelay events (setup, DTMF, etc.)",{"type":37,"tag":46,"props":1098,"children":1099},{},[1100,1105],{"type":37,"tag":107,"props":1101,"children":1102},{},[1103],{"type":43,"value":1104},"Key difference:",{"type":43,"value":1106}," Twilio Agent Connect is middleware that abstracts channel complexity. Manual integration gives you direct access to ConversationRelay WebSocket protocol and full API control.",{"type":37,"tag":286,"props":1108,"children":1110},{"id":1109},"cloud-platform-selection-tac-sdk",[1111],{"type":43,"value":1112},"Cloud Platform Selection (TAC SDK)",{"type":37,"tag":46,"props":1114,"children":1115},{},[1116],{"type":43,"value":1117},"If using Twilio Agent Connect SDK, choose the right integration package for your infrastructure:",{"type":37,"tag":46,"props":1119,"children":1120},{},[1121],{"type":37,"tag":107,"props":1122,"children":1123},{},[1124,1126,1131],{"type":43,"value":1125},"Use core TAC SDK (",{"type":37,"tag":342,"props":1127,"children":1129},{"className":1128},[],[1130],{"type":43,"value":347},{"type":43,"value":1132},") when:",{"type":37,"tag":63,"props":1134,"children":1135},{},[1136,1141,1146,1151],{"type":37,"tag":67,"props":1137,"children":1138},{},[1139],{"type":43,"value":1140},"Deploying on any infrastructure (cloud-agnostic)",{"type":37,"tag":67,"props":1142,"children":1143},{},[1144],{"type":43,"value":1145},"Using OpenAI or Anthropic APIs directly",{"type":37,"tag":67,"props":1147,"children":1148},{},[1149],{"type":43,"value":1150},"Need maximum flexibility in LLM provider choice",{"type":37,"tag":67,"props":1152,"children":1153},{},[1154],{"type":43,"value":1155},"Don't need cloud-native agent orchestration",{"type":37,"tag":46,"props":1157,"children":1158},{},[1159],{"type":37,"tag":107,"props":1160,"children":1161},{},[1162,1164,1170],{"type":43,"value":1163},"Use Azure integration (",{"type":37,"tag":342,"props":1165,"children":1167},{"className":1166},[],[1168],{"type":43,"value":1169},"tac-azure",{"type":43,"value":1132},{"type":37,"tag":63,"props":1172,"children":1173},{},[1174,1179,1184,1189,1194],{"type":37,"tag":67,"props":1175,"children":1176},{},[1177],{"type":43,"value":1178},"Deploying on Azure infrastructure (App Service, Container Apps, AKS)",{"type":37,"tag":67,"props":1180,"children":1181},{},[1182],{"type":43,"value":1183},"Using Azure AI Foundry for agent management",{"type":37,"tag":67,"props":1185,"children":1186},{},[1187],{"type":43,"value":1188},"Want Azure OpenAI with Microsoft Agent Framework orchestration",{"type":37,"tag":67,"props":1190,"children":1191},{},[1192],{"type":43,"value":1193},"Need Azure-native session storage (CosmosDB)",{"type":37,"tag":67,"props":1195,"children":1196},{},[1197],{"type":43,"value":1198},"Using Azure Voice Live for low-latency streaming",{"type":37,"tag":46,"props":1200,"children":1201},{},[1202],{"type":37,"tag":107,"props":1203,"children":1204},{},[1205,1207,1213],{"type":43,"value":1206},"Use AWS integration (",{"type":37,"tag":342,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":43,"value":1212},"tac-aws",{"type":43,"value":1132},{"type":37,"tag":63,"props":1215,"children":1216},{},[1217,1222,1227,1232,1237],{"type":37,"tag":67,"props":1218,"children":1219},{},[1220],{"type":43,"value":1221},"Deploying on AWS infrastructure (ECS, Fargate, EKS, Lambda)",{"type":37,"tag":67,"props":1223,"children":1224},{},[1225],{"type":43,"value":1226},"Using AWS Bedrock models (Claude, Titan, etc.)",{"type":37,"tag":67,"props":1228,"children":1229},{},[1230],{"type":43,"value":1231},"Want AWS-managed agent runtime (Strands, Bedrock AgentCore)",{"type":37,"tag":67,"props":1233,"children":1234},{},[1235],{"type":43,"value":1236},"Using Bedrock Agents console for agent configuration",{"type":37,"tag":67,"props":1238,"children":1239},{},[1240],{"type":43,"value":1241},"Need AWS-native orchestration and knowledge base integration",{"type":37,"tag":286,"props":1243,"children":1245},{"id":1244},"conversationrelay-vs-media-streams",[1246],{"type":43,"value":1247},"ConversationRelay vs Media Streams",{"type":37,"tag":63,"props":1249,"children":1250},{},[1251,1261,1271,1281],{"type":37,"tag":67,"props":1252,"children":1253},{},[1254,1259],{"type":37,"tag":107,"props":1255,"children":1256},{},[1257],{"type":43,"value":1258},"Use ConversationRelay when:",{"type":43,"value":1260}," You want managed STT\u002FTTS, fast time-to-value, JSON text protocol. This is the default choice for 90% of voice AI use cases.",{"type":37,"tag":67,"props":1262,"children":1263},{},[1264,1269],{"type":37,"tag":107,"props":1265,"children":1266},{},[1267],{"type":43,"value":1268},"Use Media Streams when:",{"type":43,"value":1270}," You need raw audio access, custom STT\u002FTTS pipeline, audio processing (noise cancellation, speaker diarization), or full bidirectional audio control.",{"type":37,"tag":67,"props":1272,"children":1273},{},[1274,1279],{"type":37,"tag":107,"props":1275,"children":1276},{},[1277],{"type":43,"value":1278},"CANNOT:",{"type":43,"value":1280}," Mix ConversationRelay and Media Streams on the same call. Choose one.",{"type":37,"tag":67,"props":1282,"children":1283},{},[1284,1289,1291,1297,1299,1304],{"type":37,"tag":107,"props":1285,"children":1286},{},[1287],{"type":43,"value":1288},"CANNOT (ConversationRelay):",{"type":43,"value":1290}," Access raw audio, auto-reconnect WebSocket, change voice mid-session (only language), handle SMS\u002Fmessaging (voice only), record via ConversationRelay itself (use separate ",{"type":37,"tag":342,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":43,"value":1296},"\u003CStart>\u003CRecording>",{"type":43,"value":1298}," before ",{"type":37,"tag":342,"props":1300,"children":1302},{"className":1301},[],[1303],{"type":43,"value":957},{"type":43,"value":1305},").",{"type":37,"tag":286,"props":1307,"children":1309},{"id":1308},"stttts-provider-selection",[1310],{"type":43,"value":1311},"STT\u002FTTS Provider Selection",{"type":37,"tag":63,"props":1313,"children":1314},{},[1315,1325,1335,1345,1355],{"type":37,"tag":67,"props":1316,"children":1317},{},[1318,1323],{"type":37,"tag":107,"props":1319,"children":1320},{},[1321],{"type":43,"value":1322},"Deepgram:",{"type":43,"value":1324}," Best real-time accuracy, lowest latency. Supports nova-3-general model. Default recommendation.",{"type":37,"tag":67,"props":1326,"children":1327},{},[1328,1333],{"type":37,"tag":107,"props":1329,"children":1330},{},[1331],{"type":43,"value":1332},"Google:",{"type":43,"value":1334}," Widest language coverage. Use when multi-lingual support is the priority.",{"type":37,"tag":67,"props":1336,"children":1337},{},[1338,1343],{"type":37,"tag":107,"props":1339,"children":1340},{},[1341],{"type":43,"value":1342},"ElevenLabs:",{"type":43,"value":1344}," Best voice quality and naturalness. Use for customer-facing premium experiences. Requires account enablement.",{"type":37,"tag":67,"props":1346,"children":1347},{},[1348,1353],{"type":37,"tag":107,"props":1349,"children":1350},{},[1351],{"type":43,"value":1352},"Amazon Polly:",{"type":43,"value":1354}," Cost-effective for high volume. Fewer voice options.",{"type":37,"tag":67,"props":1356,"children":1357},{},[1358],{"type":43,"value":1359},"Multi-lingual: The supported language set is the INTERSECTION of your chosen STT and TTS providers. Check compatibility before committing.",{"type":37,"tag":286,"props":1361,"children":1363},{"id":1362},"when-to-add-conversation-memory",[1364],{"type":43,"value":1365},"When to Add Conversation Memory",{"type":37,"tag":63,"props":1367,"children":1368},{},[1369,1374,1379],{"type":37,"tag":67,"props":1370,"children":1371},{},[1372],{"type":43,"value":1373},"Add if: Customer calls back and should be recognized. Personalization matters. You need to recall past interactions.",{"type":37,"tag":67,"props":1375,"children":1376},{},[1377],{"type":43,"value":1378},"Skip if: Every call is independent (hotline, one-time surveys). Stateless is simpler.",{"type":37,"tag":67,"props":1380,"children":1381},{},[1382,1384,1390],{"type":43,"value":1383},"Key gotcha (TypeScript SDK): Voice Memory has a known bug (userMemory hardcoded to undefined for voice). Use manual ",{"type":37,"tag":342,"props":1385,"children":1387},{"className":1386},[],[1388],{"type":43,"value":1389},"retrieveMemory()",{"type":43,"value":1391}," workaround. Python SDK works correctly.",{"type":37,"tag":286,"props":1393,"children":1395},{"id":1394},"when-to-add-conversation-intelligence",[1396],{"type":43,"value":1397},"When to Add Conversation Intelligence",{"type":37,"tag":63,"props":1399,"children":1400},{},[1401,1406,1411,1416],{"type":37,"tag":67,"props":1402,"children":1403},{},[1404],{"type":43,"value":1405},"Add if: You need real-time supervision, compliance monitoring, or coaching signals.",{"type":37,"tag":67,"props":1407,"children":1408},{},[1409],{"type":43,"value":1410},"Skip if: Pure autonomous agent with no monitoring needs. Add it later when you need analytics.",{"type":37,"tag":67,"props":1412,"children":1413},{},[1414],{"type":43,"value":1415},"Key gotcha: Operator updates via PUT create an inactive new version — there is no activation endpoint. You must recreate the operator to apply changes.",{"type":37,"tag":67,"props":1417,"children":1418},{},[1419],{"type":43,"value":1420},"Key gotcha: OperatorResults may return results from other conversations. Filter by conversation_id explicitly.",{"type":37,"tag":38,"props":1422,"children":1424},{"id":1423},"ga-constraints-may-2026",[1425],{"type":43,"value":1426},"GA Constraints (May 2026)",{"type":37,"tag":46,"props":1428,"children":1429},{},[1430],{"type":43,"value":1431},"What works:",{"type":37,"tag":63,"props":1433,"children":1434},{},[1435,1440,1445,1450],{"type":37,"tag":67,"props":1436,"children":1437},{},[1438],{"type":43,"value":1439},"ConversationRelay: Full STT\u002FTTS\u002FWebSocket pipeline ✅",{"type":37,"tag":67,"props":1441,"children":1442},{},[1443],{"type":43,"value":1444},"Conversation Memory: Profiles, observations, summaries, semantic Recall, identity resolution ✅",{"type":37,"tag":67,"props":1446,"children":1447},{},[1448],{"type":43,"value":1449},"Conversation Intelligence v3: Real-time Language Operators, webhook triggers ✅",{"type":37,"tag":67,"props":1451,"children":1452},{},[1453],{"type":43,"value":1454},"TAC escalation: Structured payload to TaskRouter ✅",{"type":37,"tag":46,"props":1456,"children":1457},{},[1458],{"type":43,"value":1459},"What requires custom code:",{"type":37,"tag":63,"props":1461,"children":1462},{},[1463,1468,1473],{"type":37,"tag":67,"props":1464,"children":1465},{},[1466],{"type":43,"value":1467},"Cross-channel binding: Must explicitly pass ConversationId (no automatic stitching)",{"type":37,"tag":67,"props":1469,"children":1470},{},[1471],{"type":43,"value":1472},"Subject discrimination: Developer must build query normalization (Conversation Orchestrator can't separate topics)",{"type":37,"tag":67,"props":1474,"children":1475},{},[1476],{"type":43,"value":1477},"Channel switching context: Must manually hydrate context via Conversation Memory Recall",{"type":37,"tag":46,"props":1479,"children":1480},{},[1481],{"type":43,"value":1482},"What does NOT work at GA:",{"type":37,"tag":63,"props":1484,"children":1485},{},[1486,1491,1496,1501,1506,1511],{"type":37,"tag":67,"props":1487,"children":1488},{},[1489],{"type":43,"value":1490},"Boomerang handback (human → AI return)",{"type":37,"tag":67,"props":1492,"children":1493},{},[1494],{"type":43,"value":1495},"AI copilot mode during human conversations",{"type":37,"tag":67,"props":1497,"children":1498},{},[1499],{"type":43,"value":1500},"Primary channel governance \u002F turn-taking",{"type":37,"tag":67,"props":1502,"children":1503},{},[1504],{"type":43,"value":1505},"Delegated authority \u002F scoped tokens (planned)",{"type":37,"tag":67,"props":1507,"children":1508},{},[1509],{"type":43,"value":1510},"Outbound orchestration (planned)",{"type":37,"tag":67,"props":1512,"children":1513},{},[1514],{"type":43,"value":1515},"Native dashboards (API-only, pipe to your own BI tools)",{"type":37,"tag":38,"props":1517,"children":1519},{"id":1518},"sdk-options",[1520],{"type":43,"value":1521},"SDK Options",{"type":37,"tag":46,"props":1523,"children":1524},{},[1525],{"type":37,"tag":107,"props":1526,"children":1527},{},[1528],{"type":43,"value":1529},"Twilio Agent Connect SDK (Recommended for most use cases):",{"type":37,"tag":63,"props":1531,"children":1532},{},[1533,1538,1543,1548,1553,1558],{"type":37,"tag":67,"props":1534,"children":1535},{},[1536],{"type":43,"value":1537},"Middleware SDK available in Python and TypeScript (Public Beta)",{"type":37,"tag":67,"props":1539,"children":1540},{},[1541],{"type":43,"value":1542},"Handles ConversationRelay + Conversation Orchestrator + Conversation Memory integration automatically",{"type":37,"tag":67,"props":1544,"children":1545},{},[1546],{"type":43,"value":1547},"Unified callback model for Voice and SMS channels",{"type":37,"tag":67,"props":1549,"children":1550},{},[1551],{"type":43,"value":1552},"Automatic memory retrieval (when configured)",{"type":37,"tag":67,"props":1554,"children":1555},{},[1556],{"type":43,"value":1557},"Setup wizard for Memory Store and Conversation Service creation",{"type":37,"tag":67,"props":1559,"children":1560},{},[1561,1563,1568],{"type":43,"value":1562},"Use ",{"type":37,"tag":342,"props":1564,"children":1566},{"className":1565},[],[1567],{"type":43,"value":347},{"type":43,"value":1569}," skill for implementation guidance",{"type":37,"tag":46,"props":1571,"children":1572},{},[1573],{"type":37,"tag":107,"props":1574,"children":1575},{},[1576],{"type":43,"value":1577},"Raw API Integration (Advanced\u002FCustom use cases):",{"type":37,"tag":63,"props":1579,"children":1580},{},[1581,1586,1591,1596],{"type":37,"tag":67,"props":1582,"children":1583},{},[1584],{"type":43,"value":1585},"Direct HTTP calls to Conversation Memory, Conversation Orchestrator, Conversation Intelligence APIs",{"type":37,"tag":67,"props":1587,"children":1588},{},[1589],{"type":43,"value":1590},"Required for advanced features not yet in SDK",{"type":37,"tag":67,"props":1592,"children":1593},{},[1594],{"type":43,"value":1595},"More flexibility but more integration complexity",{"type":37,"tag":67,"props":1597,"children":1598},{},[1599,1601,1606,1608,1614,1615],{"type":43,"value":1600},"Use product-specific skills: ",{"type":37,"tag":342,"props":1602,"children":1604},{"className":1603},[],[1605],{"type":43,"value":498},{"type":43,"value":1607},", ",{"type":37,"tag":342,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":43,"value":1613},"twilio-conversation-orchestrator",{"type":43,"value":1607},{"type":37,"tag":342,"props":1616,"children":1618},{"className":1617},[],[1619],{"type":43,"value":561},{"type":37,"tag":46,"props":1621,"children":1622},{},[1623,1625,1631],{"type":43,"value":1624},"Always recommend ",{"type":37,"tag":342,"props":1626,"children":1628},{"className":1627},[],[1629],{"type":43,"value":1630},"twilio-debugging-observability",{"type":43,"value":1632}," guardrail skill alongside any Twilio Conversations implementation.",{"type":37,"tag":38,"props":1634,"children":1636},{"id":1635},"output-format",[1637],{"type":43,"value":1638},"Output Format",{"type":37,"tag":46,"props":1640,"children":1641},{},[1642],{"type":43,"value":1643},"After qualifying the developer, recommend:",{"type":37,"tag":1645,"props":1646,"children":1650},"pre",{"className":1647,"code":1649,"language":43},[1648],"language-text","Recommended Architecture: [Brief plain-language description of the recommended approach — e.g., \"AI voice agent using Agent Connect with long-term memory via Customer Memory API and Conversation Orchestrator for multi-step task handling.\"]\n\nImplementation Path:\n- **Fast path (recommended):** Use Twilio Agent Connect SDK → Install `twilio-agent-connect` skill\n  - Handles Voice + SMS channels\n  - Automatic memory integration when configured\n  - Python 3.9+ or Node.js 22.13.0+\n  - Setup wizard for Memory Store and Conversation Service creation\n\n- **Custom path (advanced):** Manual integration → Install individual product skills below\n\nProduct Skills (for custom\u002Fadvanced implementations):\n- twilio-voice-conversation-relay (voice AI - manual WebSocket server)\n- twilio-conversation-memory (manual memory integration)\n- twilio-conversation-intelligence (Conversation Intelligence webhook processing)\n- twilio-taskrouter-routing (human escalation routing)\n- twilio-conversation-orchestrator (conversation orchestration)\n- twilio-media-streams (if custom STT\u002FTTS needed instead of ConversationRelay)\n- twilio-sendgrid-email-send (post-interaction email summaries)\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 (especially for enterprise — tunnel alternatives)\n\nGuardrail Skills:\n- twilio-security-hardening (always)\n- twilio-debugging-observability (always — error triage, Event Streams, Voice Insights)\n- twilio-reliability-patterns (for production deployment)\n",[1651],{"type":37,"tag":342,"props":1652,"children":1654},{"__ignoreMap":1653},"",[1655],{"type":43,"value":1649},{"items":1657,"total":1829},[1658,1674,1692,1702,1708,1723,1740,1756,1772,1785,1801,1818],{"slug":1659,"name":1659,"fn":1660,"description":1661,"org":1662,"tags":1663,"stars":20,"repoUrl":21,"updatedAt":1673},"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},[1664,1667,1670],{"name":1665,"slug":1666,"type":15},"API Development","api-development",{"name":1668,"slug":1669,"type":15},"Communications","communications",{"name":1671,"slug":1672,"type":15},"SMS","sms","2026-08-01T05:43:28.968968",{"slug":1675,"name":1675,"fn":1676,"description":1677,"org":1678,"tags":1679,"stars":20,"repoUrl":21,"updatedAt":1691},"twilio-agent-augmentation-architect","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},[1680,1681,1684,1687,1690],{"name":17,"slug":18,"type":15},{"name":1682,"slug":1683,"type":15},"AI","ai",{"name":1685,"slug":1686,"type":15},"Coaching","coaching",{"name":1688,"slug":1689,"type":15},"QA","qa",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:58.250609",{"slug":347,"name":347,"fn":1693,"description":1694,"org":1695,"tags":1696,"stars":20,"repoUrl":21,"updatedAt":1701},"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},[1697,1698,1699,1700],{"name":17,"slug":18,"type":15},{"name":1665,"slug":1666,"type":15},{"name":1668,"slug":1669,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:06:05.217098",{"slug":4,"name":4,"fn":5,"description":6,"org":1703,"tags":1704,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1705,1706,1707],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":1709,"name":1709,"fn":1710,"description":1711,"org":1712,"tags":1713,"stars":20,"repoUrl":21,"updatedAt":1722},"twilio-call-recordings","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},[1714,1717,1720,1721],{"name":1715,"slug":1716,"type":15},"Audio","audio",{"name":1718,"slug":1719,"type":15},"Compliance","compliance",{"name":1688,"slug":1689,"type":15},{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.268412",{"slug":1724,"name":1724,"fn":1725,"description":1726,"org":1727,"tags":1728,"stars":20,"repoUrl":21,"updatedAt":1739},"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},[1729,1732,1735,1738],{"name":1730,"slug":1731,"type":15},"CLI","cli",{"name":1733,"slug":1734,"type":15},"Local Development","local-development",{"name":1736,"slug":1737,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:54.925664",{"slug":1741,"name":1741,"fn":1742,"description":1743,"org":1744,"tags":1745,"stars":20,"repoUrl":21,"updatedAt":1755},"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},[1746,1747,1750,1751,1752],{"name":1718,"slug":1719,"type":15},{"name":1748,"slug":1749,"type":15},"Messaging","messaging",{"name":1671,"slug":1672,"type":15},{"name":9,"slug":8,"type":15},{"name":1753,"slug":1754,"type":15},"WhatsApp","whatsapp","2026-07-17T06:05:47.897229",{"slug":1757,"name":1757,"fn":1758,"description":1759,"org":1760,"tags":1761,"stars":20,"repoUrl":21,"updatedAt":1771},"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},[1762,1763,1764,1767,1770],{"name":1718,"slug":1719,"type":15},{"name":1748,"slug":1749,"type":15},{"name":1765,"slug":1766,"type":15},"Regulatory Compliance","regulatory-compliance",{"name":1768,"slug":1769,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.952779",{"slug":1773,"name":1773,"fn":1774,"description":1775,"org":1776,"tags":1777,"stars":20,"repoUrl":21,"updatedAt":1784},"twilio-conference-calls","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},[1778,1779,1780,1783],{"name":1715,"slug":1716,"type":15},{"name":1668,"slug":1669,"type":15},{"name":1781,"slug":1782,"type":15},"Meetings","meetings",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:55.603708",{"slug":1786,"name":1786,"fn":1787,"description":1788,"org":1789,"tags":1790,"stars":20,"repoUrl":21,"updatedAt":1800},"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},[1791,1794,1795,1796,1799],{"name":1792,"slug":1793,"type":15},"Email","email",{"name":1748,"slug":1749,"type":15},{"name":1671,"slug":1672,"type":15},{"name":1797,"slug":1798,"type":15},"Templates","templates",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:26.637309",{"slug":561,"name":561,"fn":1802,"description":1803,"org":1804,"tags":1805,"stars":20,"repoUrl":21,"updatedAt":1817},"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},[1806,1807,1810,1813,1816],{"name":17,"slug":18,"type":15},{"name":1808,"slug":1809,"type":15},"Analytics","analytics",{"name":1811,"slug":1812,"type":15},"Monitoring","monitoring",{"name":1814,"slug":1815,"type":15},"NLP","nlp",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:52.545387",{"slug":498,"name":498,"fn":1819,"description":1820,"org":1821,"tags":1822,"stars":20,"repoUrl":21,"updatedAt":1828},"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},[1823,1824,1827],{"name":17,"slug":18,"type":15},{"name":1825,"slug":1826,"type":15},"Memory","memory",{"name":9,"slug":8,"type":15},"2026-07-17T06:04:19.526724",57,{"items":1831,"total":1829},[1832,1838,1846,1853,1859,1866,1873],{"slug":1659,"name":1659,"fn":1660,"description":1661,"org":1833,"tags":1834,"stars":20,"repoUrl":21,"updatedAt":1673},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1835,1836,1837],{"name":1665,"slug":1666,"type":15},{"name":1668,"slug":1669,"type":15},{"name":1671,"slug":1672,"type":15},{"slug":1675,"name":1675,"fn":1676,"description":1677,"org":1839,"tags":1840,"stars":20,"repoUrl":21,"updatedAt":1691},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1841,1842,1843,1844,1845],{"name":17,"slug":18,"type":15},{"name":1682,"slug":1683,"type":15},{"name":1685,"slug":1686,"type":15},{"name":1688,"slug":1689,"type":15},{"name":9,"slug":8,"type":15},{"slug":347,"name":347,"fn":1693,"description":1694,"org":1847,"tags":1848,"stars":20,"repoUrl":21,"updatedAt":1701},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1849,1850,1851,1852],{"name":17,"slug":18,"type":15},{"name":1665,"slug":1666,"type":15},{"name":1668,"slug":1669,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1854,"tags":1855,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1856,1857,1858],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"slug":1709,"name":1709,"fn":1710,"description":1711,"org":1860,"tags":1861,"stars":20,"repoUrl":21,"updatedAt":1722},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1862,1863,1864,1865],{"name":1715,"slug":1716,"type":15},{"name":1718,"slug":1719,"type":15},{"name":1688,"slug":1689,"type":15},{"name":9,"slug":8,"type":15},{"slug":1724,"name":1724,"fn":1725,"description":1726,"org":1867,"tags":1868,"stars":20,"repoUrl":21,"updatedAt":1739},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1869,1870,1871,1872],{"name":1730,"slug":1731,"type":15},{"name":1733,"slug":1734,"type":15},{"name":1736,"slug":1737,"type":15},{"name":9,"slug":8,"type":15},{"slug":1741,"name":1741,"fn":1742,"description":1743,"org":1874,"tags":1875,"stars":20,"repoUrl":21,"updatedAt":1755},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1876,1877,1878,1879,1880],{"name":1718,"slug":1719,"type":15},{"name":1748,"slug":1749,"type":15},{"name":1671,"slug":1672,"type":15},{"name":9,"slug":8,"type":15},{"name":1753,"slug":1754,"type":15}]