agentic-callingEnable AI agents to autonomously make, receive, transcribe, route, and record phone calls using Twilio with customizable voice messages and IVR support.
Install via ClawdBot CLI:
clawdbot install kellyclaudeai/agentic-callingEnable 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 3000
# Custom 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 true
# Download 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
Generated Mar 1, 2026
Healthcare clinics or service businesses use this skill to automatically call patients or clients with appointment reminders. It reduces no-shows by providing timely notifications and can collect confirmations via IVR, integrating with scheduling systems to update records.
Organizations such as schools, companies, or municipalities deploy this skill to broadcast urgent alerts via phone calls to staff, residents, or on-call teams. It ensures rapid communication during outages, safety incidents, or critical updates, with parallel calling for efficiency.
Sales and marketing teams use this skill to automate outbound calls to leads from CRM lists, delivering personalized messages and using IVR to qualify interest. Responses are routed to appropriate teams or systems, streamlining lead management and follow-up.
Businesses set up inbound call handling with this skill to provide 24/7 support, using custom greetings, IVR menus for issue routing, and voicemail for after-hours. It integrates with ticketing systems to log calls and transcribe conversations for analysis.
Teams utilize this skill to automate conference call setup, adding participants via scripts and managing multi-party discussions. It's useful for recurring meetings like stand-ups or client calls, with recording and transcription for documentation.
Offer a cloud-based service where businesses pay a monthly fee to access the skill's features for appointment reminders, alerts, or lead calls. Revenue comes from tiered plans based on call volume, with add-ons for advanced voice options or integrations.
Provide custom implementation and support for companies needing tailored phone automation solutions, such as integrating with existing CRMs or building complex IVR systems. Revenue is generated through project-based fees and ongoing maintenance contracts.
Operate a platform where users pay per call or SMS sent, targeting small businesses or individuals with sporadic needs like event notifications or surveys. Revenue streams include transaction fees and optional premium features like voice cloning.
💬 Integration Tip
Ensure Twilio credentials are securely stored and webhook endpoints are scalable to handle inbound call traffic reliably.
Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Clau...
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Search and analyze your own session logs (older/parent conversations) using jq.
Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access.
Ultimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection