# How to launch an AI automation agency offering voice AI agents for local businesses

> Source: <https://dev.to/samchenreviews/how-to-launch-an-ai-automation-agency-offering-voice-ai-agents-for-local-businesses-1n0o>
> Published: 2026-08-22 00:32:35+00:00

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.

| 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).

**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.

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.

```
docker run -d \
 --name n8n \
 -p 5678:5678 \
 -e N8N_BASIC_AUTH_ACTIVE=true \
 -e N8N_BASIC_AUTH_USER=admin \
 -e N8N_BASIC_AUTH_PASSWORD=CHANGE_ME \
 n8nio/n8n:latest
```

`voice.youragency.com`

) to your server's IP in Cloudflare DNS. `https://voice.youragency.com/webhook`

to your n8n port `5678`

. When you browse to `https://voice.youragency.com/webhook`

, you should see a JSON "Welcome" response - that tells you the endpoint is reachable.

`https://voice.youragency.com/webhook`

. `CallSid`

and raw audio stream to your n8n webhook every time the number is dialed. 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 |

*What this does:* Calls Claude with a prompt that includes the latest caller input and a short service-specific script.

```
{
 "name": "Anthropic Claude",
 "type": "n8n-nodes-base.httpRequest",
 "position": [600,200],
 "parameters": {
 "url": "https://api.anthropic.com/v1/complete",
 "method": "POST",
 "jsonParameters": true,
 "options": {
 "bodyContentType": "json"
 },
 "bodyParametersJson": {
 "model": "claude-3-sonnet-20240229",
 "max_tokens": 150,
 "temperature": 0.3,
 "prompt": "You are a friendly office assistant for a local {{ $json.service_type }}. The caller says: \"{{ $json.caller_text }}\". Respond with a concise answer, ask for the needed information (e.g., appointment date), and keep the tone professional."
 },
 "authentication": "headerAuth",
 "headerAuth": {
 "name": "Authorization",
 "value": "Bearer {{ $env.ANTHROPIC_API_KEY }}"
 }
 }
}
```

**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.

```
{
 "name": "ElevenLabs TTS",
 "type": "n8n-nodes-base.httpRequest",
 "position": [900,200],
 "parameters": {
 "url": "https://api.elevenlabs.io/v1/text-to-speech/{{ $env.ELEVENLABS_VOICE_ID }}/stream",
 "method": "POST",
 "jsonParameters": false,
 "options": {
 "bodyContentType": "raw",
 "responseFormat": "json"
 },
 "bodyParametersJson": {
 "text": "{{ $node['Anthropic Claude'].json.completion }}"
 },
 "authentication": "headerAuth",
 "headerAuth": {
 "name": "xi-api-key",
 "value": "{{ $env.ELEVENLABS_API_KEY }}"
 }
 }
}
```

The node streams the generated audio back to Twilio in the next step.

Add a **Twilio** node (type *Make Call*) and set:

`{{ $json.From }}`

(the original caller) 

```
<Response>
 <Play>{{ $node['ElevenLabs TTS'].json.audio_url }}</Play>
</Response>
```

When the workflow finishes, the caller hears the AI-generated response as if a human were on the line.

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.

`https://getaab.com/free`

and link it from your agency landing page - this is the `https://getaab.com/ai-automations-to-sell`

) to outline pricing tiers and upsell options (e.g., multilingual agents, call analytics). | 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](https://docs.n8n.io/).

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.

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.

`https://getaab.com/free`

). 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.

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:*
