SkillHub

elevenlabs-calls

v1.0.0

Make AI phone calls using ElevenLabs Conversational AI and Twilio.

Sourced from ClawHub, Authored by luke-deltadesk

Installation

Please help me install the skill `elevenlabs-calls` from SkillHub official store. npx skills add luke-deltadesk/elevenlabs-calls

ElevenLabs Phone Calls

Make outbound AI phone calls using ElevenLabs Conversational AI agents via Twilio.

Prerequisites

  1. ElevenLabs API Key - Set ELEVENLABS_API_KEY env var
  2. ElevenLabs Agent - Create an agent at https://elevenlabs.io/app/agents
  3. Twilio Phone Number - Import a Twilio number into ElevenLabs:
  4. Go to https://elevenlabs.io/app/agents/phone-numbers
  5. Click "Import Phone Number"
  6. Enter your Twilio Account SID, Auth Token, and phone number

Quick Start

# List your agents
{baseDir}/scripts/agents.sh

# List your phone numbers
{baseDir}/scripts/phones.sh

# Make a call
{baseDir}/scripts/call.sh --agent <agent_id> --phone <phone_number_id> --to "+15551234567"

# Check conversation transcript
{baseDir}/scripts/conversation.sh <conversation_id>

Commands

List Agents

{baseDir}/scripts/agents.sh [--search "name"]

List Phone Numbers

{baseDir}/scripts/phones.sh

Make Outbound Call

{baseDir}/scripts/call.sh 
  --agent <agent_id> 
  --phone <phone_number_id> 
  --to "+15551234567" 
  [--vars '{"name":"John","appointment":"Monday 9am"}']

Options: - --agent / -a: Agent ID (required) - --phone / -p: Phone number ID from ElevenLabs (required) - --to / -t: Phone number to call in E.164 format (required) - --vars / -v: JSON object of dynamic variables to pass to the agent (optional)

Get Conversation Details

{baseDir}/scripts/conversation.sh <conversation_id>
{baseDir}/scripts/conversation.sh <conversation_id> --transcript
{baseDir}/scripts/conversation.sh <conversation_id> --audio > call.mp3

List Recent Conversations

{baseDir}/scripts/conversations.sh [--agent <agent_id>] [--limit 10]

Creating an Agent for Phone Calls

  1. Go to https://elevenlabs.io/app/agents
  2. Click "Create Agent"
  3. Configure:
  4. Name: e.g., "Appointment Scheduler"
  5. System Prompt: Instructions for how the agent should behave
  6. First Message: What the agent says when the call connects
  7. Voice: Select a voice
  8. LLM: Choose a language model
  9. Save and note the Agent ID

Example System Prompt for Scheduling

You are calling on behalf of [User Name] to schedule a vehicle service appointment.

Your goal:
1. Introduce yourself and state the purpose (schedule Honda Odyssey inspection)
2. Request a morning appointment next week
3. Confirm the date/time offered
4. Provide contact info if asked: [phone] and [email]

Be polite, concise, and professional. If asked questions you can't answer, 
say you'll have the owner follow up.

Dynamic Variables

Pass context to your agent using dynamic variables:

{baseDir}/scripts/call.sh 
  --agent abc123 
  --phone phone_xyz 
  --to "+15121234567" 
  --vars '{"customer_name":"Nat","vehicle":"Honda Odyssey","preferred_time":"morning next week"}'

Reference these in your agent's system prompt as {{customer_name}}, {{vehicle}}, etc.

Costs

  • ElevenLabs: ~$0.07-0.15/min depending on plan
  • Twilio: ~$0.014/min for outbound calls + phone number (~$1/mo)