All guides
AI agents

How to Build an AI Voice Agent for Your Business That Answers Every Call

By Zaid Koradia·Updated Jul 19, 2026· 18 min read

An AI voice agent answers your business calls, qualifies leads, and books appointments 24/7. It works for any business. You build it with two tools: ElevenLabs for the voice and brain, and Claude Code for the website and booking link. I built a real one for a real estate influencer. It runs for a few dollars a month, not a $28,000 receptionist.

You build: A real AI voice agent that answers your calls, qualifies leads, and books appointments 24/7, plus the website and booking link it runs on·90 min·intermediate

Most calls to a small business go unanswered. Nights, weekends, lunch rush, all missed. Every missed call is a lead your competitor picks up instead.

The old fix costs a fortune. A receptionist runs $28,000 to $35,000 a year. An agency charges up to $25,000 just to build you a voice agent. Both are too much for most businesses.

So I built the cheap version myself. I made a real AI voice agent that answers every call and books appointments for you, 24/7. The demo you saw in my reel was one I built for a real estate influencer. It answers the phone, asks the caller what they want, and books a visit. The same agent works for a clinic, a salon, a dealership, an agency, or a shop. My AI content has crossed over ten million views across Instagram, YouTube, and Facebook. I have built automations, agents, apps, websites, and more with AI for myself and for real businesses. Now I teach AI to millions of people across several countries, so they get ahead in the AI race.

This is the exact stack and steps I used, the real one, not a clean demo for show. You will not find it written like this anywhere else. And if any step below looks too technical, relax. At the end I hand you the exact prompts that do the hard part for you. There is one line that keeps you legal too, and I give you that as well.

What an AI voice agent actually is

It is a software worker that answers your phone. It understands normal speech, replies in a real voice, and takes action mid-call. It books, it qualifies, it answers questions.

Under the hood it is four parts working together, and ElevenLabs gives you all four:

  • Speech to text, which turns the caller's words into text.
  • An LLM brain, which decides what to say and what to do.
  • Text to speech, which speaks the reply in a natural voice.
  • A turn-taking model, which handles when to listen, when to talk, and interruptions.

It all happens fast enough to feel like a real chat. And it can call your systems mid-call to check a calendar or make a booking, and answer from your own business documents.

One honest note up front. It is great at booking, qualifying, and answering common questions. It still struggles with angry or emergency calls, very noisy lines, and heavy accents. So scope it to one clear job, give it clean information, and always give it a way to hand off to a human.

Why your business wants one (the honest ROI)

Two numbers make the case. First, most calls to small businesses go unanswered. Industry figures in 2026 put the miss rate for small businesses in the 60 to 74 percent range. These are aggregated vendor numbers, not audited data, but the direction is not in doubt.

Second, speed decides who wins the lead. The widely cited lead-response research found that reaching a web lead within 5 minutes makes you roughly 100 times more likely to connect, and 21 times more likely to qualify it, than waiting 30 minutes. Almost no business hits that by hand. A voice agent answers in seconds, all day and night.

The four best jobs to start with:

  • Inbound lead capture: answer every call, qualify it, book or route it.
  • Appointment booking: check availability and book or reschedule.
  • FAQ deflection: answer hours, pricing, and location from your real info.
  • After hours: catch the leads you lose when you are closed or busy.

The money math. A receptionist runs $28,000 to $35,000 a year. A voice agent runs roughly $0.10 to $0.15 per connected minute, all in. That is why payback is measured in weeks, not years.

The stack: two tools, that is it

ElevenLabs is the voice and the brain. It gives you the full pipeline, plus 11,000 voices, a knowledge base, tools, testing, and deployment to phone, web, and WhatsApp. It is the live agent.

ElevenLabs Agents (the official docs)

Claude Code is the builder. It writes and ships the two things the agent needs: the website it lives on, and the booking link it calls to make appointments. You direct it in plain English. It writes the code.

Download the Claude desktop app (Claude Code is built in)

Three things all say Claude, do not mix them up. Claude Code is the tool that builds your website. Claude the model is one option for the agent's brain inside ElevenLabs. The ElevenLabs MCP is an optional add-on you do not need to start. Keep it simple: ElevenLabs runs the agent, Claude Code builds its website.

Before you start: what you need

  • An ElevenLabs account. Free to test. A paid plan starts at $6 a month if you want to clone a voice or use it commercially.
  • A paid Claude plan, for Claude Code. The free Claude plan does not include it.
  • GitHub and Vercel accounts, both have free tiers, for the website.
  • A Twilio account only if you want a real phone number, from about $1.15 a month per number.
Git for Windows (install this first on Windows, then restart the Claude app)

Quick cost preview so nothing surprises you later. A voice agent that lives on your website is a few dollars a month. A full phone agent handling real volume, about 500 calls, lands around $140 to $280 a month. The full breakdown is near the end. Nothing here needs a big spend to test.

Step 1: Create the agent

Sign in at ElevenLabs and open the Agents dashboard. Click Create agent, name it, and pick the Blank template. You will set two things: the First message and the System prompt.

You should now see an empty agent with two boxes, a First message and a System prompt. That is the whole brain, sitting there blank. We fill it in the next step, and I give you mine to paste.

Step 2: Paste my system prompt (the six blocks)

The system prompt is the agent's rulebook. ElevenLabs recommends six blocks: Personality, Environment, Tone, Goal, Guardrails, and Tools. Keep the whole thing under about 2,000 tokens. Longer prompts get slower and pricier.

I did not grab a generic prompt. I read ElevenLabs' own prompting guide, then wrote this for the real estate booking agent in my reel and tested it on real calls. Here is mine. Swap the business, the role, and the details for yours, starting with the name in brackets.

ElevenLabs prompting guide (the six-block structure)
Prompt 1: the real estate booking agent (paste into ElevenLabs)
FIRST MESSAGE (put this in the First message box):
Hi, thanks for calling [Agency]. This is an AI assistant on a recorded line. I can help you find a property or book a viewing. What are you looking for?

SYSTEM PROMPT (put this in the System prompt box):

# Personality
You are Alex, a warm, sharp buyer's agent for [Agency]. You are friendly, calm, and quick. You sound like a real person, never a robot.

# Environment
You answer phone calls for a real estate agency. Callers are buyers or renters. Some are only looking. Some are ready to book a viewing. The line is recorded.

# Tone
Speak in short, spoken-style sentences, one or two per turn. Warm and clear. Ask one question at a time. Never read a long list out loud. Confirm what you heard before you move on.

# Goal
Follow these steps in order:
1. Greet the caller and, if you have not already, tell them you are an AI assistant on a recorded line.
2. Qualify the lead. Ask, one at a time: the area they want, their budget, how many bedrooms, and their timeline.
3. Match them to a property from your knowledge base. Never invent a listing, a price, or availability.
4. Offer a viewing at a real open slot. Call check_availability first and read the open slots back.
5. Once they confirm one slot out loud, call book_appointment to book it. Then repeat the details back to confirm.

# Guardrails
- Never guess or make up a price, a listing, or an open slot. If you do not know, say you will check or take a callback number.
- Keep every reply to one or two short sentences.
- Never book without the caller confirming the exact slot out loud.
- If the caller wants to negotiate, asks for a human, or a booking fails twice, hand off to a human agent with transfer_to_number.
- Always tell the caller they are speaking with an AI if they ask. Never pretend to be human.

# Tools
- check_availability: call this to get open viewing slots before you offer any time.
- book_appointment: call this only after the caller confirms a specific slot. Send their name, the property or service, the date, the time, and a callback number.
- transfer_to_number: call this for negotiations, a human request, or two failed booking attempts.

That is your whole brain, done. Two tips that matter most: repeat your two most important rules twice, it measurably improves reliability, and keep replies to one or two short sentences. The Guardrails block gets extra attention from the model, so the important rules live there.

Step 3: Give it a voice and feed it your business

Pick a voice from the library. A stock voice is free and works fine to start. You get voice cloning at the Starter plan, $6 a month, once you are past testing. For live calls, use the Flash v2.5 model. It is fast, which is what a phone call needs. It also supports Hindi and Hinglish if you add the language.

Now feed it your business. In the Knowledge Base, add your real info three ways: upload files like a price list or FAQ, add a website URL and it crawls the page, or paste text. The agent answers from your content, not from guesses. Non-enterprise plans cap the knowledge base at 20 MB, about 300,000 characters. Keep the documents clean.

Stop and look at what you have. Your agent has a voice, knows your business, and follows my six-block rulebook. Half the work is done, and you have not touched a single line of code.

Step 4: Pick the brain (the LLM)

This is the model that does the thinking. You can pick Claude, GPT, Gemini, or an ElevenLabs-hosted open model. A faster model means lower delay and lower cost. Use a small fast model for simple flows, and a stronger one like Claude Sonnet for tricky bookings. Set a backup model too, and test 2 or 3 with your real prompt before you commit.

One cost note to remember. The brain is billed separately from your ElevenLabs minutes, by tokens used. The dashboard shows a live estimate as you build. Keep an eye on it. More on all the meters near the end.

Step 5: Make it book (the webhook tool)

This is what makes it a real agent and not a chatbot. A tool lets the agent do things. The booking action is a webhook tool: the agent calls your own link to create the booking. You build that link with Claude Code in the next step. Here you just describe it.

In the agent, go to Tools, then Add Tool, then Webhook. Name it book_appointment. Describe exactly when to use it. Set the method to POST and the URL to your link. Add each field with a plain description, and store your key as a Secret, never pasted in the open. Here is the exact shape ElevenLabs uses. Paste it and swap in your real link.

Prompt 2: the booking tool config (adapt the fields)
{
  "type": "webhook",
  "name": "book_appointment",
  "description": "Books a viewing once the caller has given their name, the property or service, a date and a time, and confirmed the slot.",
  "api_schema": {
    "url": "https://your-app.vercel.app/api/book",
    "method": "POST",
    "request_headers": { "Authorization": "Bearer <stored-as-secret>" },
    "request_body_schema": {
      "name":    { "type": "string", "description": "Caller's full name" },
      "service": { "type": "string", "description": "Property or service requested" },
      "date":    { "type": "string", "description": "Preferred date, YYYY-MM-DD" },
      "time":    { "type": "string", "description": "Preferred time, e.g. 5:00 PM" },
      "phone":   { "type": "string", "description": "Callback number in E.164, e.g. +14155551234" }
    }
  }
}

The agent picks a tool purely from its name and description, so write them precisely. Add the transfer_to_number system tool so it can hand off to a human. And turn on the Analysis tab plus a post-call webhook, so every booking and outcome lands in your CRM after each call.

ElevenLabs webhook tools (the official docs)

This is the part that scares people, and it is really just a form. You name the action, describe when to use it, and give it a link. That link does not exist yet. Claude Code builds it for you in the next step.

Step 6: Tune the conversation flow

In the Advanced tab, set a few dials so it feels natural:

  • Turn timeout: how long it waits during silence, 1 to 30 seconds. Use 5 to 10 for snappy chat.
  • Turn eagerness: eager, normal, or patient. Too eager cuts people off, too patient feels dead.
  • Soft timeout: plays a filler line like Let me check that if the model is slow.
  • Interruptions: on for natural chat, off for a legal line you do not want cut short.

Aim for first audio under about 800 milliseconds, so it feels alive. The three levers are simple: use Flash v2.5, keep the prompt tight, and pick a fast model. You already did all three.

Step 7: Build the website and booking link (Claude Code)

The agent needs a home and a link. Claude Code builds both: a small website with your agent on it, and the /api/book link the agent calls to make a booking. You direct, it builds.

Get Claude Code first. Download the Claude desktop app, it has Claude Code built in with buttons, not commands. On Windows, install Git first, then restart the app. You need a paid Claude plan.

Claude Code setup and docs

I turned the whole website build into one prompt. It scaffolds the site, drops your voice agent on every page, builds the booking link, and puts it online free on Vercel. Open your Claude desktop app, go to the Code tab, select a new empty folder, and set the mode to Auto. Then paste this and answer its questions.

This prompt has code words in it. You do not read the code. You paste the whole thing, Claude reads it, and it builds the exact site I built. Nothing here can harm your computer.

Prompt 3: build my whole website and booking link (paste into Claude Code)
You are my patient build coach. I am not a coder. Build my business website with my AI voice agent on it, plus the booking link the agent calls. Work in plain words, one step at a time. After each step, tell me exactly what I should see so I know it worked. Plan before you act and wait for my ok on anything big. Change only what is needed. Never delete my files or spend money without asking. If you are unsure, stop and ask me.

First, before you build anything, ask me these one at a time and wait for my answer:
1. Am I on Windows or Mac?
2. What is my business name, and what does it do?
3. What is my ElevenLabs agent-id? Find it in the ElevenLabs dashboard. It is safe to share, it is public.

Then do these steps in order.

1) SCAFFOLD THE SITE. Create a new Next.js app with the App Router and TypeScript using npx create-next-app@latest. Keep it minimal: a hero with my business name, a short services section, and a contact area. Then commit. What I should see: a local site running with my business name on it.

2) ADD THE VOICE AGENT. Put the ElevenLabs voice widget on every page. Load the script https://unpkg.com/@elevenlabs/convai-widget-embed with next/script using strategy lazyOnload, and render the elevenlabs-convai element with my real agent-id in the root layout so it shows on every page. Add the TypeScript declaration so it type-checks. What I should see: a call button from my agent floating on the page.

3) BUILD THE BOOKING LINK. Create a Next.js route handler at app/api/book/route.ts. It accepts a POST with JSON name, service, date, time, phone. It checks the Authorization header equals the word Bearer plus a space plus process.env.BOOKING_WEBHOOK_SECRET, and returns 401 if it does not match. It checks the required fields are present and returns 400 if not. It stores the booking, a console.log is fine for now, or a Supabase insert if I ask for it. It returns status confirmed and a short confirmationId. Add BOOKING_WEBHOOK_SECRET to .env.local and .env.example. What I should see: a working /api/book link that returns confirmed when I send it a test booking with the right secret.

4) PUT IT ONLINE. Commit and push to a new GitHub repo, then deploy a free preview on Vercel. In the Vercel project settings, add BOOKING_WEBHOOK_SECRET as an environment variable. Give me the live preview link. What I should see: my real website live at a vercel.app link, with the call button on it.

5) HAND ME THE CONNECTION DETAILS. Tell me my live booking link, which is my vercel.app address plus /api/book, and my BOOKING_WEBHOOK_SECRET, so I can paste them into the ElevenLabs book_appointment webhook tool. Remind me that ElevenLabs cannot reach a link on my own computer, it must be this public https link.

Rules for you the whole time: explain each step in plain words, reassure me when something looks scary but is normal, make the smallest change that works, never push to my main branch or go live to production without me, and stop and ask me the moment you are unsure. When you are done, show me the live link and tell me in one sentence how to connect it to my agent.

Now connect the two. Back in ElevenLabs, set your book_appointment webhook URL to your live Vercel link, and add the Authorization header with your secret. ElevenLabs cannot reach a link on your own computer, so it must be the public https link. Then test the agent and watch it call your booking link.

ElevenLabs widget embed (the official docs)

Stop and look at what you built. A live website, a voice agent sitting on it, and a real booking link it calls. That is the whole thing the reel showed. The hard part is behind you now.

Step 8: Put it live (widget or phone number)

Two ways to reach customers. Most businesses do both. Claude Code already placed the website widget for you in Step 7.

The website widget: it is the call button on your site. One rule to remember, the agent must be set to Public with authentication disabled, or the widget will not load. That is the number-one mistake. Then add your domain to the Security allowlist, so only your site can use it.

A real phone number: ElevenLabs does not sell numbers, you bring one from Twilio. Buy a number in Twilio, copy your Account SID and Auth Token, then import the number in ElevenLabs under Phone Numbers. Assign your agent to handle inbound calls, and ElevenLabs sets up the rest.

ElevenLabs phone numbers with Twilio (the official docs)

Twilio costs, US, 2026, verify live before you quote a client: a number about $1.15 a month, inbound about $0.0085 a minute, outbound about $0.014 a minute. Twilio bills this separately from ElevenLabs. That is meter three, and I break down all three next.

Step 9: Test it before a real customer calls

Never let an untested agent talk to a customer. ElevenLabs has a Tests tab with three kinds: scenario tests grade the reply, tool-call tests check it calls the right tool with the right fields, and simulation tests run a fake AI customer through a full call. Mock the tools so tests do not create real bookings.

ElevenLabs agent testing (the official docs)

Agents are probabilistic, so run each test a few times and read the pass rate, not one lucky pass. Green is 100 percent. And when a real call goes wrong later, turn it into a test so it never happens twice.

What it really costs (the three meters)

This is the number-one thing people get wrong. Your cost is three stacked meters, not one:

  • The ElevenLabs Agents plan, for the voice and the call minutes.
  • The LLM brain, billed separately by tokens used.
  • Telephony, from Twilio, only if you use a real phone number.

The ElevenLabs plans in 2026: Free at $0 with 15 minutes, Starter at $6 with 75 minutes, Creator at $22 with 275 minutes, Pro at $99 with 1,238 minutes, Scale at $299, and Business at $990. Overage is a flat $0.08 a minute on every tier. Voice cloning and commercial use start at Starter.

ElevenLabs Agents pricing (verify live, it changes)

A worked example. About 500 calls at 2.5 minutes each on the Pro plan lands around $140 to $160 a month, all in, plan plus a small overage plus a budget brain plus Twilio inbound. Longer 4-minute calls push it to about $220 to $280. Compare that to $28,000 to $35,000 a year for a receptionist.

Free ways to test: the ElevenLabs Free tier gives 15 minutes, Twilio gives about $15 of trial credit, and Vercel hosts the website free. One honest reminder, prices and model names change often, so always check the live pages before you quote a client.

The one rule you cannot skip: tell callers it is AI

This is US-focused, so check your own country and state. In the US, the FCC treats an AI voice as an artificial voice under the TCPA, so calls need proper consent. Several states now require you to announce AI. Texas SB 140 says you must disclose within the first 30 seconds. California, Utah, Florida, Colorado, and Illinois add their own rules.

One opening line handles most of it, and it is already in my system prompt:

This is an AI assistant calling from [Company] on a recorded line. Is this a good time to talk?

For outbound calls especially: get the right consent, call only between 8am and 9pm in the caller's local time, scrub the Do-Not-Call list, honor any opt-out like stop or remove me, and keep records for a few years. This is not legal advice. Talk to a professional for your area.

How you run it (and how you sell it)

Once it is live, ElevenLabs shows you everything: call count, cost, delay, success rate, and searchable transcripts. Your weekly habit is simple. Read the calls that failed, turn each into a test, change one prompt block, and re-test until it passes. The agent gets sharper every week.

Now the part that pays. Agencies charge up to $25,000 to build one of these. You just built it for a few dollars a month. Run it for your own business, or build them for local businesses and charge a monthly fee. Real estate, dental clinics, salons, and restaurants are strong first clients.

You are not learning to code. You are directing a builder that never sleeps, and a worker that never misses a call. It is the same set of tools the agencies rent to you, minus the retainer.

If it breaks

  • The widget will not load: your agent is not set to Public with authentication disabled. Fix that in the agent's Advanced settings.
  • Your bill looks high: you only counted the ElevenLabs minutes. Remember all three meters, voice, brain, and telephony.
  • The agent makes things up: your knowledge base is thin or messy. Add clean, real documents, and tell it to never guess.
  • It fills the booking fields wrong: your tool and field descriptions are vague. Make them precise, with a format example like date in YYYY-MM-DD.
  • It talks too long or feels slow: trim the system prompt under 2,000 tokens, cap replies to one or two sentences, use Flash v2.5 and a fast brain.
  • There is no human backup: add the transfer_to_number tool, and tell it to hand off after two failed attempts.
  • ElevenLabs cannot reach your booking link: it must be a public https link, not one on your computer. Use your live Vercel link.
Is it really this cheap?
For the tools, yes. A voice agent that lives on your website is a few dollars a month. A phone agent handling about 500 calls a month lands around $140 to $280. A receptionist is $28,000 to $35,000 a year. Just watch all three meters and check prices live before you quote a client.
Do I need to know how to code?
No. You build the agent in the ElevenLabs dashboard using forms. Claude Code builds the website and the booking link from plain-English prompts. The three prompts in this guide do the hard part for you.
Can I sell these to businesses?
Yes. Agencies charge up to $25,000 to build one. You can build them for local businesses and charge a monthly fee. Real estate, dental, salons, and restaurants are good places to start.
Is it legal to use?
You must tell callers they are speaking with AI. In the US the FCC treats an AI voice as an artificial voice under the TCPA, and several states require you to disclose it. One opening line usually covers it, and it is already in my system prompt. Check your own state. This is not legal advice.
Can the agent's brain be Claude?
Yes. Claude is one of the model options in ElevenLabs, alongside GPT, Gemini, and open models. Pick a fast one for simple flows, and a stronger one like Claude Sonnet for tricky bookings.
What if a call is too complex for the agent?
Give it a human handoff with the transfer_to_number tool, and tell it to hand off after two failed tries. Scope it to one job, like booking, and let a human take the rest.
This still feels too advanced. What do I do?
Paste the three prompts in this guide. One is the agent's brain, one wires the booking, and one builds the website. They do the heavy lifting, step by step, and reassure you along the way.

You came here from my reel. You commented VOICE, and this guide is your reward. This free guide is the what. If you want the how, done with you, so you launch real agents, apps, and automations fast, that is AI Mastery, the only AI course you will ever need. Want me to set your agent up with you live and take your first real call together? I take a few 1:1 people each month. And if you would rather I just build it for your business, my team does it for you, done-for-you, at Hire FabRich.

The King tier

All-Access. Every course, free, forever.

Own every course we have, plus every single future course we ever make. One payment. Yours for life. Never pay for a Claude course again.

  • Every course, today and forever
  • Every future course free, the day it drops
  • What you own keeps growing, you never pay again
  • Lifetime access and updates
Save 79%

Years of courses, worth $1,417 today and climbing

$299

Lock it for life. Every future course is free, so you never pay more, ever.

Get All-Access
The inner circle

1:1 with Zaid. Direct access while you build.

The highest level. A direct line to me and a live call every week. I help you learn and build your own project, step by step. You do the work, I guide you the whole way.

  • A live call with me every week
  • A direct line to me, I reply on weekdays
  • A room of other serious builders
  • I follow you back and reply on Instagram

from

$1,499

Only 2 of 10 seats left this month.

Apply for 1:1