Skip to content
dialpad logo

Dialpad Skill

dialpad

Send SMS and make voice calls via Dialpad API. Supports single/batch SMS, voice calls with TTS, and caller ID selection.

SKILL.md

Full skill instructions

Dialpad Skill

Send SMS and make voice calls via the Dialpad API.

Available Phone Numbers

NumberPurposeFormat
(415) 520-1316Sales TeamDefault for sales context
(415) 360-2954Work/​PersonalDefault for work context
(415) 991-7155Support SMS OnlySMS only (no voice)

Use --from <number> to specify which number appears as caller ID.

Setup

Required environment variable:

DIALPAD_API_KEY=your_api_key_here

Optional (for ElevenLabs TTS in calls):

ELEVENLABS_API_KEY=your_elevenlabs_api_key

Get your Dialpad API key from Dialpad API Settings.

Usage

Send SMS

# Basic SMS
python3 send_sms.py --to "+14155551234" --message "Hello from Clawdbot!"

# From specific number (e.g., work phone)
python3 send_sms.py --to "+14155551234" --message "Hello!" --from "+14153602954"

# Batch SMS (up to 10 recipients)
python3 send_sms.py --to "+14155551234" "+14155555678" --message "Group update"

Make Voice Calls

# Basic call (ring recipient - they'll answer to speak with you)
python3 make_call.py --to "+14155551234"

# Call with Text-to-Speech greeting (Dialpad's robotic TTS)
python3 make_call.py --to "+14155551234" --text "Hello! This is a call from ShapeScale."

# Call from specific number with TTS
python3 make_call.py --to "+14155551234" --from "+14153602954" --text "Meeting reminder"

# With custom voice (requires ELEVENLABS_API_KEY)
python3 make_call.py --to "+14155551234" --voice "Adam" --text "Premium voice test"

From Agent Instructions

SMS:

python3 send_sms.py --to "+14155551234" --message "Your message here"

Voice Call:

python3 make_call.py --to "+14155551234" --text "Optional TTS message"

Voice Options

Low-Cost Voices (Recommended for Budget)

VoiceStyleNotes
Eric ⭐Male, smooth, trustworthyLow-cost, available!
DanielMale, British, steadyBudget
SarahFemale, matureBudget
RiverMale, neutralBudget
AliceFemale, clearBudget
BrianMale, deepBudget
BillMale, wiseBudget

Premium Voices (Higher Quality)

VoiceStyleNotes
AdamMale, deep, clearBest for professional
AntoniMale, warmFriendly tone
BellaFemale, softWarm, engaging

To use a specific voice, add --voice "VoiceName".

API Capabilities

SMS

  • Endpoint: POST https://dialpad.com/​api/​v2/​sms
  • Max recipients: 10 per request
  • Max message length: 1600 characters
  • Rate limits: 100-800 requests/​minute (tier-dependent)

Voice Calls

  • Endpoint: POST https://dialpad.com/​api/​v2/​call
  • Requires: phone_number + user_id
  • Features: Outbound calling, Text-to-Speech
  • Caller ID: Must be assigned to your Dialpad account

Known Users (Auto-Detected)

NamePhoneUser ID
Martin(415) 360-29545765607478525952
Lilla(415) 870-19455625110025338880
Scott(415) 223-03235964143916400640

Response

SMS Response

{
  "id": "4612924117884928",
  "status": "pending",
  "message_delivery_result": "pending",
  "to_numbers": ["+14158235304"],
  "from_number": "+14155201316",
  "direction": "outbound"
}

Call Response

{
  "call_id": "6342343299702784",
  "status": "ringing"
}

Error Handling

ErrorMeaningAction
invalid_destinationInvalid phone numberVerify E.164 format
invalid_sourceCaller ID not availableCheck --from number assignment
no_routeCannot deliverCheck carrier/​recipient
user_id requiredMissing user IDUse --from with known number

SMS Storage (SQLite with FTS5)

Messages are stored in a single SQLite database with full-text search.

Storage

~/​.dialpad/​sms.db  # Single file with messages + FTS5 index

Commands

# List all SMS conversations
python3 sms_sqlite.py list

# View specific conversation thread
python3 sms_sqlite.py thread "+14155551234"

# Full-text search across all messages
python3 sms_sqlite.py search "demo"

# Show unread message summary
python3 sms_sqlite.py unread

# Statistics
python3 sms_sqlite.py stats

# Mark messages as read
python3 sms_sqlite.py read "+14155551234"

# Migrate from legacy storage
python3 sms_sqlite.py migrate

Features

  • Full-text search via FTS5 (search "keyword")
  • Fast queries with indexes on contact, timestamp, direction
  • ACID transactions — no corruption on concurrent writes
  • Unread tracking with per-contact counts
  • Denormalized contact stats for instant list views

Webhook Integration

from webhook_sqlite import handle_sms_webhook, format_notification, get_inbox_summary

# Store incoming message
result = handle_sms_webhook(dialpad_payload)
notification = format_notification(result)

# Get inbox summary
summary = get_inbox_summary()

Legacy JSON Storage (Deprecated)

The original JSON-based storage is still available but not recommended:

python3 sms_storage.py [list|thread|search|unread]

Requirements

  • Python 3.7+
  • No external dependencies (uses stdlib only)
  • Valid DIALPAD_API_KEY environment variable
  • For ElevenLabs TTS: ELEVENLABS_API_KEY + webhook setup for audio playback

Reading SMS Messages

Dialpad doesn't provide a direct "GET /​sms" endpoint. Instead, use:

1. Real-Time: SMS Webhooks

Receive SMS events in real-time when messages are sent/​received.

# Create a webhook subscription
python3 create_sms_webhook.py create --url "https://your-server.com/​webhook/​dialpad" --direction "all"

# List existing subscriptions
python3 create_sms_webhook.py list

Webhook Events:

  • sms_sent — Outgoing SMS
  • sms_received — Incoming SMS

Note: Add message_content_export scope to receive message text in events.

2. Historical: Stats Export API

Export past SMS messages as CSV.

# Export all SMS
python3 export_sms.py --output all_sms.csv

# Export by date range
python3 export_sms.py --start-date 2026-01-01 --end-date 2026-01-31 --output jan_sms.csv

# Export for specific office
python3 export_sms.py --office-id 6194013244489728 --output office_sms.csv

Output: CSV file with columns:

  • date — Timestamp
  • from_number — Sender
  • to_number — Recipient
  • text — Message content
  • status — Delivery status

Architecture

Dialpad SMS Skill
├── send_sms.py           # Send SMS (working)
├── make_call.py          # Make voice calls (working)
├── create_sms_webhook.py # Create webhook subscriptions (new)
├── export_sms.py         # Export historical SMS (new)
├── sms_sqlite.py         # SQLite storage with FTS5 (RECOMMENDED)
├── webhook_sqlite.py     # Webhook handler for SQLite
├── sms_storage.py        # Legacy JSON storage (deprecated)
└── webhook_receiver.py   # Legacy webhook handler

More Sales & marketing skills

revops logo
Sales & marketing

revops

Design and optimize systems connecting marketing, sales, and customer success into a unified revenue engine.

53.3K 104.9K
View
lead-magnets logo
Sales & marketing

lead-magnets

Strategic planning and optimization for email capture offers and gated content.

53.3K 103.4K
View
directory-submissions logo
Sales & marketing

directory-submissions

Directory submissions: the foundation layer of distribution that passes backlinks and discovery surface area into your marketing pages.

53.3K 76.3K
View
gsap-timeline logo
Sales & marketing

gsap-timeline

Sequence and choreograph multi-step animations with precise timing control and nested timelines.

15.9K 58.4K
View
launch-strategy logo
Sales & marketing

launch-strategy

Structured framework for planning product launches, feature announcements, and go-to-market strategies.

53.3K 56.8K
View
gws-drive-upload logo
Sales & marketing

gws-drive-upload

Upload files to Google Drive with automatic MIME type detection and metadata.

31.2K 47.2K
View
ci-cd-and-automation logo
Sales & marketing

ci-cd-and-automation

Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.

101.4K 43.2K
View
persona-team-lead logo
Sales & marketing

persona-team-lead

Team leadership persona with standup coordination, meeting prep, task delegation, and team communication.

31.2K 29.3K
View
recipe-find-large-files logo
Sales & marketing

recipe-find-large-files

Identify large Google Drive files consuming storage quota.

31.2K 29.2K
View

Sales & marketing AI tools

KreadoAI logo
Sales & marketing

KreadoAI

Revolutionize Video Creation with AI-Generated Avatars and Voices

Paid
View
Followr logo
Sales & marketing

Followr

Social media on autopilot

Paid
View
Logodiffusion logo
Sales & marketing

Logodiffusion

Design custom logos instantly with AI.

Paid
View
I
Sales & marketing

Ideogram

Text-heavy marketing and design images

Freemium
View
Prompt Silo logo
Sales & marketing

Prompt Silo

Boost Your SEO with Content and SEO Silos

Free
View
Marketing Blocks logo
Sales & marketing

Marketing Blocks

Revolutionize Your Marketing with AI-Powered MarketingBlocks!

Paid
View
Scrip AI logo
Sales & marketing

Scrip AI

10X faster & free AI content creation for 100+ use cases

Free
View
T
Sales & marketing

Tribescaler

Tribescaler | Make Your Tweets Go Viral

Paid
View