Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions fern/assistants/examples/inbound-support.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -535,9 +535,9 @@ Read important numbers slowly and clearly.
<Step title="Test your assistant">
At this stage, test the greeting only. Test account answers after you [create and attach the Query tool](#4-create-and-attach-a-query-tool).

The API examples in this step place an outbound call, so outbound calling must be enabled for your phone number and account. First, [assign a phone number to the assistant](#5-assign-a-phone-number-to-an-assistant). Then replace `YOUR_PHONE_NUMBER_ID` with that phone number's ID and `+14155550100` with a phone number you control.
The API examples in this step place an outbound call, which needs a number imported from [Twilio](/phone-numbers/import-twilio), [Telnyx](/telnyx), or [DIDWW](/phone-numbers/didww). Replace `YOUR_PHONE_NUMBER_ID` with the imported number's ID and `+14155550100` with a phone number you control.

If your Vapi phone number is inbound-only, call it from your own phone instead.
With free Vapi numbers, only inbound calls are supported. If you use a free Vapi number, [assign it to the assistant](#5-assign-a-phone-number-to-an-assistant) and call it from your own phone instead. See [Free Vapi numbers](/free-telephony) for details.

<Tabs>
<Tab title="Dashboard">
Expand Down Expand Up @@ -895,7 +895,7 @@ You've configured an inbound support demo that uses a Query tool to answer quest
Consider reading the following guides to further enhance your assistant:

* [**Knowledge bases**](/knowledge-base) - Learn more about knowledge bases to build knowledge-based agents.
* [**External Integrations**](../tools/) - Configure integrations with [Google Calendar](../tools/google-calendar), [Google Sheets](../tools/google-sheets), [Slack](../tools/slack), etc.
* [**External Integrations**](/tools) - Configure integrations with [Google Calendar](/tools/google-calendar), [Google Sheets](/tools/google-sheets), [Slack](/tools/slack), etc.
* [**Squads**](/squads) - Learn how to compose multiple assistants and transfer seamlessly for complex use cases.

<Callout>
Expand Down
94 changes: 67 additions & 27 deletions fern/assistants/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ description: Build your first Vapi assistant, connect it to a phone number, and

## Overview

Create a voice assistant, connect it to a phone number, and make your first calls. You can complete this quickstart in the Dashboard or with the Vapi API.
Create a voice assistant, connect it to a free phone number, and call it. You can complete this quickstart in the Dashboard or with the Vapi API.

**In this quickstart, you'll:**

- Create and test an assistant
- Connect the assistant to a phone number
- Make inbound and outbound calls
- Call your assistant on its new phone number
- Optionally, place an outbound call from an imported number

## Prerequisites

Expand All @@ -22,8 +23,17 @@ Create a voice assistant, connect it to a phone number, and make your first call

## 1. Create an assistant

Start from a blank assistant or from a template. A template includes a first message and a system prompt written for a common use case, so you can test a working conversation right away and edit it to fit your business.

| Template | Assistant | Use it to | Model preset |
|---|---|---|---|
| **Customer Support** | Alex | Resolve product issues and answer customer questions | Balanced |
| **Lead Qualification** | Morgan | Qualify prospects and connect them with sales | High Intelligence |
| **Appointment Scheduler** | Riley | Book, confirm, reschedule, or cancel appointments | Ultra Fast |
| **Info Collector** | Jamie | Gather accurate, complete information from customers | Balanced |

<Note>
By default, when you create an assistant, the transcriber, model, and voice are set to the [Balanced preset](/assistants/model-intelligence/presets#balanced).
A blank assistant uses the [Balanced preset](/assistants/model-intelligence/presets#balanced) for its transcriber, model, and voice. A template uses the preset that best fits its use case. You can [change the preset](/assistants/model-intelligence/presets#apply-a-model-preset) at any time.
</Note>

<Tabs>
Expand All @@ -34,32 +44,51 @@ By default, when you create an assistant, the transcriber, model, and voice are
</Step>

<Step title="Create an assistant">
Select **Create Assistant** to create a blank assistant.

<Note>
To start from a predefined template instead, select the down arrow next to **Create Assistant**, then choose a template.
</Note>
To start from a template, select the down arrow next to **Create Assistant**, then choose a template from the table above. To start from scratch, select **Create Assistant** to create a blank assistant.
</Step>

<Step title="Configure the conversation">
Replace the content in **First Message** and **System Prompt** with the following examples.
<Step title="Configure a blank assistant">
If you started from a template, skip this step. The template already includes a first message, a system prompt, and a model preset.

For a blank assistant:

1. **Choose a model preset.** Under **Model Presets**, choose the preset that sets the transcriber (speech-to-text), model (LLM), and voice (text-to-speech) for your goal. Blank assistants use **Balanced**. See [Model Presets](/assistants/model-intelligence/presets) to compare them.
2. **Write the conversation.** Add a **First Message** and a **System Prompt**. The first message is what the assistant says when the call starts. The system prompt tells it who it is and how to behave. Start with these examples, then adapt them for your use case. For more on writing system prompts, see the [prompting guide](/prompting-guide).

**First message**

```txt title="First message" wordWrap
Hello! How can I help you today?
Hello! Thanks for calling. How can I help you today?
```

**System prompt**

```txt title="System prompt" wordWrap
You are a friendly phone support assistant. Greet the caller and offer help. Keep responses under 30 words. If a transfer is requested, confirm the reason first.
[Identity]
You are Sam, a friendly phone support assistant. Your tone is warm, patient, and professional.

[Response guidelines]
- Keep responses under 30 words.
- Ask one question at a time.
- Speak in plain language. Don't use lists, symbols, or formatting.

[Guardrails]
- Don't make up information. If you don't know an answer, say so.
- Stay on topic. Politely steer unrelated questions back to how you can help.

[Workflow]
1. Greet the caller and ask how you can help.
2. Ask clarifying questions until you understand the request.
3. Answer the question or explain the next step.
4. Ask if there is anything else, then end the call politely.
```

<Frame caption="Configure the assistant's first message and system prompt.">
To edit the system prompt with AI, select **Generate** in the **System Prompt** section, describe the changes you want, then select **Submit edit**. Review the proposed edits, then select **Accept changes**.

<Frame caption="Describe your changes, then select Submit edit.">
<img
src="../static/images/assistants/quickstart/configure-assistant-dashboard.png"
alt="Assistant editor with First Message and System Prompt fields visible and the other assistant names blurred"
src="../static/images/quickstart/dashboard/generate-edit-prompt-dashboard.png"
alt="Edit prompt dialog with a text field for describing changes and Cancel and Submit edit buttons"
/>
</Frame>
</Step>
Expand Down Expand Up @@ -158,11 +187,11 @@ By default, when you create an assistant, the transcriber, model, and voice are
<Step title="Create the phone number">
Enter a three-digit US area code in **Area Code**, then select **Create**.

Your free Vapi number does not require a payment method. You get one free Vapi number, and your Success Package may include more.
Your first free Vapi number doesn't require a payment method. You may be asked to add one when you request more numbers. It can take a few minutes for the number to become active.

<Warning>
Free Vapi phone numbers support US area codes only. For international use, import a number from another provider.
</Warning>
<Note>
With free Vapi numbers, only inbound calls are supported. To make outbound calls, import a number from [Twilio](/phone-numbers/import-twilio), [Telnyx](/telnyx), or [DIDWW](/phone-numbers/didww). See [Free Vapi numbers](/free-telephony) for details, and [Pricing and Success Packages](/billing/pricing-and-success-packages#whats-included) for how many numbers your package includes.
</Note>
</Step>

<Step title="Connect the assistant">
Expand All @@ -188,7 +217,7 @@ By default, when you create an assistant, the transcriber, model, and voice are
}'
```

Copy the `id` from the response. You will use it as `YOUR_PHONE_NUMBER_ID` to make an outbound call.
Copy the `id` from the response to manage the phone number later.
</Step>
</Steps>
</Tab>
Expand All @@ -204,19 +233,30 @@ By default, when you create an assistant, the transcriber, model, and voice are
</Tab>
</Tabs>

## 3. Make your first calls
## 3. Call your assistant

Call the phone number you created from your own phone. Your assistant answers with its first message. A new number can take a few minutes to become active.

Have a short conversation to see how your assistant responds:

### Test an inbound call
- Ask a question your assistant is built to handle.
- Interrupt it while it's speaking to check that it stops and listens.
- Ask something off-topic to see how it steers the conversation back.
- Say goodbye and hang up.

Call the phone number you created. Your assistant answers with its configured first message.
After the call, open [**Logs → Calls**](/observability/logs/call-logs) in the Dashboard to review the transcript, recording, and how the call ended.

### Place an outbound call
## 4. Place an outbound call (optional)

<Note>
With free Vapi numbers, only inbound calls are supported. To make outbound calls, import a number from [Twilio](/phone-numbers/import-twilio), [Telnyx](/telnyx), or [DIDWW](/phone-numbers/didww). See [Free Vapi numbers](/free-telephony) for details.
</Note>

<Tabs>
<Tab title="Dashboard">
<Steps>
<Step title="Open the phone number">
Open the [Dashboard](https://dashboard.vapi.ai), select **Phone Numbers**, then select the phone number that will place the call.
Open the [Dashboard](https://dashboard.vapi.ai), select **Phone Numbers**, then select the imported phone number that will place the call.
</Step>

<Step title="Open the test panel">
Expand Down Expand Up @@ -247,7 +287,7 @@ Call the phone number you created. Your assistant answers with its configured fi
--header "Authorization: Bearer $VAPI_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"phoneNumberId": "YOUR_PHONE_NUMBER_ID",
"phoneNumberId": "YOUR_IMPORTED_PHONE_NUMBER_ID",
"assistantId": "YOUR_ASSISTANT_ID",
"customer": {
"number": "+15551234567"
Expand All @@ -259,7 +299,7 @@ Call the phone number you created. Your assistant answers with its configured fi
<Tab title="TypeScript (Server SDK)">
```typescript
await vapi.calls.create({
phoneNumberId: phoneNumber.id,
phoneNumberId: "YOUR_IMPORTED_PHONE_NUMBER_ID",
assistantId: assistant.id,
customer: { number: "+15551234567" }
});
Expand Down
24 changes: 12 additions & 12 deletions fern/composer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ Composer understands voice agent architecture and Vapi's capabilities. It can cr

**Why use Composer:**

- **Faster development** — Build agents in minutes instead of hours by describing your use case
- **Best practices built in** — Composer applies Vapi best practices automatically
- **Lower barrier to entry** — No need to learn every API parameter or configuration option
- **Troubleshooting support** — Composer can diagnose issues and suggest fixes
- **Faster development**: Build agents in minutes instead of hours by describing your use case
- **Best practices built in**: Composer applies Vapi best practices automatically
- **Lower barrier to entry**: No need to learn every API parameter or configuration option
- **Troubleshooting support**: Composer can diagnose issues and suggest fixes

## Get started

Expand Down Expand Up @@ -59,11 +59,11 @@ Composer understands voice agent architecture and Vapi's capabilities. It can cr

### Limitations

- **Cannot delete resources** — Composer cannot delete assistants, tools, phone numbers, or any other resources. This is an intentional safety measure. Use the dashboard sidebar to delete resources manually.
- **Cannot access external systems** — Composer operates within Vapi and cannot reach your CRM, database, or other third-party systems directly.
- **Cannot make business logic decisions** — You provide the domain knowledge; Composer handles the technical configuration.
- **Cannot test your agent** — You need to test the agent yourself and provide feedback.
- **Cannot deploy to production automatically** — You control when and how changes go live.
- **Cannot delete resources**: Composer cannot delete assistants, tools, phone numbers, or any other resources. This is an intentional safety measure. Use the dashboard sidebar to delete resources manually.
- **Cannot access external systems**: Composer operates within Vapi and cannot reach your CRM, database, or other third-party systems directly.
- **Cannot make business logic decisions**: You provide the domain knowledge; Composer handles the technical configuration.
- **Cannot test your agent**: You need to test the agent yourself and provide feedback.
- **Cannot deploy to production automatically**: You control when and how changes go live.

## Common use cases

Expand Down Expand Up @@ -240,9 +240,9 @@ orders, answer product questions, and handle returns"

Build a basic working agent first, then layer on advanced features:

1. **Phase 1** — Basic conversation flow
2. **Phase 2** — Add integrations (calendar, CRM, knowledge base)
3. **Phase 3** — Add advanced features (custom voices, complex routing)
1. **Phase 1**: Basic conversation flow
2. **Phase 2**: Add integrations (calendar, CRM, knowledge base)
3. **Phase 3**: Add advanced features (custom voices, complex routing)

### Handle one task at a time

Expand Down
3 changes: 3 additions & 0 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ navigation:
- page: Config as code (GitOps)
icon: fa-light fa-code-branch
path: config-as-code.mdx
- page: Path to production
icon: fa-light fa-rocket
path: quickstart/path-to-production.mdx

- section: Assistants
collapsed: open-by-default
Expand Down
18 changes: 9 additions & 9 deletions fern/phone-calling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,41 @@
title: Phone Calling
subtitle: Learn how to create and configure phone numbers with Vapi
slug: phone-calling
description: Create and configure phone numbers in Vapi to place and receive calls, using free US numbers or imported Twilio numbers for international and custom use.
description: Create and configure phone numbers in Vapi. Use a free US number to receive inbound calls, or import a number from a provider to place outbound and international calls.
---

## Overview

<Warning>
Free Vapi phone numbers are only available for US national use and cannot make outbound calls. You get one free Vapi number, which you can request without adding a payment method, and your Success Package may include more. See [Pricing and Success Packages](/billing/pricing-and-success-packages#whats-included).
Free Vapi phone numbers use US area codes, and only inbound calls are supported. To make outbound calls, import a number from [Twilio](/phone-numbers/import-twilio), [Telnyx](/telnyx), or [DIDWW](/phone-numbers/didww). You get one free Vapi number, which you can request without adding a payment method, and your Success Package may include more. See [Pricing and Success Packages](/billing/pricing-and-success-packages#whats-included).
</Warning>

You can create and configure phone numbers with Vapi to place and receive calls. Vapi provides free phone numbers for national (US) use only—international numbers are not free. For international or custom use, you can import your own numbers from Twilio.
You can create and configure phone numbers with Vapi to place and receive calls. Vapi provides free US phone numbers for inbound calls. For outbound, international, or custom use, import your own numbers from a provider.

## Setting up a phone number

You can set up a phone number to place and receive calls in two ways:

- **Create a free US phone number:**
- Use the Vapi dashboard or the [`/phone-numbers`](/api-reference/phone-numbers/create) endpoint.
- Free numbers are only available for US national use.
- With free numbers, only inbound calls are supported. See [Free Vapi numbers](/free-telephony).

- **Import your own number (for international or custom use):**
- Use the dashboard or the [`/phone-numbers/import`](/api-reference/phone-numbers/import-twilio-number) endpoint.
- This uses your Twilio credentials to verify and configure the number with Vapi services.
- Use the dashboard or the [Phone Numbers API](/api-reference/phone-numbers/create).
- Follow the guide for your provider: [Twilio](/phone-numbers/import-twilio), [Telnyx](/telnyx), [DIDWW](/phone-numbers/didww), or a [SIP trunk](/advanced/sip/sip-trunk).

## Outbound calls

You can place an outbound call from one of your phone numbers using the [`/call`](/api-reference/calls/create-phone-call) endpoint.
- If the system message will be different with every call, specify a temporary assistant in the `assistant` field.
- To reuse an assistant, specify its ID in the `assistantId` field.
- [Read more about outbound calls](/phone-calling/outbound-calls)
- Note that outbound calling is not supported on free Vapi numbers at this time.
- [Read more about outbound calls](/calls/outbound-calling)
- Outbound calls aren't supported on free Vapi numbers. Use an imported number.

## Inbound calls

You can provide an `assistantId` to a phone number, and it will use that assistant for inbound calls.
- To specify the assistant based on the caller's phone number, leave the `assistantId` blank. Vapi will attempt to retrieve the assistant from your server using your [Server URL](/server-url#retrieving-assistants).
- To specify the assistant based on the caller's phone number, leave the `assistantId` blank. Vapi will attempt to retrieve the assistant from your server using your [Server URL](/server-url/events#retrieving-assistants).

## Video tutorial: Importing numbers from Twilio for international calls

Expand Down
Loading
Loading