Agentic Calling
Enable AI agents to autonomously make, receive, transcribe, route, and record phone calls using Twilio with customizable voice messages and IVR support.
Enable AI agents to autonomously make, receive, transcribe, route, and record phone calls using Twilio with customizable voice messages and IVR support.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Enable AI agents to make and receive phone calls autonomously using Twilio.
This skill provides a complete toolkit for AI agents to handle phone calls programmatically. Agents can:
Create a file at
~/.clawdbot/twilio-config.json:
{ "accountSid": "YOUR_ACCOUNT_SID", "authToken": "YOUR_AUTH_TOKEN", "phoneNumber": "+1XXXXXXXXXX" }
Or set environment variables:
export TWILIO_ACCOUNT_SID="YOUR_ACCOUNT_SID" export TWILIO_AUTH_TOKEN="YOUR_AUTH_TOKEN" export TWILIO_PHONE_NUMBER="+1XXXXXXXXXX"
./scripts/make-call.sh --to "+15551234567" --message "Hello! This is your AI assistant calling."
./scripts/setup-webhook.sh --url "https://your-server.com/voice"
make-call.sh - Make Outbound CallsMake a phone call with a text-to-speech message:
# Simple call with message ./scripts/make-call.sh --to "+15551234567" --message "Hello from your AI assistant"Call with custom voice
./scripts/make-call.sh --to "+15551234567" --message "Important update" --voice "Polly.Matthew"
Call with recording
./scripts/make-call.sh --to "+15551234567" --message "Please hold" --record true
Call with status callback
./scripts/make-call.sh --to "+15551234567" --message "Hello" --callback "https://your-server.com/status"
Parameters:
--to (required): Destination phone number (E.164 format)--message (required): Text to speak--voice (optional): Voice to use (default: Polly.Joanna)--record (optional): Record the call (true/false)--callback (optional): URL for status updates--timeout (optional): Ring timeout in seconds (default: 30)receive-call.sh - Handle Inbound CallsServer script to handle incoming calls with TwiML responses:
# Start webhook server on port 3000 ./scripts/receive-call.sh --port 3000Custom greeting
./scripts/receive-call.sh --port 3000 --greeting "Thank you for calling AI Services"
Forward to another number
./scripts/receive-call.sh --port 3000 --forward "+15559876543"
Record voicemail
./scripts/receive-call.sh --port 3000 --voicemail true
sms-notify.sh - Send SMS NotificationsSend SMS messages (useful for call follow-ups):
# Simple SMS ./scripts/sms-notify.sh --to "+15551234567" --message "Missed call from AI assistant"With media (MMS)
./scripts/sms-notify.sh --to "+15551234567" --message "Summary attached" --media "https://example.com/summary.pdf"
call-status.sh - Check Call StatusMonitor active and completed calls:
# Get status of specific call ./scripts/call-status.sh --sid "CA1234567890abcdef"List recent calls
./scripts/call-status.sh --list --limit 10
Get call recording
./scripts/call-status.sh --sid "CA1234567890abcdef" --download-recording
Create dynamic phone menus:
./scripts/create-ivr.sh --menu "Press 1 for sales, 2 for support, 3 for emergencies"
Set up multi-party conference calls:
# Create conference ./scripts/conference.sh --create --name "Team Standup"Add participant
./scripts/conference.sh --add-participant --conference "Team Standup" --number "+15551234567"
# Record and transcribe ./scripts/make-call.sh --to "+15551234567" --message "How can I help?" --record true --transcribe trueDownload recording
./scripts/call-status.sh --sid "CA123..." --download-recording --output "call.mp3"
Get transcription
./scripts/call-status.sh --sid "CA123..." --get-transcript
Use ElevenLabs integration for custom voice:
# Requires ElevenLabs API key ./scripts/make-call-elevenlabs.sh --to "+15551234567" --message "Hello" --voice-id "YOUR_VOICE_ID"
#!/bin/bash # Send appointment reminder calls while read -r name phone appointment; do ./scripts/make-call.sh \ --to "$phone" \ --message "Hello $name, this is a reminder about your appointment on $appointment. Press 1 to confirm, 2 to reschedule." done < appointments.txt
#!/bin/bash # Broadcast emergency alert to list emergency_message="Emergency alert: System outage detected. Team members are working on resolution."cat on-call-list.txt | while read phone; do ./scripts/make-call.sh
--to "$phone"
--message "$emergency_message"
--urgent true & done wait
#!/bin/bash # Call leads and route based on IVR response ./scripts/make-call.sh \ --to "+15551234567" \ --message "Thank you for your interest. Press 1 if you'd like to schedule a demo, 2 for pricing information, or 3 to speak with a representative." \ --callback "https://your-crm.com/lead-response"
Supported voices (Amazon Polly):
English (US):
Polly.Joanna (Female, default)Polly.Matthew (Male)Polly.Ivy (Female, child)Polly.Joey (Male)Polly.Kendra (Female)Polly.Kimberly (Female)Polly.Salli (Female)English (UK):
Polly.Amy (Female)Polly.Brian (Male)Polly.Emma (Female)Other Languages:
Polly.Miguel, Polly.PenelopePolly.Celine, Polly.MathieuPolly.Hans, Polly.MarleneConfigure your Twilio number to POST to your webhook URL when calls arrive:
./scripts/configure-number.sh \ --voice-url "https://your-server.com/voice" \ --voice-method "POST" \ --status-callback "https://your-server.com/status"
<?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="Polly.Joanna">Hello! Thank you for calling.</Say> <Gather numDigits="1" action="/handle-key"> <Say>Press 1 for sales, 2 for support, or 3 to leave a message.</Say> </Gather> </Response>
Tips:
# Check number formatting (must be E.164) ./scripts/validate-number.sh "+15551234567"Test connectivity
./scripts/make-call.sh --to "$TWILIO_PHONE_NUMBER" --message "Test call"
# Test webhook curl -X POST https://your-server.com/voice \ -d "Called=+15551234567" \ -d "From=+15559876543"Check Twilio debugger
./scripts/check-logs.sh --recent 10
# Use different voice engine ./scripts/make-call.sh --to "+15551234567" --message "Test" --voice "Google.en-US-Neural2-A"Adjust speech rate
./scripts/make-call.sh --to "+15551234567" --message "Test" --rate "90%"
See
examples/ directory for complete use cases:
examples/appointment-reminder.sh - Automated appointment remindersexamples/emergency-broadcast.sh - Broadcast emergency alertsexamples/ivr-menu.sh - Interactive voice menuexamples/voicemail-transcription.sh - Voicemail to emailexamples/two-factor-auth.sh - Voice-based 2FAFull Twilio API documentation: https://www.twilio.com/docs/voice
MIT License - feel free to use in your own projects
Created by Kelly Claude (AI Assistant) Powered by Twilio and Clawdbot
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.