Library
Voice AI · Chapter 4 of 10
Chapter 04

Essential Tools for
Voice Automation

A working knowledge of every tool you will actually touch — voice, LLM, telephony, orchestration, backend, and delivery — then one workflow that uses them together.

ToolsTwilioVapin8nSupabaseDocker
A Handbook For Builders
Essential Tools for
Voice Automation
Chapter 04
The Claude Code Handbook

The voice stack is deceptively small once you name the pieces. There are exactly six roles — Voice, Brain, Ears, Phone, Glue, Home — and every tool in this chapter fills one of them. This chapter is your field guide: what each tool does, when to pick it, one code snippet you can copy, and finally one workflow that ties nine of them together.

Section 1

1. The Voice Automation Map

diagramclaude-code
  EARS               BRAIN             VOICE
Whisper / Deepgram   Claude / GPT   ElevenLabs
        │               │               │
        └──────── PHONE (Twilio / Vapi / Retell / Bland) ────────┘
                             │
                        GLUE (n8n, webhooks, REST)
                             │
                    HOME (Supabase, Railway, Docker)
Claude Code — Terminal
Screenshot placeholder
Illustrated map of the six roles with the tools slotted underneath each pillar.
Figure — Illustrated map of the six roles with the tools slotted underneath each pillar.
Section 2

2. ElevenLabs — the Voice

Best-in-class TTS + voice cloning. Sub-second first byte with streaming. Multi-lingual (30+ languages).

Section 3

3. Claude — the Brain

Anthropic's models excel at long instructions, tool use and refusing to hallucinate. Default: claude-sonnet-4-5.

Section 4

4. ChatGPT / OpenAI — the Fallback Brain

gpt-4o-mini is the cheapest brain that still handles voice-agent turns competently. Great for high-volume, low-margin agents.

Section 5

5. Whisper — Batch Ears

Best-accuracy STT for uploaded audio. Not real-time. Cheap.

Section 6

6. Deepgram — Streaming Ears

WebSocket streaming, partial results in ~250ms. First choice for phone calls.

Section 7

7. AssemblyAI — Multi-Speaker Ears

Speaker diarization built-in, 90+ languages. Great for meetings and interviews.

Section 8

8. Twilio — Phone Numbers, Programmable

Owns the number, forwards audio over WebSocket to your server. $1/month per US number.

xmlclaude-code
<Response>
  <Connect>
    <Stream url="wss://your-server.com/twilio/stream" />
  </Connect>
</Response>
Section 9

9. Retell AI — Managed Voice Agent Runtime

Handles the phone + STT + LLM + TTS glue as a service. Fastest way to a live phone agent, at the cost of flexibility.

Section 10

10. Vapi AI — Same Idea, Different Trade-Offs

Vapi lets you pick each block (Deepgram + Claude + ElevenLabs, for example). Excellent latency, strong function-calling model, pay-per-minute.

Section 11

11. Bland AI — Outbound at Scale

Purpose-built for outbound calls. Batch dial 10,000 numbers, hand off to a human on positive intent.

Section 12

12. n8n — the Visual Glue

Self-hostable Zapier. Every REST call, every webhook, every retry — visualised as a node.

Section 13

13. Supabase — the Home for Data

Postgres + Auth + Storage + Realtime. Call logs, transcripts, CRM rows all live here.

Section 14

14. Railway — the Server

Push to GitHub, get a URL. Perfect for the Node/Python service that holds your agent code.

Section 15

15. Docker — Reproducible Boxes

dockerfileclaude-code
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "dist/index.js"]
Section 16

16. OpenRouter — One Key, Many Models

Single API in front of Claude, GPT, Llama, Mistral. Swap models with one string change.

Section 17

17. Postman — the API Sketchpad

Before you write code, prove the API works in Postman. Saves hours of confusion.

Section 18

18. Webhooks — the Universal Language

A URL that a third party POSTs to when something happens. Always verify the signature.

Section 19

19. REST APIs — the Bones

  • GET read, POST create, PATCH update, DELETE delete.
  • Auth: Authorization: Bearer or vendor header (xi-api-key).
  • Bodies: JSON in, JSON or binary out.
Section 20

20. One Complete Workflow

Goal: a Twilio number that answers, transcribes with Deepgram, thinks with Claude, speaks with ElevenLabs, logs the call to Supabase, and runs on Railway inside Docker.

diagramclaude-code
Caller dials Twilio number
   │
   ▼
Twilio Stream ──WS──▶ Railway (Docker) server
   │                      │
   │            Deepgram (streaming STT)
   │                      │
   │              Claude (turn logic)
   │                      │
   │           ElevenLabs (stream TTS)
   │                      │
   ▼                      ▼
Caller hears reply    Supabase (log call + transcript)