---
title: "Build your first voice agent"
description: "The agent builder end-to-end: write the prompt, pick an engine, voice, and languages, attach tools and knowledge, talk to your draft, and deploy it to production."
---

Everything about an agent lives in the builder at **Voice Agents**
(`/dashboard/agents`) — create one and you land in it. This guide
walks the same path as the in-app "Build an agent" tour.

<Tip>
  First time here? The [dashboard quickstart](/quickstart-dashboard)
  wraps this page plus billing, numbers, and simulations into the
  five-step setup wizard. Already have agents on Vapi, Retell, ElevenLabs
  Agents, or Bland? [Import them](/guides/import-agents) instead of
  rebuilding.
</Tip>

## Start from a template

**Create agent → Start from a template** opens a picker of ready-made
agents. Everything is editable afterwards.

- **Interpreter** — a real-time two-way phone interpreter between two
  languages. Pick your language and the caller's language, a voice that
  speaks both, and confirm the intro the interpreter says at the start
  of every call (spoken in the non-English language; in both when
  neither is English). The agent opens fully configured on Storm at the
  standard rate; give the number to your team and add the other party
  with 3-way calling.
- **Receptionist** — the sample front-desk prompt from the onboarding
  tour: greets callers, books appointments, answers questions, transfers
  the rest.
- **Appointment scheduler** — takes booking, rescheduling and
  cancellation requests: collects the caller's name, number, and
  preferred day and time, reads the request back, and tells the caller
  the office will confirm. There is no calendar integration, so it never
  claims a booking is confirmed; give it a transfer number for anything
  it can't handle.
- **After-hours message taker** — greets, takes the caller's name,
  callback number and reason, reads them back, and ends the call. Give
  it an urgent-calls number and it transfers callers who say it's
  urgent; give it an email and it sends you a summary after each call.
- **Call router** — a phone-menu replacement. Asks in one sentence what
  the caller needs, transfers to the matching department (up to three,
  each with a name and number), and takes a message when nothing fits.
- **Lead qualifier** — screens calls from your ads: confirms what the
  caller wants, asks three qualifying questions (what, when, and a rough
  budget or size), reads the answers back, then transfers to your sales
  number or promises a callback.
- **Info line** — answers hours, location, directions, pricing and
  policy questions from the [knowledge](/guides/knowledge-base) you
  attach, says so when it doesn't know, and never invents facts. After
  creating it, add your website or documents under **Knowledge**.
- **Phone intake form** — walks the caller through a fixed list of
  fields (name, phone, email, address, reason), confirms each, reads
  the whole form back, and emails it to you.

The six business templates share one setup step — your business name,
a one-line "what you do", and optionally a transfer number and an email
for messages — and write a prompt in the
[prompting guide's](/guides/prompting) shape. Transfers are plain prompt
lines ("transfer the call to …"), the email goes through the agent's
send-email setting, and the agent is named after your business. **Start from scratch** in the same menu opens an
empty editor instead.

## 1. Write the prompt

The prompt is the script for your voice agent. Describe — in any
language — who the agent is and how it should handle the call: its
persona, what it knows, what it should and shouldn't do.

Transfers, keypad presses, hold, email, sounds, and hang-ups are prompted
actions. See [Built-in tools](/guides/built-in-tools), and use [Transfer
calls](/guides/call-transfers) for cold and screened warm handoffs.

If the call has phases that must happen in order, such as verifying a caller
before booking, split the agent into [steps](/guides/agent-steps) instead.

<Tip>
  Specific beats general. "Confirm the order number back to the caller
  before making changes" outperforms "be careful with orders."
</Tip>

## 2. Pick an engine

On the **Config** tab, the engine picker trades off cost and
performance across three tiers — **Spark** is optimized for cost,
**Bolt** for speed, **Storm** for intelligence on complex prompts.
Each card shows its per-minute price. Switch anytime; see the
[full pricing reference](/guides/pricing) and
[agent setting reference](/guides/agent-settings).

## 3. Choose a voice and languages

Pick a voice and play its sample right in the builder. Set the
**primary language** the call starts in, plus any **additional
languages** — the agent switches automatically when a caller uses one.
The voice list filters to voices that support every language you've
selected. See [Supported languages](/guides/supported-languages) for
the full catalog (selected additional languages add {/* rate:language */}3¢/min{/* /rate */}).

## 4. Attach tools and knowledge

Four sections on the Config tab give the agent capabilities:

- **Connected apps** — the easiest path:
  [connect Slack, HubSpot, Google & more](/guides/connect-apps) in a
  few clicks, then let your agent use them during calls.
- **API connections** — for any other API,
  [create an API connection](/guides/api-connections) for the actions
  your agent needs (paste a cURL command and the AI wizard drafts the
  tool).
- **Knowledge** — attach a
  [knowledge base](/guides/knowledge-base) the agent can search
  mid-call.
- **MCP servers** — [add an MCP server](/guides/mcp-servers) by URL.

See [Connections](/guides/concepts#connections) for how the four kinds
differ.

Advanced options below the endpoint sections control supervision, connection
tone, tool sounds, who speaks first, voicemail, the call-start consent
announcement, and silence check-ins. See
[Every agent setting](/guides/agent-settings#advanced-call-behavior).

## 5. Watch your all-in rate

The builder shows your **all-in per-minute rate** — engine plus
surcharges — and updates it live as you change settings. No surprises
on the bill.

## 6. Talk to it

Click **Talk** and say hello — your agent answers right in the browser
(it'll ask for mic access). This is the fastest iteration loop:
tweak the prompt, talk, repeat. When you want a caller on the other
end instead of yourself, [run a simulation](/guides/simulate-a-call).

## 7. Deploy

Every edit **autosaves to your draft** — watch for "Saved" in the top
bar. Draft changes aren't live until you click **Deploy**.

Every deploy is snapshotted in the **History** tab: inspect what
changed between versions and restore any previous one. That makes
deploys safe to do often — you can always roll back.

## 8. Connect it to the world

The Config tab's **Phone numbers** and **Web widgets** sections attach
endpoints without leaving the builder — attach an existing number,
get a new ThunderPhone number, import via VoIP, or link a web widget.

---

## Next steps

<CardGroup cols={2}>
  <Card title="Get a phone number" icon="phone" href="/guides/get-a-phone-number">
    ThunderPhone number in seconds, or bring your own via VoIP.
  </Card>
  <Card title="Simulate a call" icon="flask" href="/guides/simulate-a-call">
    An AI caller has a real conversation with your agent.
  </Card>
  <Card title="Review the calls" icon="headset" href="/guides/review-calls">
    Transcripts, recordings, live listen-in, and whisper.
  </Card>
  <Card title="Agents API reference" icon="code" href="/api-reference/agents">
    Create and manage agents programmatically.
  </Card>
  <Card title="Every agent setting" icon="sliders" href="/guides/agent-settings">
    Complete options, ranges, behavior, and pricing.
  </Card>
</CardGroup>
