twilio-voice-twiml

Generate TwiML voice call logic with Python and Node.js Twilio SDKs.

5.3k|765|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/openai/plugins --skill twilio-voice-twiml
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: twilio-voice-twiml
Source: https://github.com/openai/plugins/tree/main/plugins/twilio-developer-kit/skills/twilio-voice-twiml
Command: npx skills add https://github.com/openai/plugins --skill twilio-voice-twiml

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires twilio, flask, express.

What problem does it solve?

Building interactive voice call flows requires correctly authoring TwiML (Twilio Markup Language) responses to Twilio webhooks, and mistakes in verbs, content types, or webhook timing cause calls to fail. This Skill provides working patterns for defining inbound and outbound call behavior without trial-and-error.

Core Features & Use Cases

  • Core TwiML Verbs: Implement Say, Play, Gather, Dial, Record, Conference, and Pay verbs with correct attributes in both Python (Flask) and Node.js (Express).
  • Complete IVR Example: Build a full inbound call menu that collects keypad input via Gather and routes callers to the right number.
  • Production Guidance: Covers webhook hosting requirements, stateless session management with CallSid, fallback URLs, and monitoring via Voice Insights.
  • Use Case: A support line needs a voicemail flow — use the Dial-with-action pattern so unanswered calls fall through to a Record handler that captures and transcribes the caller's message.

Quick Start

Ask the assistant to create a TwiML webhook handler in Python or Node.js that greets inbound callers and presents a keypad menu.

Frequently Asked Questions about twilio-voice-twiml

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build an IVR phone menu with Twilio?

Use the Gather verb with num_digits and an action URL, nesting a Say prompt inside it. Twilio POSTs the pressed digits to your action endpoint as the Digits parameter, where you branch with Dial or Say based on the input.

How to generate TwiML in Python or Node.js?

Install the twilio SDK (pip install twilio or npm install twilio) and use VoiceResponse to build verbs programmatically. Return str(response) in Python or response.toString() in Node.js with Content-Type text/xml from your webhook route.

Can Twilio Record capture both sides of a call?

No, the Record verb captures only the caller, voicemail-style. For two-party call recording, use record=True on calls.create() or the Recordings API instead.

Why does my Twilio webhook fail in production?

Common causes are missing Content-Type text/xml headers, responses exceeding the 15-second timeout, or non-HTTPS URLs. Configure a fallback TwiML URL in the Console so calls degrade gracefully when your endpoint is unreachable.

Can I create Twilio Pay Connectors via the API?

No, Pay Connectors are Console-only with no REST API for creation or management. Set them up under Console > Voice > Pay Connectors, and note that PCI Mode is irreversible once enabled on an account.