You'll build a repeatable service that lets plumbers, dentists, and other service-business owners answer calls with a natural-sounding, AI-driven voice that schedules appointments, qualifies leads, and captures payments. The result is a hands-free phone front-desk that you can sell as a monthly subscription and use to acquire new clients for your agency.
What you'll get: a working n8n workflow that wires Anthropic's Claude, ElevenLabs text-to-speech, and Twilio Programmable Voice together, plus a go-to client-acquisition script that turns the service into a scalable AI automation agency.
What you need
| Tool | Plan / Price* | Role |
|---|---|---|
| n8n (self-hosted Docker) | Free (self-hosted) - see Docker Hub for latest image | Orchestrates API calls, stores conversation state |
| Twilio Programmable Voice | Pay-as-you-go - check Twilio pricing page | Provides inbound phone numbers and SIP bridge |
| Anthropic Claude API | Usage-based - check Anthropic pricing page | Generates conversational replies |
| ElevenLabs TTS API | Usage-based - check ElevenLabs pricing page | Turns Claude's text into a lifelike voice |
| Cloudflare DNS + SSL | Free tier available - verify limits | Publishes a secure webhook for Twilio |
| Git (optional) | Free | Version-controls workflow JSON |
\*We avoid stating exact free-tier caps; always verify the current provider pricing.
Estimated time-to-build: 12-16 hours total (including testing and client-onboarding script).
Defining the core pieces
Voice AI is the combination of speech-to-text, natural-language generation, and text-to-speech that lets a computer hold a phone conversation. In this guide we skip the speech-to-text step by letting Twilio forward the caller's audio to our n8n webhook; the rest happens via APIs.
Key insight: The biggest revenue lever for an AI automation agency is the repeatable client-acquisition funnel, not the underlying technology.
Building voice ai agents for local businesses
Below is a step-by-step walkthrough. Every step mentions the exact UI field, API endpoint, or n8n node name so you can copy-paste without guessing.
1. Set up a public HTTPS endpoint for n8n
- Deploy n8n with Docker:
- Point a subdomain (e.g.,
voice.youragency.com) to your server's IP in Cloudflare DNS. - Enable Full (Strict) SSL in Cloudflare and add a Page Rule that forwards
https://voice.youragency.com/webhookto your n8n port5678.
When you browse to https://voice.youragency.com/webhook, you should see a JSON "Welcome" response - that tells you the endpoint is reachable.
2. Register a Twilio phone number
- Log in to the Twilio Console and buy a local number - choose a Voice-enabled line.
- Under Configure > Voice & Fax, set A CALL COMES IN to Webhook and paste the full URL you just created, e.g.,
https://voice.youragency.com/webhook. - Save. Twilio will now POST a
CallSidand raw audio stream to your n8n webhook every time the number is dialed.
3. Create the n8n workflow
Open n8n, click New Workflow, and add the following nodes in order:
| Node | Purpose |
|---|---|
| Webhook | Receives Twilio's inbound call payload |
| Set (named Extract Speech) | Pulls CallSid and From fields into variables |
| HTTP Request (Anthropic) | Sends the conversation transcript to Claude and gets a text reply |
| HTTP Request (ElevenLabs) | Sends Claude's reply text to ElevenLabs TTS and receives an audio URL |
| Twilio (Make Call) | Plays the TTS audio back to the caller |
| NoOp (End) | Returns a 200 OK to Twilio |
#### Configure the Anthropic request node
What this does: Calls Claude with a prompt that includes the latest caller input and a short service-specific script.
Why it matters: The prompt is service-specific ({{ $json.service_type }}) so the same workflow can serve plumbers, dentists, or any other service business automation client.
#### Configure the ElevenLabs request node
The node streams the generated audio back to Twilio in the next step.
#### Play the audio with Twilio
Add a Twilio node (type Make Call) and set:
- To:
{{ $json.From }}(the original caller) - From: your Twilio number
- Twiml:
When the workflow finishes, the caller hears the AI-generated response as if a human were on the line.
4. Add a simple CRM hook (optional)
Create a second HTTP Request node that POSTs the call details to a Google Sheet via Zapier or directly to HubSpot. This gives you an automatic client acquisition log for each conversation, letting you track lead quality and invoice per-call usage.
5. Package the service for resale
- Write a one-page PDF that explains the benefit ("24/7 phone answering, zero staff") and bundles the monthly Twilio, Anthropic, and ElevenLabs fees.
- Host the PDF at
https://getaab.com/freeand link it from your agency landing page - this is the lead magnet that converts curious local business owners into paying clients. - Use the internal guide AI automations you can sell (
https://getaab.com/ai-automations-to-sell) to outline pricing tiers and upsell options (e.g., multilingual agents, call analytics).
Where this breaks
| Failure mode | Symptom | Fix |
|---|---|---|
| Twilio webhook not reachable | 11200 "HTTP retrieval failure" in Twilio console | Verify Cloudflare DNS, ensure port 5678 is open, and that the HTTPS cert is valid. |
| Anthropic rate limit | 429 error in n8n logs, no reply text | Implement a n8n Retry node with exponential back-off; consider upgrading to a higher usage plan. |
| ElevenLabs voice ID change | 404 from ElevenLabs, empty audio_url | Store the voice ID as an environment variable and update it whenever you create a new custom voice. |
| Expired API keys | 401 Unauthorized from either API | Rotate keys regularly; add a Cron node that emails you when a request returns 401. |
| Cost blow-out | Monthly invoice > forecast | Set usage alerts in Twilio, Anthropic, and ElevenLabs dashboards; cap the number of calls per client in the n8n workflow with a IF node. |
| Caller hangs up before TTS finishes | Twilio logs "Call ended" with no audio played | Reduce max_tokens in the Claude prompt and enable EleventLabs streaming to lower latency. |
Bottom line: Most breakages are network or quota-related; proactive monitoring stops surprise bills before they happen.
For a deeper technical reference, see n8n's documentation.
FAQ
How do I choose the right voice for a plumber versus a dentist?
Pick a voice that matches the brand tone: a warm, confident male voice for a plumber, a friendly female voice for a dentist. ElevenLabs lets you audition voices in the dashboard; select the voice_id and store it in the ELEVENLABS_VOICE_ID env var.
Can I add speech-to-text so the AI can understand caller intent?
Yes. Replace the Set node with a Twilio Gather action that records the caller's speech, then send the audio file to a STT service such as Google Speech-to-Text. The transcript becomes caller_text for the Claude prompt.
What does the client-acquisition funnel look like for this agency?
1. Run a Facebook ad targeting local service businesses.
2. Direct interested owners to the free guide (https://getaab.com/free).
3. Offer a 14-day trial of the voice AI agent, billed automatically via Stripe after the trial.
4. Use the CRM webhook to track conversion from trial to paid.
How much does it cost per call on average? You'll pay per-minute for Twilio inbound minutes, per-token for Anthropic, and per-character for ElevenLabs. The exact amount varies with call length and prompt complexity; consult each provider's pricing page for up-to-date rates.
Is self-hosting the workflow a requirement? No. You can run n8n in the cloud (e.g., n8n.cloud) if you prefer not to maintain a server, but self-hosting eliminates recurring SaaS fees and gives you full control over data privacy - critical for many service business automation clients.
Ready to start building your voice ai agents for local businesses service? Grab the free guide, set up the workflow, and begin acquiring plumbers, dentists, and other local pros today.
Internal resources:
- Learn more about profitable AI automations you can sell: https://getaab.com/ai-automations-to-sell
- See the complete client-onboarding checklist: https://getaab.com/funnel
- Explore deeper technical docs on Anthropic: https://docs.anthropic.com
- Get a live demo of ElevenLabs voices: https://elevenlabs.io