# AI Prompt Editor
Source: https://docs.autocalls.ai/ai-assistants/ai-prompt-editor
Edit and improve your assistant's prompts using AI-powered suggestions through a conversational interface
The AI Prompt Editor is an intelligent tool that allows you to edit and improve your AI assistant's prompts using natural language. Instead of manually editing text, you can chat with an AI assistant that understands your requests and suggests intelligent modifications.
## Overview
The AI Prompt Editor provides:
* **Conversational editing** - Describe changes in plain language
* **Smart suggestions** - AI understands context and makes relevant changes
* **Review before apply** - Accept or reject each change individually
* **Variable management** - Easily manage pre-call and post-call data
* **Template library** - Start with proven prompt templates
## Getting Started
Navigate to **Assistants** in the sidebar and click on the assistant you want to edit.
In the edit form, scroll to the **System Prompt** section and find the **AI Prompt Editor** tab.
Click the **Launch AI Prompt Editor** button. A modal window will open with the editor interface.
You must save your assistant at least once before you can use the AI Prompt Editor.
## Interface Overview
The AI Prompt Editor has three main areas:
### Chat Panel (Left Side)
This is where you interact with the AI:
* Type your requests in the input box at the bottom
* View conversation history above
* Use quick suggestion chips for common actions:
* **Make it more concise** - Shorten the prompt
* **Add more detail** - Expand with specifics
* **Improve clarity** - Make instructions clearer
* **Add instructions** - Add new behavioral guidelines
### Editor Panel (Right Side)
This shows your current prompt with two tabs:
* **System Prompt** - The main instructions for your assistant
* **Initial Message** - The greeting message when calls start
Toggle between **Edit** mode (textarea) and **Preview** mode (formatted view with diff highlights).
### Side Tabs
* **Variables** - Manage pre-call data variables
* **Post-Call** - Define data to collect after calls
## Using the Chat
### Making Requests
Simply describe what you want to change:
**You:** "Make the tone more friendly and casual"
**AI:** The AI will suggest changes to make greetings warmer, use more conversational language, and soften formal phrases.
**You:** "Add information about our return policy - 30 days no questions asked"
**AI:** The AI will find the appropriate place in your prompt and add the return policy details.
**You:** "Add instructions for handling angry customers"
**AI:** The AI will add behavioral guidelines for de-escalation and when to transfer to a human.
### Tips for Better Results
* **Be specific** - "Add a 10% discount mention" is better than "add discount info"
* **Provide context** - "When asked about pricing, mention..." gives AI better understanding
* **One change at a time** - Break complex changes into multiple requests
## Reviewing Changes
When the AI suggests changes, they appear in the diff view:
* **Green highlighting** - New text being added
* **Red highlighting** - Text being removed
* **Blue highlighting** - Text being modified
### Accept or Reject Changes
Each change has two buttons:
* **✓ Accept** - Apply this specific change
* **✗ Reject** - Discard this change
You can also use bulk actions:
* **Accept All** - Apply all pending changes
* **Reject All** - Discard all pending changes
Always review changes before accepting. The AI makes intelligent suggestions, but you know your business best.
## Variables
Variables allow you to personalize calls with dynamic data.
### Adding Variables
1. Click the **Variables** tab
2. Click **Add Variable**
3. Enter a name (e.g., `customer_name`, `appointment_time`)
4. Set a default value
### Using Variables in Prompts
Type variables directly in your prompt using curly braces: `{variable_name}`
**Example prompt:**
```
Hello {customer_name}, I'm calling from {company_name} about your appointment on {appointment_date}.
```
## Post-Call Schema
Define structured data you want to collect during or after calls.
### Adding Post-Call Fields
1. Click the **Post-Call** tab
2. Click **Add Field**
3. Configure:
* **Name** - Field identifier (e.g., `meeting_scheduled`)
* **Type** - `string`, `number`, or `boolean`
* **Description** - What this field captures
### Example Fields
| Name | Type | Description |
| ------------------- | ------- | ------------------------------------ |
| `meeting_scheduled` | boolean | Whether a meeting was booked |
| `interest_level` | string | Customer's interest: hot, warm, cold |
| `callback_time` | string | Preferred callback date/time |
| `objection_reason` | string | Main objection if not interested |
The AI can suggest post-call fields based on your prompt. Just ask: "What data should I collect from these calls?"
## Templates
When you first open the AI Prompt Editor, you can choose to start with a template:
* **Continue with existing** - Keep your current prompt
* **Start from scratch** - Begin with a blank prompt
* **Start with template** - Choose from pre-built templates
Templates are organized by use case:
* Sales calls
* Customer support
* Appointment scheduling
* Surveys and feedback
* Lead qualification
## Saving Your Work
Click the **Save** button in the top-right to save all changes to your assistant.
The editor auto-detects unsaved changes. If you try to close with unsaved work, you'll be prompted to save or discard.
## Best Practices
Templates provide proven starting points. Customize rather than starting from zero.
Make small changes, test, and refine. Don't overhaul everything at once.
The AI is helpful but not perfect. Always review suggestions before accepting.
Make test calls after changes to verify the assistant behaves as expected.
## Related Resources
* [System Prompts Guide](/ai-assistants/system-prompt) - Deep dive into prompt writing
* [Flow Builder](/ai-assistants/flow-builder) - Visual alternative for conversation design
* [Testing Your Assistant](/ai-assistants/testing) - How to test your changes
# Assistant best practices
Source: https://docs.autocalls.ai/ai-assistants/assistant-configuration
Quick guide to fine-tune mode, transcriber, model, and other settings for the best call experience.
> **Last updated:** September 5, 2026
Getting great results often comes down to **picking the right engine settings**. Use this checklist when configuring an assistant:
## 1. Pick a Mode
| Mode | Why choose it? | Notes |
| --------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Dualplex (Beta)** | Fast turn-taking + premium/cloned voices | Recommended default. Pair with **GPT Realtime**. Gemini is Speech-to-Speech only. |
| **Speech-to-Speech (Multimodal)** | Fastest turn-taking & most natural flow | Recommended model: **GPT‑5 Realtime**. |
| **Pipeline** | Maximum control over voice & long-form replies | Recommended model: **GPT‑5 Mini**. If you select Pipeline, continue to the **Transcriber** step below. |
Want to know more about the differences between the modes? Read the Assistant modes guide.
Experiment with all three modes: record the same scenario in each and compare response time and caller satisfaction.
## 2. Choose a Transcriber (Pipeline only)
| Transcriber | Accuracy | Latency | Best for |
| ------------ | -------- | --------------- | -------------------------------------------------------------------------------- |
| **Azure** | ⭐⭐⭐⭐ | ⏱️⏱️⏱️ (slower) | When you need the highest transcription fidelity. |
| **Gladia** | ⭐⭐⭐ | ⏱️ (faster) | Good all-rounder for most languages. |
| **Deepgram** | ⭐⭐⭐ | ⏱️ (faster) | Another solid choice—test which performs better for your language & audio setup. |
> **Tip:** Different languages, accents, or background noise can impact each engine differently. Run a quick A/B test and keep the best performer.
## 3. Select an LLM Model
| Model | Strengths | Trade-offs |
| -------------------------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| **GPT-5 Mini** | Balanced reasoning with low latency | May be slower than realtime models for rapid turn-taking. |
| **GPT-5 Realtime** | Designed for ultra-low-latency voice turns | Best for **Speech-to-Speech** and **Dualplex**. |
| **GPT-4o** | Strong reasoning and multimodal understanding | Higher latency. |
| **Gemini Flash 2.0 / 2.5** | Ultra-fast native audio for voice turns | **Speech-to-Speech** only. Dualplex needs GPT Realtime so TTS can speak. |
If speed is critical, use **GPT Realtime** for Dualplex or Speech-to-Speech, or **Gemini** in Speech-to-Speech. For richer reasoning, use **GPT-4o** or **GPT-5 Mini** and offset latency by using filler audios.
## 4. Noise Cancellation
If callers are on speaker phone or in a quiet environment, keep **noise cancellation ON**. If your call volume is low or some words are "clipped," **turn it OFF** so the transcriber gets the full waveform.
If your assistant is not hearing you well, you can try to turn off noise cancellation.
## 5. Conversation Timers
| Parameter | Recommended | Why |
| ------------------------ | ----------- | ------------------------------------------------------------------ |
| **Re-engagement** | `≈ 30 s` | Gives callers enough time to think. Lower values can feel pushy. |
| **Max silence duration** | `≈ 60 s` | Prevents premature hang-ups while still ending truly silent calls. |
Test different values in real calls—too low can interrupt, too high leaves awkward gaps.
## 6. Initial Message
| Mode | How it's used | Best practice |
| -------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **Pipeline** | Read **exactly** as written (converted by TTS). | Write the greeting verbatim: "Hello, this is Alex from …". |
| **Dualplex** | Read **exactly** as written (rendered via ElevenLabs TTS). | Write the greeting verbatim, then select your cloned voice. |
| **Speech-to-Speech** | Interpreted as a **prompt** by the model. | Include instructions like "Greet the customer and say …" *or* prepend `say exactly: ` to ensure literal output. |
## 7. Ambient sound
Enabled by default, ambient sound is a feature that adds background noise to the assistant's voice.
If the assistant is not hearing you well, you can try to turn off ambient sound or turn the volume lower.
## 8. Endpointing sliders
**Control when your assistant starts talking** with the endpointing sensitivity slider at the bottom of assistant settings.
| Setting | Effect | Use when |
| ---------------------- | --------------------------------------------------------- | ------------------------------------------ |
| **Lower sensitivity** | Assistant responds **faster** after caller stops speaking | You want snappy, quick-turn conversations |
| **Higher sensitivity** | Assistant waits **longer** before responding | Callers give longer, more detailed replies |
**Pro tip:** If your assistant cuts off callers mid-sentence, **increase** the sensitivity. If responses feel sluggish, **decrease** it.
## 9. Debug using call transcript
If you are having issues with your assistant, you can use the call transcript to debug the issue.
1. Go to the Call history page.
2. Click on the last call you tested
3. The call transcript will be shown including function calls and its parameters.
## 10. Still have questions?
If you have any questions, please contact our support team via the chat widget inside the app.
Test different settings with real calls—the right balance depends on your conversation flow and caller behavior patterns.
***
Need a complete list of every toggle and slider? See the full
Assistant settings reference.
# Assistant Modes
Source: https://docs.autocalls.ai/ai-assistants/assistant-modes
Understand the three voice generation modes available for your AI assistants and when to use each one.
AI assistants on Autocalls.ai can speak in **three distinct modes**. Each mode determines how a caller's speech is understood and how the assistant's reply is generated:
Choosing the right mode can improve response time, naturalness, and overall call experience.
## 1. Pipeline
| | |
| ---------------- | ---------------------------------------------------------- |
| **Label in UI** | `Pipeline` |
| **How it works** | Speech-to-Text → LLM → Text-to-Speech |
| **Latency** | \~800 – 1500 ms (depends on language & model) |
| **Best for** | Complex reasoning, dynamic prompts, multi-sentence replies |
Pipeline mode first transcribes the caller's words into text, runs that text through the language model, then converts the response back to audio. It's a tried-and-true approach that offers maximum flexibility:
* Supports **all voices** in the library (including custom-cloned voices).
* Handles **long-form answers** or paragraph-style responses well.
* Allows the LLM to **inject variables** and reference earlier context cleanly.
### When to choose Pipeline
1. You need rich, multi-sentence answers (e.g.
support queries, detailed explanations).
2. The assistant must reason over **structured data** or complex prompts.
3. You prefer absolute control of the spoken voice (clone or brand voice).
## 2. Speech-to-Speech (Multimodal)
| | |
| ---------------- | ------------------------------------------------------------- |
| **Label in UI** | `Speech-to-speech` |
| **How it works** | Direct **speech-to-speech** generation (no intermediate text) |
| **Latency** | \~300 – 600 ms (ultra low) |
| **Best for** | Natural back-and-forth, short & reactive replies |
Speech-to-speech mode skips separate transcription and TTS. Instead, it uses a **multimodal model** that listens and speaks directly, producing more conversational flow:
* **Fast turn-taking** – callers experience near-instant responses.
* Generates **more expressive prosody** natively (intonation, fillers).
* Currently supports a **limited voice set**, but more are added regularly.
### When to choose Speech-to-Speech
1. The conversation needs to feel **snappy** (sales, booking confirmations).
2. Your replies are generally **short sentences** or quick acknowledgements.
3. You're okay with the system-provided voice options for faster interaction.
Speech-to-speech is evolving rapidly. If you need a custom cloned voice with low latency, try **Dualplex**.
## 3. Dualplex (Beta)
| | |
| ---------------- | ------------------------------------------------------------------ |
| **Label in UI** | `Dualplex` |
| **How it works** | Multimodal STT + LLM (speech-to-speech) with ElevenLabs TTS output |
| **Latency** | Low (varies by voice and model) |
| **Best for** | Fast, natural replies with high-quality/brand voices (cloned) |
Dualplex blends the responsiveness of speech-to-speech with the premium voices and cloning from ElevenLabs used in Pipeline. The assistant uses the multimodal model to understand the caller and plan the reply, then renders the final speech through ElevenLabs for consistent, high‑fidelity output.
* **Near-instant turn-taking** similar to speech-to-speech.
* Access to **ElevenLabs** voice library, including **custom-cloned voices**.
* Great for **short to medium** replies with expressive prosody.
* **Recommended default** for most use-cases today; currently in **Beta**.
* Use a **GPT Realtime** model. Gemini native-audio models only work in Speech-to-speech.
### When to choose Dualplex
1. You want fast back-and-forth but need a branded or cloned voice.
2. You want more expressive delivery without giving up precise voice choice.
3. You're comfortable using a new feature that is still in Beta.
## Switching modes
You can pick the mode for each assistant in **Assistant → Settings → Voice Engine**. Test all three modes to see which delivers the best balance of speed and quality for your use-case. `Dualplex` is currently labeled **Beta**.
***
**Pro Tip:** Record two calls – one in each mode – and compare the caller's perceived latency and engagement level to decide which fits your flow.
# Cal.com Appointment Scheduling
Source: https://docs.autocalls.ai/ai-assistants/cal-com-scheduling
Enable your AI assistant to schedule appointments using Cal.com
Enable your AI assistant to schedule meetings using Cal.com integration. The system automatically configures booking fields for you.
## Setup
### 1. Get API Key
1. Log in to [Cal.com](https://cal.com/)
2. Go to **Settings** → **Developer** → **API Keys**
3. Create a new API key and copy it
### 2. Select Your Region
Cal.com offers different API regions. Choose the one that matches your Cal.com account:
| Region | API Endpoint |
| ---------------- | --------------------------------- |
| **US** (default) | `api.cal.com` |
| **EU** | `api.cal.eu` |
| **Custom** | Your self-hosted Cal.com endpoint |
Select your region in the Cal.com configuration panel before connecting. If you're unsure, the US endpoint is the default.
### 3. Connect Cal.com
1. In your assistant settings → **Tools** tab → **Appointment Scheduling**
2. Select **Cal.com** from calendar type
3. Choose your API region
4. Paste your API key
5. Select an event from the dropdown
### 4. Sync Event
Click the **"Sync Event"** button to automatically configure booking fields.
The sync automatically reads your event type's custom fields and configures them for the AI assistant. Name, email, and phone are set as required. All other custom booking fields are imported automatically.
## Event Types
### Personal Events
Select from your personal event types (e.g., 15-minute intro call, 30-minute consultation).
### Team Events
You can also book into **team event types**. When your API key has access to team calendars, team events appear in the event dropdown grouped separately from personal events.
Team events are useful when you want the AI to book meetings that get distributed across your team members based on their availability.
## Dynamic Booking Fields
When you sync an event, the system automatically reads all custom booking fields configured on that event type in Cal.com. This means:
* **No manual field configuration** — fields are fetched directly from your Cal.com event type
* **Custom fields supported** — any custom fields you add to your Cal.com event type are automatically available
* **Auto-refresh on sync** — click "Sync Event" again if you change your Cal.com event's booking fields
## Multiple Calendars
Click **"+"** next to Appointment Scheduling to add more calendars (e.g., 15min, 30min meetings).
## Email Setup
For calendar invites to work:
1. Define `email` in assistant [input variables](/ai-assistants/settings/prompt-and-tools#call-variables)
2. Pass customer email when creating leads
The phone number is automatically included after sync.
## Backward Compatibility
If you already have a Cal.com integration configured, your existing settings continue to work without changes. The region defaults to US, and existing field configurations are preserved. You can optionally re-sync to take advantage of dynamic booking fields.
## Troubleshooting
**Invalid API Key:** Verify it's active in Cal.com settings and includes `cal_live_` prefix
**Sync Failed:** Click **"Troubleshoot"** button to reset fields
**No Invites Sent:** Ensure `email` variable is defined and passed with leads
**Field Errors:** Use "Troubleshoot" to reset. Only name, email, phone should be required.
**Wrong Region:** If you get authentication errors, check that you selected the correct region (EU accounts must use the EU endpoint).
For detailed troubleshooting, see [Cal.com Issues](/troubleshooting/cal-com).
## Testing
1. Make a test call and request a meeting
2. Verify booking appears in Cal.com
3. Check calendar invitation email was received
# Calendly Appointment Scheduling
Source: https://docs.autocalls.ai/ai-assistants/calendly-scheduling
Enable your AI assistant to schedule appointments using Calendly
Enable your AI assistant to schedule meetings using Calendly integration. The AI will check availability and book appointments directly during calls.
## Prerequisites
* An active Calendly account
* At least one active event type configured in Calendly
## Setup
### 1. Connect Calendly
1. In your assistant settings, go to **Tools** tab → **Appointment Scheduling**
2. Select **Calendly** as the calendar type
3. Click **Connect to Calendly**
4. Authorize the application on the Calendly OAuth page
5. You'll be redirected back to your assistant settings
If you have issues connecting, try using an **incognito/private browser window** to resolve authentication conflicts.
### 2. Select Event Type
1. Once connected, click **"Load Events"** to fetch your Calendly event types
2. Select the event type you want the AI to use for bookings
3. Save your assistant
### 3. Configure Location in Calendly
Your Calendly event type's location setting must be compatible with the voice agent.
1. Go to [calendly.com](https://calendly.com) → **Event Types**
2. Edit the event type linked to your assistant
3. In the **Location** section, set it to one of:
* **"Custom"** — recommended, works in all cases
* **"Phone Call" → "Inbound call"** — also works for voice AI
If your event type uses only video conferencing (Google Meet, Zoom, Teams), bookings will fail. The voice agent cannot generate meeting links. Either switch to "Custom" or add it as an additional location option.
## Multiple Calendars
Click **"+"** next to Appointment Scheduling to add more calendar tools (e.g., different event types for different purposes). Use the "When to schedule" description to help the AI pick the right calendar.
## Organization Accounts
If your Calendly account is part of an organization:
* **Admin/Owner accounts** can see all event types across team members, including Round Robin and Collective events
* **Regular members** can only see their own event types
## Testing
1. Make a test call and request to schedule a meeting
2. Verify the booking appears in your Calendly dashboard
3. Check that the calendar invitation was sent
For troubleshooting, see [Calendly Issues](/troubleshooting/calendly).
# Custom Mid-Call Tools
Source: https://docs.autocalls.ai/ai-assistants/custom-tools
Learn how to create and configure custom API integrations that your AI assistant can use during calls
Custom Mid-Call Tools let your AI assistant interact with external systems
during calls. Whether checking inventory, verifying customer data, or fetching
real-time information, these tools make your AI more powerful and connected.
## Overview
Custom Mid-Call Tools enable your AI assistant to:
* Make real-time API calls during conversations
* Fetch or submit data to your systems
* Make informed decisions based on live data
* Provide accurate, up-to-date information to callers
- No coding required - just configure the API endpoint and parameters - AI
automatically knows when and how to use the tools - Real-time data access
during calls - Seamless integration with your existing systems
Mid-call tools and [MCP servers](/ai-assistants/mcp-servers) both live under the
**Mid call tools / MCP** page in the sidebar. Use a mid-call tool for a single
HTTP endpoint you define by hand, and an MCP server to connect a remote server
that exposes many tools at once.
## Tool types
When you create a tool you choose one of two types:
Call **your own API** directly. You set the URL, method, headers, parameters
and (optionally) a static body. Best when you already have an endpoint.
Autocalls **creates a linked flow for you** in the
[Automation Platform](/automation-platform/introduction). The tool's endpoint
is generated and locked automatically — you just build the logic in the flow
and end with a **Return Response** step. Best for no-code, multi-step logic.
## Setting Up Your Tool
### 1. Basic Configuration
Navigate to **Mid call tools** and click **Create Mid-Call Tool**
Fill in the essential details:
* **Name**: Letters, numbers and underscores, starting with a letter or underscore (up to **64 characters**, e.g., `check_order_status`)
* **Description**: Explain when and how the AI should use this tool
* **Endpoint**: Your API URL (e.g., `https://api.yourcompany.com/orders`)
* **Timeout**: How long to wait for responses (1–30 seconds)
* **Method**: Choose GET, POST, PUT, PATCH, or DELETE
* **Body format**: For write methods (POST/PUT/PATCH), send the body as **JSON** (default) or **form-encoded** (`application/x-www-form-urlencoded`)
Common headers you might need:
```yaml theme={null}
Content-Type: application/json
Authorization: Bearer your_token
```
### 2. Variable Configuration
These are the pieces of information your AI will collect during the call:
```yaml theme={null}
Name: order_number
Type: string
Description: "10-digit order number from the customer"
```
Add format requirements in the description:
```yaml theme={null}
"Date in dd/mm/yyyy format"
"Phone number without spaces"
"Email address for confirmation"
```
## Understanding Parameter Types
Text values like names, addresses, or reference numbers
```yaml theme={null}
Type: string
Examples: "John Doe", "123 Main St"
```
Whole numbers like quantities or IDs
```yaml theme={null}
Type: number
Examples: 42, 1500
```
Decimal numbers like prices or amounts
```yaml theme={null}
Type: float
Examples: 19.99, 4.5
```
True/false values for yes/no situations
```yaml theme={null}
Type: boolean
Examples: true, false
```
Each parameter can be marked **required** or optional. Optional parameters are
only sent when the AI actually collected a value, so your endpoint won't receive
empty fields. Add format hints in the description (e.g. `"Date in dd/mm/yyyy"`,
`"Phone without spaces"`).
## Static fields
Static fields are fixed key/value pairs that are **always sent** with every
request — the AI never changes them. Use them for constants like a tenant id, a
channel, or a source tag.
```yaml theme={null}
source: autocalls
tenant: acme
channel: sms
```
Static field **values** also support [system variables](#system-variables--dynamic-values)
(e.g. set `caller` to `{{customer_phone}}`).
## System variables & dynamic values
There are two ways to inject dynamic data into your tool:
Wrapped in **single braces** `{param}`. Replaced with the value the AI
collected during the conversation. Used in the URL path/query.
```yaml theme={null}
https://api.example.com/orders/{order_id}
```
Wrapped in **double braces** `{{variable}}`. Filled in automatically by the
platform at call time. Usable in the **URL**, **header values**, and
**static field values**.
```yaml theme={null}
Authorization: Bearer {{crm_key}}
```
These system variables are injected automatically — no setup needed:
| Variable | Value |
| --------------------- | -------------------------------------------------------------------------------------------- |
| `{{customer_phone}}` | The other party's phone number (caller for inbound, callee for outbound). Empty on web/chat. |
| `{{assistant_phone}}` | The assistant's own phone number, if it has one. |
| `{{assistant_id}}` | The assistant's unique ID. |
| `{{assistant_name}}` | The assistant's name. |
| `{{current_date}}` | Current date in the assistant's timezone (e.g. `2026-06-15`). |
| `{{current_time}}` | Current time in the assistant's timezone (e.g. `14:30`). |
Any custom **account variables** you define are also available as `{{name}}` and
can be used the same way.
## Dynamic Endpoints
When using variables in your endpoint URL, make sure to enclose them in curly
braces and use the exact parameter name.
You can make your endpoints dynamic using variables:
```yaml theme={null}
Basic URL:
https://api.example.com/orders/status
With Variables:
https://api.example.com/orders/{order_id}/status
```
The AI will automatically replace `{order_id}` with the actual value collected during the conversation.
## Testing Made Easy
Click **Test tool** to fire a real request with realistic sample data:
* **String** parameters: `"Sample data"`
* **Number** parameters: `42`
* **Float** parameters: `19.99`
* **Boolean** parameters: `true`
* **System variables** like `{{customer_phone}}` are filled with realistic placeholders (e.g. `+1234567890`, the assistant name/id)
You'll see the request data, response code and body, helping you verify everything
works before going live.
Automation Platform tools don't have a **Test tool** button — you test them by
running the linked flow inside the Automation Platform.
## Automation Platform tools
Need more complex logic? Create an **Automation Platform** tool and Autocalls
builds and links the flow for you — no manual webhook setup required.
When you set the tool type to **Automation Platform**, Autocalls automatically
creates a connected flow in the [Automation Platform](/automation-platform/introduction)
and wires the tool's endpoint to it. The endpoint and method are **generated and
locked**, so they can't accidentally be changed.
Choose the **Automation Platform** type, give the tool a name, description and
parameters. On save, the linked flow is created automatically.
On the tool's edit page, the connection card shows the flow status
(**Live**/**Disabled**) and an **Open flow in Automation Platform** button.
The flow starts from a webhook trigger and ends with a **Return Response**
step.
Add steps between the trigger and the response — API calls, CRM updates,
branching, data transforms — then keep a **Return Response** step so the AI
receives a result.
If you change the tool's parameters or static fields, use **Resync sample
data** so the flow's trigger sample matches. If the initial flow creation ever
fails, a **Retry flow creation** button appears on the edit page.
This lets you:
* Transform data before/after API calls
* Make multiple API calls in sequence
* Apply complex business logic
* Handle errors gracefully
Prefer to wire it up yourself? You can still use a plain **HTTP request** tool
pointed at an existing Automation Platform webhook URL with `/sync` appended
(e.g. `https://automate.autocalls.ai/api/v1/webhooks/abc123/sync`).
## Real-World Examples
```yaml theme={null}
Name: check_order
Endpoint: https://api.yourshop.com/orders/{order_number}
Parameters:
- Name: order_number
Type: string
Description: "Order reference (format: ORD-XXXXX)"
```
The AI will:
1. Ask for the order number
2. Fetch the status
3. Explain delivery dates and status to the customer
```yaml theme={null}
Name: check_slots
Endpoint: https://api.calendar.com/availability
Parameters:
- Name: service
Type: string
Description: "Service type (haircut, massage, consultation)"
- Name: date
Type: string
Description: "Preferred date (dd/mm/yyyy)"
```
The AI will:
1. Ask about the desired service
2. Get preferred date
3. Show available time slots
```yaml theme={null}
Name: verify_customer
Endpoint: https://api.crm.com/verify
Parameters:
- Name: phone
Type: string
Description: "10-digit phone number"
- Name: email
Type: string
Description: "Email address for verification"
```
The AI will:
1. Collect contact details
2. Verify against your CRM
3. Proceed based on verification status
## Configuring Your AI
The AI needs clear instructions in its system prompt to effectively use your
custom tools.
Example prompt section:
```yaml theme={null}
When to use check_order tool:
1. Customer asks about order status
2. Mentions tracking or delivery
3. Wants to know where their package is
How to use it:
1. Ask for order number if not provided
2. Verify format (ORD-XXXXX)
3. Use tool to fetch status
4. Explain results in simple terms
```
Test your tools with various conversation flows to ensure the AI handles all
scenarios smoothly. Start with simple test calls before going live.
# Filler Audio
Source: https://docs.autocalls.ai/ai-assistants/filler-audio
Learn how to use filler audio to create more natural conversations with your AI assistant
Filler audio adds natural conversation sounds (like "hmm" or "one moment") while your AI assistant processes responses. This creates a more human-like interaction by eliminating awkward silences.
## How It Works
When enabled, your AI assistant will:
* Use short audio fillers during processing time
* Maintain engagement while formulating responses
* Signal active listening to the caller
## Benefits
1. **Improved Conversation Flow**
* Eliminates dead air
* Keeps callers engaged
* Reduces hang-ups
* Creates natural dialogue rhythm
2. **Enhanced User Experience**
* More human-like interaction
* Less awkward waiting
* Better caller retention
* Increased trust
## Setup
1. Go to your [AI assistant settings](/ai-assistants/settings/general#audio-enhancement-settings)
2. Find the "Filler Audio" option
3. Toggle it on
4. Save your changes
## Best Practices
### Combine with Fast Engine
* Use filler audio with the Fast Engine setting
* Creates the most natural conversation flow
* Minimizes perceived response time
### Use Cases
* **Sales Calls**: Keep prospects engaged
* **Customer Service**: Show active listening
* **Lead Qualification**: Maintain natural flow
## Testing
After enabling filler audio:
1. Make a test call
2. Listen for natural transition sounds
3. Verify timing and appropriateness
4. Adjust if needed
***
**Tip:** Start with filler audio enabled - you can always disable it if it doesn't suit your use case.
# Flow Builder
Source: https://docs.autocalls.ai/ai-assistants/flow-builder
Design conversation flows visually with an intuitive drag-and-drop interface
Flow Builder is a visual, drag-and-drop conversation flow editor that lets you design AI assistant scripts without writing code. Create multi-step conversation flows by connecting nodes that represent different actions and decision points.
## Overview
Flow Builder provides:
* **Visual design** - Drag-and-drop nodes on a canvas
* **Multiple node types** - Messages, prompts, actions, and more
* **Branching logic** - Create different paths based on responses
* **Settings panel** - Configure agent personality and behavior
* **Import/Export** - Save and share flows as JSON files
## When to Use Flow Builder
* Structured conversation scripts
* Multi-path decision trees
* Complex call flows with branches
* Visual thinkers who prefer diagrams
* Simple, linear conversations
* Highly dynamic AI responses
* Quick prompt iterations
* Text-focused editing
## Getting Started
Navigate to **Assistants** and click on the assistant you want to edit.
In the edit form, scroll to the **System Prompt** section and click the **Flow Builder** tab.
Click **Launch Flow Builder**. A full-screen editor will open.
* **Continue with existing** - Edit your current flow
* **Start from scratch** - Begin with just a Start node
* **Start with template** - Load a pre-built flow template
## Interface Overview
### Canvas Area (Center)
The main workspace where you build your flow:
* **Nodes** - Drag to reposition
* **Connections** - Lines showing flow between nodes
* **Grid background** - Helps with alignment
* **Zoom controls** - Zoom in/out and fit to view
* **Pan** - Click and drag on empty space to move around
### Bottom Toolbar
Quick actions for managing your flow:
| Button | Action |
| -------------- | ---------------------------------- |
| ⚡ Auto Layout | Automatically arrange nodes neatly |
| 📋 Duplicate | Copy selected node |
| 🗑️ Delete | Remove selected node or connection |
| **+ Add Node** | Add a new node to the canvas |
### Settings Panel (Right Side)
Configure your assistant's personality and behavior:
* **Agent Name** - The name your AI will use
* **Agent Type** - Sales, Support, Survey, etc.
* **Language** - Spoken language for calls
* **Assertiveness** - How pushy the AI should be
* **Humor** - Level of humor in responses
* **Variables** - Pre-call data fields
* **Post-Call Fields** - Data to collect after calls
## Node Types
Flow Builder has 5 node types, each with a specific purpose:
### Start Node (Green)
The entry point of every conversation. Every flow must have exactly one Start node.
**Properties:**
* **Greeting** - The initial message when the call begins
**Example:** "Hi, this is Sarah from Acme Insurance. How are you today?"
### Speak Node (Blue)
Delivers a pre-written message exactly as specified. Use when you need precise wording.
**Properties:**
* **Text** - The exact message to speak
* **Outcomes** - Different paths based on customer response
**Example:** "We're offering a limited-time 20% discount on all plans. Would you like to hear more?"
### Prompt Node (Purple)
Gives the AI instructions on how to respond. More flexible than Speak nodes - the AI generates contextual responses.
**Properties:**
* **Prompt** - Instructions for the AI
* **Outcomes** - Different paths based on response categories
**Example prompt:** "Ask the customer about their current insurance coverage. Be conversational and empathetic. Listen for mentions of their family size, budget concerns, or timeline."
### Action Node (Orange)
Executes special actions during the call.
**Action Types:**
* **Call Forward** - Transfer to another number
* **Book Appointment** - Schedule using connected calendar
* **Custom Action** - Trigger a custom mid-call tool
**Example:** Forward to sales team at +1-555-123-4567 when customer is ready to purchase.
### End Node (Red)
Terminates the call or transfers to another destination.
**End Types:**
* **End Call** - Hang up with a closing message
* **Forward Call** - Transfer to a phone number
* **Transfer Agent** - Hand off to another assistant
**Example closing:** "Thank you for your time today. Have a great day!"
## Working with Nodes
### Adding Nodes
1. Click **+ Add Node** in the bottom toolbar
2. Select the node type from the dropdown
3. The node appears on the canvas
4. Drag it to your desired position
### Connecting Nodes
1. Hover over a node's bottom edge to see the **output handle** (small circle)
2. Click and drag from the output handle
3. Connect to another node's **input handle** (top edge)
4. Release to create the connection
### Editing Nodes
1. Click on any node to select it
2. The node's properties appear in a panel
3. Edit the text, prompt, or settings
4. Changes save automatically to the canvas
### Deleting Nodes
* Select a node and press **Delete** key, or
* Select a node and click the 🗑️ button in the toolbar
The Start node cannot be deleted. Every flow must have one Start node.
## Outcomes (Multiple Paths)
Speak and Prompt nodes can have multiple **outcomes** - different paths based on how the customer responds.
### Adding Outcomes
1. Select a Speak or Prompt node
2. In the properties panel, find **Outcomes**
3. Click **Add Outcome**
4. Name the outcome (e.g., "Interested", "Not interested", "Wants callback")
### Connecting Outcomes
Each outcome appears as a colored dot at the bottom of the node. Connect each outcome to a different destination node to create branching logic.
**Example flow:**
```
[Start] → [Ask about interest]
↓
[Prompt: "Ask if interested"]
↓
┌─────────┼─────────┐
↓ ↓ ↓
[Interested] [Maybe] [Not Interested]
↓ ↓ ↓
[Book Demo] [Send Info] [Thank & End]
```
## Settings Panel
### Agent Identity
| Setting | Description |
| -------------- | ------------------------------------------------ |
| **Agent Name** | Name the AI uses to introduce itself |
| **Agent Type** | Preset personality: Sales, Support, Survey, etc. |
| **Language** | Primary language for the conversation |
### Personality
| Setting | Options | Description |
| ----------------- | ------------------------- | --------------------------- |
| **Assertiveness** | Low / Medium / High | How persistent the AI is |
| **Humor** | Off / Low / Medium / High | Level of humor in responses |
### Variables
Add pre-call data that can be used in your messages:
1. Click **Add Variable**
2. Enter a **Name** (e.g., `product_interest`)
3. Set a **Default Value**
Use variables in messages with curly braces: `{variable_name}`
**Example:** "Hi , I see you were interested in our ."
### Post-Call Fields
Define data to extract from calls:
1. Click **Add Field**
2. Enter **Name**, **Type**, and **Description**
3. The AI will attempt to fill these based on the conversation
**Types:** `string`, `number`, `boolean`
## Import/Export
### Export Your Flow
1. Open the Settings panel
2. Scroll to the bottom
3. Click **Export JSON**
4. Save the `.json` file
### Import a Flow
1. Click **Import JSON** in settings
2. Select your `.json` file
3. The flow loads on the canvas
Export your flows regularly as backups. You can also share flows with team members this way.
## Voicemail Settings
Configure what happens when voicemail is detected:
* **Voicemail Message** - Message to leave if voicemail answers
* **End Call on Voicemail** - Toggle to automatically hang up on voicemail
## Saving Your Flow
Click the **Save** button in the top-right corner to save your flow to the assistant.
The flow is stored as JSON in your assistant's system prompt field. If you switch to the Classic Editor, you'll see the raw JSON data.
## Best Practices
Begin with a basic flow and add complexity gradually. Test at each step.
Prompt nodes give the AI flexibility. Use them for dynamic, context-aware responses.
Before building, sketch the main paths: positive, negative, and neutral responses.
Make test calls covering all paths. Verify each outcome leads to the right destination.
## Troubleshooting
* Ensure you're dragging from an **output handle** (bottom) to an **input handle** (top)
* Check that you're not creating a circular connection
* The Start node only has an output, End node only has an input
* Check your internet connection
* Ensure you have at least one node (besides Start)
* Look for any validation errors in the settings panel
* Use Speak nodes for exact wording requirements
* Make Prompt node instructions more specific
* Check that outcomes are clearly defined and connected
## Related Resources
* [AI Prompt Editor](/ai-assistants/ai-prompt-editor) - Chat-based alternative for prompt editing
* [System Prompts Guide](/ai-assistants/system-prompt) - Understanding prompt fundamentals
* [Testing Your Assistant](/ai-assistants/testing) - How to test your flows
# GoHighLevel Appointment Scheduling
Source: https://docs.autocalls.ai/ai-assistants/gohighlevel-scheduling
Learn how to enable your AI assistant to schedule appointments using GoHighLevel integration
Enable your AI assistant to seamlessly schedule meetings and appointments using GoHighLevel integration. This powerful feature allows your AI to check availability and book meetings directly during calls with your existing GoHighLevel calendar system.
## Prerequisites
Before setting up GoHighLevel integration, you'll need:
* An active GoHighLevel account
* Calendar(s) configured in your GoHighLevel location
* Admin or appropriate permissions to authorize app connections
## Setup Process
### 1. GoHighLevel Account Requirements
**Account Setup:**
* Ensure you have an active GoHighLevel account
* Verify that your calendars are properly set up in your account
* Confirm you have the necessary permissions to connect external applications
**Calendar Configuration:**
* Create or verify existing calendars in your GoHighLevel location
* Set appropriate availability times and booking settings
* Configure any required custom fields for appointments
### 2. Connecting GoHighLevel to Your Assistant
1. In your [AI assistant settings](/ai-assistants/settings/prompt-and-tools#default-tools), navigate to the **Tools** section
2. Select **Appointment Scheduling** from the available tools
3. Choose **GoHighLevel** as your calendar integration type
4. Click **Connect to GoHighLevel**
**OAuth Authorization Process:**
1. You'll be redirected to GoHighLevel's authorization page
2. **Choose your account** from the available options
3. **Authorize the application** to access your calendar data
4. You'll be redirected back to your assistant settings
If you have issues connecting to GoHighLevel, try using an **Incognito/Private browsing window** as this can resolve authentication conflicts.
### 3. Calendar Selection
After successful connection:
1. Select the specific **calendar** from your GoHighLevel location
2. Your available calendars will be automatically fetched and displayed
3. Choose the calendar where appointments should be booked
### 4. Testing the Integration
**Essential testing steps:**
1. Make a test call to your AI assistant
2. Request to schedule an appointment during the conversation
3. Verify the booking appears in your GoHighLevel calendar
4. Check that confirmation details are sent appropriately
5. Test different scenarios (available/unavailable times)
## Required Information from GoHighLevel
To complete the integration, the system needs access to:
### From Your GoHighLevel Account:
* **Location ID:** Automatically obtained during OAuth authorization
* **Calendar IDs:** Retrieved from your location's available calendars
* **Access Tokens:** Managed automatically through OAuth flow
### Calendar Permissions:
* **Read calendar availability:** To check open time slots
* **Create appointments:** To book new meetings
* **Access calendar details:** To retrieve calendar names and settings
## Integration Features
### Automatic Appointment Booking
* **Real-time availability checking:** AI verifies open time slots
* **Instant booking confirmation:** Appointments created immediately in GoHighLevel
* **Conflict prevention:** System prevents double-booking
* **Time zone handling:** Respects calendar and customer time zones
### Email Requirement for Appointments
**Important:** To book appointments, your AI assistant needs an email address from the customer.
**Setup options:**
1. **Define email in input variables:** Add `email` as an input variable in your [assistant settings](/ai-assistants/settings/prompt-and-tools#call-variables)
2. **Import leads with email:** When importing leads, ensure email addresses are included
3. **AI collection during call:** Configure your assistant to ask for email during the conversation if not available
**Example prompt instruction:**
```
"If the customer wants to book an appointment and I don't have their email address,
ask them to provide their email address for the booking confirmation."
```
## Best Practices
### Calendar Management
* **Keep calendars updated:** Ensure availability is current in GoHighLevel
* **Set buffer times:** Configure appropriate gaps between appointments
* **Use clear calendar names:** Makes selection easier during setup
### Assistant Configuration
* **Include calendar context in system prompt:** Help AI understand booking scenarios
* **Define appointment variables:** Extract relevant information for GoHighLevel
* **Configure appointment duration:** Specify how long appointments should be
**Appointment Duration Setup:**
Tell your AI assistant about appointment lengths in the system prompt:
```
"When booking appointments, use 45-minute slots. If a customer says they want
to meet at 8:00 AM, set the end_time to 8:45 AM. Always calculate the end_time
based on the start time plus 45 minutes."
```
**Example scenarios:**
* Customer says: "Can we meet at 2:00 PM?"
* AI books: 2:00 PM - 2:45 PM (45-minute slot)
* **Test various scenarios:** Different time requests, conflicts, rescheduling
### Security & Compliance
* **Token management:** OAuth tokens are refreshed automatically
* **Data privacy:** Only necessary calendar data is accessed
* **Permission scope:** Integration uses minimal required permissions
## Troubleshooting
### Quick Fixes:
**Missing API Key Error:**
* **Solution:** Disconnect and reconnect your GoHighLevel account, then select an assistant and save
* **Steps:** Go to [assistant settings](/ai-assistants/settings/prompt-and-tools#default-tools) → Appointment Scheduling → Disconnect → Connect again → Select assistant → Save
**Connection Issues:**
* **Try incognito mode** for OAuth authorization
* **Verify account permissions** and calendar setup
**Calendar Problems:**
* **Refresh connection** if calendars don't appear
* **Check time zones** and availability settings
For comprehensive GoHighLevel troubleshooting, including detailed solutions and additional issues, see [GoHighLevel Issues](/troubleshooting/gohighlevel).
# Initial Message & Audio
Source: https://docs.autocalls.ai/ai-assistants/initial-message
Learn how to create effective initial messages and use custom audio files for the best first impression
The first few seconds of a call are crucial - they determine whether the customer stays on the line. You have two options for your assistant's first greeting: text-based initial message or custom initial audio.
## Initial Message
This is the first thing your AI assistant says when starting a call. The message is read exactly as written, so:
### Best Practices
1. **Keep it Short**
* Aim for 5-10 seconds
* Get to the point quickly
* Avoid long company introductions
2. **Write Exactly as Needed**
* Include proper diacritics (é, ñ, ü, etc.)
* Use punctuation for proper pausing
* Write numbers as they should be spoken
3. **Example Formats**
```
Good:
"Hi! This is Sarah from ABC Company. How can I help you today?"
Better with pausing:
"Hi! This is Sarah from ABC Company... How can I help you today?"
With diacritics:
"¡Hola! Soy María de ABC Company. ¿Cómo puedo ayudarte?"
```
## Initial Audio
For the best first impression, you can use a pre-recorded audio file:
### Benefits
* Professional quality
* Perfect pronunciation
* Human warmth
* Consistent delivery
* Higher customer retention
### Setup Process
1. Record your greeting with a professional voice actor
2. Upload the audio file in [assistant settings](/ai-assistants/settings/general#call-flow-configuration)
3. Clone the same voice for the rest of the conversation
4. Enable initial audio playback
### Best Practices
1. **Recording Quality**
* Use professional equipment
* Record in a quiet environment
* Maintain consistent volume
* Save in high quality format
2. **Voice Matching**
* Use the same voice actor for cloning
* Maintain consistent tone and style
* Match energy levels
3. **Content Guidelines**
* Keep under 10 seconds
* Include company name
* State purpose clearly
* Sound welcoming
### Example Script Structure
```
[Greeting] + [Company Name] + [Purpose/Question]
"Hello! This is ABC Company calling about your recent inquiry. How are you today?"
```
## Combining Both Methods
You can set up both:
* Initial audio as primary greeting
* Initial message as backup
* System will use audio when available
## Testing
Before going live:
1. Call your assistant
2. Listen for:
* Clear pronunciation
* Natural pauses
* Proper volume
* Smooth transition to AI conversation
## Language Considerations
* Each language needs its own initial message/audio
* Use native speakers for recordings
* Consider regional accents
* Test with target audience
***
**Pro Tip:** Record several versions of your initial audio and test which one gets better response rates.
# MCP Servers
Source: https://docs.autocalls.ai/ai-assistants/mcp-servers
Connect remote Model Context Protocol (MCP) servers so your AI assistant can use external tools during voice and chat conversations
MCP servers let your AI assistant pull live data and trigger actions in
external systems — like HubSpot, your internal APIs, or knowledge tools —
right in the middle of a conversation. Connect a server once, assign it to any
assistant, and its tools become available to the AI automatically.
## What is an MCP server?
The [Model Context Protocol](https://modelcontextprotocol.io) (MCP) is an open
standard for exposing tools to AI models. An **MCP server** is simply a remote
HTTP endpoint that speaks this protocol. You don't install anything — you paste
the server's URL (and optional authentication headers), and the assistant can
call its tools while talking to your customer.
* Add whole toolsets (e.g. a HubSpot or Notion integration) in one step instead of building tools one by one
* Tools, descriptions and parameters are discovered automatically from the server
* Works across voice calls, the web widget, and chat
* Reuse one server across many assistants
## Mid-call tools vs. MCP servers
Both live under the **Tools** page. Use whichever fits:
A single custom HTTP endpoint you define by hand (URL, method, parameters).
Best for one-off calls to your own API. See [Custom Mid-Call Tools](/ai-assistants/custom-tools).
A remote server that exposes **many** tools at once, discovered
automatically. Best for connecting to a platform or a shared integration.
## Connecting a server
Go to **Tools** in the sidebar and switch to the **MCP servers** tab, then click **New MCP server**.
* **Display name**: a friendly name shown when assigning the server (e.g. `HubSpot CRM`)
* **Identifier**: an internal id, lowercase letters and underscores only (e.g. `hubspot`)
* **Description**: optional, for your own reference
* **Server URL**: the remote MCP endpoint
* **Timeout**: how long to wait when connecting to the server
Leave this on **Auto-detect** unless you know otherwise. Auto-detect picks the
right transport from the URL:
```yaml theme={null}
URL ends with /mcp → Streamable HTTP
URL ends with /sse → SSE (Server-Sent Events)
```
If the server requires a token, add it as a header. Headers are **stored encrypted**.
```yaml theme={null}
Authorization: Bearer your_token_here
```
When you save, the server is tested automatically and a notification lists the
tools it exposes.
### Try it for free
Want to test MCP without any setup? Connect the public **DeepWiki** server (no
authentication required):
* **Display name**: `DeepWiki`
* **Identifier**: `deepwiki`
* **Server URL**: `https://mcp.deepwiki.com/mcp`
Then ask your assistant something like *"Use DeepWiki to summarize the
facebook/react repository."*
## Connection status & discovered tools
Each server is shown as a card with a live connection status.
The server is reachable. Its available tools are listed on the card.
The server couldn't be reached. The error is shown so you can fix the URL or headers.
The server hasn't been checked yet.
Use **Test connection** at any time to re-check a server and refresh its tool list.
## Choosing which tools are exposed
By default, **all** of a server's tools are available to your assistants. Open
**Manage tools** (on the server's edit page) to view each tool's description and
parameters, and enable or disable individual tools.
Disabled tools are hidden from the AI. To expose **no** tools at all, simply
remove the server from the assistant instead.
## Assigning a server to an assistant
Edit an assistant and go to the **Prompt & Tools** step.
In the **MCP servers** section, select one or more servers. The list shows
each server's connection status and tool count.
The assistant can now use the server's enabled tools during voice calls, the
web widget, and chat.
## Authentication
The integration sends **static headers** with each request. It does not perform
an interactive OAuth login.
| Server authentication | Supported | How |
| ------------------------------------------------- | --------- | ----------------------------------------------- |
| No authentication | ✅ | Nothing to configure |
| API key / token | ✅ | Add an `Authorization` (or custom) header |
| Token embedded in the URL (e.g. Zapier, Composio) | ✅ | Paste the full URL |
| Interactive OAuth login | ❌ | Use a personal access token in a header instead |
## Real-world examples
```yaml theme={null}
Display name: DeepWiki
Identifier: deepwiki
Server URL: https://mcp.deepwiki.com/mcp
Headers: (none)
Tools: read_wiki_structure, read_wiki_contents, ask_question
```
The assistant can answer questions about any public GitHub repository.
```yaml theme={null}
Display name: HubSpot CRM
Identifier: hubspot
Server URL: https://your-mcp-host.example.com/mcp
Headers:
Authorization: Bearer pat-xxxxxxxx
```
The assistant can look up contacts, create deals, or update records during a call.
## Best practices & security
Only connect MCP servers you trust. The tools and the data they return are
provided by the remote server and are passed to the AI during live
conversations.
* Keep tokens scoped to the minimum permissions the assistant needs.
* Use **Manage tools** to expose only the tools an assistant actually requires.
* Give each tool a clear name and description on the server so the AI knows when to use it.
* Mention the available capabilities in your assistant's [system prompt](/ai-assistants/system-prompt) so it uses them at the right moments.
Test with simple conversations first and confirm the assistant calls the right
tool with the right parameters before going live.
# General Settings
Source: https://docs.autocalls.ai/ai-assistants/settings/general
Basic configuration settings for your AI assistant including call direction, phone numbers, voice, and advanced settings.
Configure the fundamental settings for your AI assistant including call direction, phone numbers, voice selection, and technical parameters.
## Quick Start Guide
Ready to set up your first AI assistant? Here's the essential flow:
1. **Choose Call Direction:** Inbound (answers calls) or Outbound (makes calls)
2. **Set Assistant Name:** Internal label like "Support Bot" or "Sales Bot"
3. **Configure Phone Numbers:** Assign platform numbers, SIP, or Caller ID
4. **Select Voice & Language:** Choose from built-in voices or clone custom ones
5. **Adjust Advanced Settings:** Fine-tune models, timing, and audio parameters
**Always test your changes** by calling the assistant or running a small campaign to confirm it behaves as expected.
Follow this page section by section to configure your assistant. Each setting includes detailed explanations and best practices to help you make the right choices.
## Call Direction & Basic Setup
### Assistant Type
Choose whether your assistant handles **inbound** or **outbound** calls. This fundamental choice affects which other options become available.
**Inbound (Receive calls):** Handles incoming calls from customers. See [Inbound calls overview](/inbound-calls/overview).
**Outbound (Make calls):** Initiates calls to leads or customers. See [Outbound calls overview](/outbound-calls/overview).
### Assistant Name
A descriptive name to identify your assistant in the dashboard. Use something memorable that describes the assistant's purpose (e.g. "Sales Qualifier", "Support Bot", "Appointment Scheduler").
## Phone Number Configuration
Your assistant needs a phone number to operate. The available options depend on your call direction choice.
### For Outbound Assistants
You can use:
* **Platform numbers:** Numbers rented directly from our platform
* **SIP numbers:** Connect your existing VOIP/PBX system
* **Caller ID only:** Verify ownership of an existing number to display it on outbound calls
### For Inbound Assistants
You can use:
* **Platform numbers:** Numbers rented directly from our platform
* **SIP numbers:** Connect your existing VOIP/PBX system
**Note:** Caller ID only numbers cannot handle inbound calls - they only display on outbound calls.
### Pricing & Costs
* **Platform numbers:** Monthly rental fees starting from \$3.99/month. See [renting a dedicated number](/pricing/number-rentals#1-renting-a-dedicated-number) for detailed pricing.
* **SIP integration:** No monthly fee, only \$0.00045/min for AI bridging. See [SIP integration pricing](/pricing/number-rentals#2-sip-integration-no-monthly-fee).
* **Caller ID:** No monthly fee, region-based per-minute rates (e.g., \$0.01/min in the US). See [Caller ID pricing](/pricing/number-rentals#3-caller-id-no-monthly-fee).
See [Phone number types](/phone-numbers/types) for detailed explanations and [SIP integration guide](/provisioning/sip-trunking/sip-integration) for VOIP setup.
## Engine Type (Voice Processing Mode)
Choose how your AI processes speech and generates responses. Each mode is optimized for different use cases. See [Assistant modes](/ai-assistants/assistant-modes) for detailed comparisons.
### Pipeline Mode
Traditional Speech-to-Text → LLM → Text-to-Speech pipeline. Offers maximum control over voice selection and response generation.
**Best for:** Complex reasoning, function calling, custom voice requirements
### Speech-to-Speech Mode
Direct speech-to-speech generation without intermediate text processing. Provides the most natural conversational flow.
**Best for:** Quick conversations, natural back-and-forth dialogue
### Dualplex Mode (Beta)
Combines fast multimodal processing with premium ElevenLabs voice output.
**Best for:** Most use cases - recommended default
## Language Configuration
### Primary Language
The main language your assistant will use for speech recognition and synthesis. This affects:
* Speech recognition accuracy
* Available voice options
* Filler audio phrases
* Voice model selection
See [Language support](/conversation-design/language-support) for all available languages and accents.
### Secondary Languages
Additional languages your assistant can understand and speak. Useful for:
* Multilingual customer support
* International businesses
* Code-switching conversations
**Note:** The AI can detect which language the customer is speaking and respond appropriately.
## TTS Provider & Voice Selection
### TTS Provider
Select your Text-to-Speech provider. Available in **Pipeline** and **Dualplex** modes.
**Available Providers:**
* **ElevenLabs** - High-quality voices
* **Cartesia** - Fast, low-latency synthesis
Your assistant can choose from existing voices, clone custom voices, or request voices from the ElevenLabs library.
### Voice Options
You have three ways to get the perfect voice for your assistant:
**1. Choose from existing voices:**
* **Professional voices:** Pre-trained, high-quality options from ElevenLabs
* **Multiple accents:** Available for most languages
* **Gender options:** Male and female voices for each language
* **Tone variety:** From formal business to casual conversational
**2. Clone a custom voice:**
Create a custom voice by uploading audio samples. Available in **Pipeline** and **Dualplex** modes.
**Requirements by provider:**
* **Cartesia** - Single audio file, at least 10 seconds, 1 speaker, no background noise
* **ElevenLabs** - Samples over 1 minute, 1 speaker, no background noise. Max 5 minutes total.
**Process:**
1. Click "Clone voice" next to voice selector
2. Select provider (Cartesia or ElevenLabs)
3. Choose the voice language
4. Enter a name for your voice
5. Record or upload audio
6. Wait for processing
7. Select your new voice from dropdown
**Use cases:**
* Brand consistency with company spokesperson
* Personal touch for customer relationships
* Matching voice to specific business persona
**3. Request from ElevenLabs library:**
You can request specific voices from the ElevenLabs public library - contact support to add them to your account. Browse the [ElevenLabs Voice Library](https://elevenlabs.io/docs/product-guides/voices/voice-library) to discover thousands of professional voices across different languages, accents, and use cases.
See [Voice selection guide](/ai-assistants/voice-selection) for detailed setup instructions.
## Timezone Configuration
### Timezone
Set the timezone your assistant operates in. This affects:
* Time-based variables in conversations
* Appointment scheduling functions
* "Current time" references in system prompts
* Timestamps in call logs and data extraction
**Important:** Choose the timezone where your business operates or where most customers are located. The assistant will use this for any time-related calculations or scheduling.
## Audio Enhancement Settings
### Ambient Sound
Optional background sound mixed under your assistant's voice to mask processing delays and create a more natural audio experience.
**Options:**
* **None:** No background sound (default)
* **Office:** Subtle office environment sounds
**Volume control:** Adjust the level of ambient sound relative to the voice. Lower values are usually better - too much background sound can interfere with speech recognition.
Turn off or lower volume if the assistant isn't hearing the customer clearly.
### Filler Audio
Short conversational phrases like "mhm", "okay", "I understand" that play during AI processing time. See [Filler audio guide](/ai-assistants/filler-audio) for full details.
* Eliminates awkward silences during processing
* Keeps callers engaged
* Creates more natural conversation flow
* Reduces hang-up rates
**Language-aware configuration:** Filler phrases are automatically set for your selected language:
"Great!", "Perfect!", "Super!"
"Hmm.", "I see.", "Okay."
"Right?", "Really?", "How so?"
"Okay.", "I understand.", "Got it."
**Customization:** You can edit the default phrases for each category to match your brand voice or regional preferences.
Enable by default - most conversations benefit from fillers. Test with your target audience and adjust phrases to match your assistant's personality.
## Advanced Settings
### LLM Model Selection
Choose the best language model for your assistant's mode. See [LLM model selection guide](/ai-assistants/assistant-configuration#3-select-an-llm-model) for detailed recommendations.
**Recommended models by mode:**
| Model | Strengths | Best for |
| ------------------------ | --------------------------------------------- | --------------------------------------- |
| **GPT-5 Mini** | Balanced reasoning with low latency | **Pipeline** mode for complex reasoning |
| **GPT-5 Realtime** | Ultra-low-latency voice turns | **Speech-to-Speech** and **Dualplex** |
| **GPT-4o** | Strong reasoning and multimodal understanding | Complex tasks (higher latency) |
| **Gemini Flash 2.0/2.5** | Ultra-fast native audio for voice turns | **Speech-to-Speech** only |
**Quick selection guide:**
* **Speed is critical:** Dualplex or Speech-to-Speech with GPT Realtime; Gemini only in Speech-to-Speech
* **Rich reasoning needed:** Use GPT-4o or GPT-5 Mini with filler audios to offset latency
### LLM Temperature
**Range:** 0.0 - 1.0 | **Default:** 0.1
Adjust the level of creativity of the AI when generating responses. Lower value yields better function call results.
**More stable:** Predictable responses, better for function calling and business use cases
**More random:** Creative and varied responses, good for casual conversations
**Special behavior:** For GPT-5 Mini and GPT-5 Nano models in Pipeline mode, temperature is automatically set to 1.0 for optimal performance.
### Duration Settings
Control timing and call limits to optimize user experience and costs:
**Range:** 7 - 600 seconds | **Default:** 30 seconds
AI will try to re-engage the user if no reply is detected within this time.
**Recommended:** 30-60 seconds for professional calls.
Custom prompt used when the AI tries to re-engage the user after silence.
**Default:** Uses a standard re-engagement phrase like "Are you still there?"
**Customization:** Write a prompt that instructs the AI how to re-engage.
**Examples:**
* "Gently ask if they are still there and if they need more time."
* "Politely check if they have any questions."
Variables like `{customer_name}` cannot be injected directly in this prompt. The AI has access to the conversation history and main system prompt, so it can reference information from there.
Leave empty to use the default re-engagement behavior.
**Range:** 20 - 1200 seconds | **Default:** 600 seconds (10 minutes)
Call will automatically end if this value is reached.
**Recommended:** 5-10 minutes for lead qualification to control costs.
**Range:** 1 - 120 seconds | **Default:** 40 seconds
Call will end if user doesn't reply within this time.
**Recommended:** 30-45 seconds to balance patience with efficiency.
**Range:** 1 - 60 seconds | **Default:** 30 seconds
For how long the call will ring before marking as unanswered. **Good when you want to avoid voicemail by setting a lower value.**
**Cost optimization:** Lower duration limits help control per-minute costs, especially important for high-volume campaigns.
### Call Protection Settings
**Default:** Enabled
Filters caller background noise for clearer speech recognition. Turn OFF if experiencing audio clipping.
**Default:** Enabled
Immediately ends call if voicemail is detected during outbound calls (saves costs).
Prompt for the message the AI will say when voicemail is detected before ending the call.
**Default:** Empty (hangs up immediately without leaving a message)
**Use case:** Leave a brief message before hanging up so the recipient knows who called.
**Example:** "Leave a brief voicemail message saying you called and ask them to call back."
Variables like `{company_name}` cannot be injected directly in this prompt. The AI has access to the conversation history and main system prompt, so it can reference information from there.
Only applies when "End Call on Voicemail" is enabled. Leave empty to hang up without a message.
**Default:** Enabled
Records call audio for review and analysis. **Ensure compliance with local recording laws.**
**Range:** 1 - 120 seconds | **Default:** 20 seconds (when enabled)
If enabled, end the call if no first user response within this time. Counts only from call start to first user response.
**Use case:** Detect if anyone actually answered the phone.
## Synthesizer Settings
Configure text-to-speech voice parameters for natural-sounding conversations.
**Available for:** Pipeline and Dualplex modes only. Speech-to-Speech mode uses native voice generation.
### Voice Tuning Parameters
Fine-tune your assistant's voice characteristics for optimal performance:
**Default:** Enabled
When enabled, the AI will add emotional cues to the synthesized speech based on the context of the conversation. This makes the voice sound more natural and expressive.
**Effects:**
* Adjusts tone based on conversation context (happy, concerned, empathetic)
* Adds natural inflections and emphasis
* Makes the assistant sound more human-like
Disable if you prefer a more neutral, consistent tone across all conversations.
**Range:** 0.0 - 1.0 | **Default:** 0.7
Lower settings make the voice more expressive but less predictable, while higher settings make it steadier but less emotional.
Dynamic and varied delivery but less predictable
Consistent and steady but less emotional range
**Range:** 0.0 - 1.0 | **Default:** 0.5
Determines how closely the AI matches the original voice. Higher settings potentially include unwanted noise from the original recording.
Cleaner audio but less accurate to original voice
Accurate to original but may include background noise
**For cloned voices:** Start at 0.5 and increase gradually. Higher similarity can introduce unwanted artifacts from the original recording.
**Range:** 0.7 - 1.2 | **Default:** 1.0
Adjust the speed of the AI's speech for optimal comprehension and user experience.
Better for complex information or older demographics
Standard conversational pace for most use cases
Quick conversations or time-sensitive scenarios
## Transcriber Settings
Configure speech-to-text recognition for optimal accuracy and speed.
**Available for:** Pipeline mode only. Speech-to-Speech and Dualplex modes use integrated transcription.
### Provider Selection
Choose the best transcriber for your language and use case. The provider that will be used to transcribe the user speech.
**Accuracy:** ⭐⭐⭐⭐
**Latency:** Slower
Best for highest transcription fidelity when accuracy is critical.
**Accuracy:** ⭐⭐⭐
**Latency:** Faster
Good all-rounder for most languages. Supports multilingual configurations.
**Accuracy:** ⭐⭐⭐
**Latency:** Faster
Solid choice for English and major languages.
Different languages, accents, or background noise can impact each provider differently. Test which performs better for your specific language and audio setup.
### Endpoint Configuration
Uses AI to intelligently detect when the caller has finished speaking
**Default:** Traditional voice activity detection
Choose how the AI will detect the end of the user phrase
### Voice Activity Detection (VAD)
Control when your assistant starts and stops talking. See [Handling interruptions guide](/conversation-design/interruptions) for detailed VAD configuration.
Fine-tune these settings if experiencing interruption issues or sluggish responses.
**Range:** 0 - 5 seconds | **Default:** 0.5
Adjust the time the AI will wait for the user to speak after the last word. Lower values make the AI faster, higher values are better for long user phrases.
* **0 (Faster):** Quick responses but may cut off callers
* **5 (Slower):** Waits longer, reduces interruptions
How easily the assistant stops when caller talks over it. Controls the sensitivity for detecting when a caller is trying to interrupt.
Require at least N caller words before interrupting assistant.
**Use:** Prevents false triggers from background noise or brief sounds.
**Available for:** Speech-to-Speech and Dualplex modes only
**Range:** 0 - 1 | **Default:** Auto (model decides)
Controls how sensitive the multimodal model is to detecting when the caller has finished speaking. Lower values make the assistant respond faster, higher values wait longer for the caller to finish.
* **Lower (0.3-0.5):** Faster responses, good for quick conversations
* **Higher (0.7-0.9):** Waits longer, better for detailed responses
* **Auto:** Let the model decide based on conversation context
Only visible when using Speech-to-Speech or Dualplex modes.
**Pro tip:** Start with default VAD settings and adjust based on real call testing. Increase endpoint sensitivity if callers get cut off, decrease if responses feel slow.
# Post-call Actions
Source: https://docs.autocalls.ai/ai-assistants/settings/post-call-actions
Extract data from the call and send it to an app/webhook for automation workflows.
Configure what happens after calls end - extract specific information from conversations and send it to external systems for further processing.
## Overview
Post-call actions automatically:
* Extract structured data from conversations using AI
* Send extracted variables to webhooks for automation
* Trigger workflows in connected platforms
* Update CRM records and databases
* Enable complex automation scenarios
## Post-call Variables
Define the variables that the AI will extract from the call and send to a webhook.
### Variable Configuration
Configure which information the AI should extract from each conversation:
Create variables that the AI will identify and extract from conversations.
**How extraction works:**
The AI analyzes the complete call transcript and considers your system prompt context to extract the requested variables. It understands what was discussed during the call and extracts relevant information based on your variable descriptions.
**Configuration:**
* **Name:** Variable identifier (3-16 characters, lowercase, alphanumeric)
* **Type:** Data type for the extracted value
* **Description:** Clear explanation so AI understands what to extract from the conversation
**Variable Types:**
* **String:** Text values (names, addresses, comments)
* **Number:** Numeric values (quantities, prices, scores)
* **True/False:** Boolean values (yes/no answers, objectives achieved)
Every assistant includes these essential variables by default:
**Status (True/False):** Whether the call objective was achieved or not
**Summary (String):** Call summary in a few words
You can add custom variables based on your specific use case.
Common variables for different scenarios:
**Sales qualification:**
* `budget` (Number): Customer's budget range
* `decision_maker` (True/False): Is caller the decision maker
* `timeline` (String): When they need the solution
* `pain_points` (String): Main challenges mentioned
**Appointment booking:**
* `appointment_date` (String): Preferred appointment date
* `service_type` (String): Type of service requested
* `contact_method` (String): Preferred contact method
**Support calls:**
* `issue_type` (String): Category of the problem
* `urgency_level` (Number): Priority score (1-10)
* `resolution_status` (True/False): Was issue resolved
### Extraction Process
The AI uses sophisticated analysis to extract variables from your calls:
**Data sources:**
* **Complete call transcript:** Everything said by both the AI and the customer
* **System prompt context:** Your assistant's objectives and instructions help guide extraction
* **Variable descriptions:** Clear descriptions you provide for each variable
**Analysis method:**
1. AI reviews the entire conversation transcript
2. Considers the system prompt and call objectives
3. Identifies relevant information based on variable descriptions
4. Extracts and formats data according to specified types
5. Validates extracted values before sending to webhook
### Best Practices
**Variable naming:** Use lowercase, alphanumeric characters only. No spaces or special characters except underscores.
**Clear descriptions:** Write descriptions that clearly explain what the AI should look for in the conversation transcript. The more specific and context-aware, the better the extraction accuracy.
**System prompt synergy:** Your variable descriptions work best when they align with your system prompt objectives. If your assistant is designed for lead qualification, your variables should reflect that purpose.
## Webhook Configuration
Make a request to a URL that sends the extracted variables to external systems.
### Webhook Settings
**Enabled/Disabled:** Control whether webhooks are sent after calls
**Default:** Disabled - Enable only when you have a webhook endpoint ready to receive data
**URL endpoint:** Where to send the extracted data
**Format:** Must be a valid URL
**Example:** `https://automate.autocalls.ai/api/v1/webhooks/your-webhook-id`
**Test functionality:** Built-in test feature sends sample data to verify connectivity
**Send webhook only on completed:**
* **Yes (Default):** Only send data for completed calls
* **No:** Send data for all calls regardless of completion status
**Include recording in webhook:**
* **Yes (Default):** Include recording URL in the webhook payload
* **No:** Send only extracted variables without recording link
### Webhook Payload
The webhook will receive a comprehensive JSON payload containing call details, extracted variables, and transcript. For complete API documentation, see [Post-Call Webhook API](/api-reference/webhooks/post-call-webhook).
**Key payload fields:**
* **id:** Unique call identifier
* **type:** Channel and direction of the call — `inbound`, `outbound`, `web`, `whatsapp_inbound`, or `whatsapp_outbound`
* **assistant\_id:** UUID of the assistant that handled the call
* **assistant\_name:** Name of the assistant, as shown in the dashboard
* **customer\_phone:** Customer's phone number (E.164 format)
* **assistant\_phone:** Assistant's phone number
* **duration:** Call duration in seconds
* **status:** Call status (initiated, ringing, busy, in-progress, ended, completed, ended\_by\_customer, ended\_by\_assistant, unanswered, failed)
* **created\_at/finished\_at:** ISO 8601 timestamps
* **extracted\_variables:** AI-extracted data based on your post-call schema configuration (see [Post-call Variables](#post-call-variables) section above)
* **input\_variables:** Variables passed before the call (see [Call Variables](/ai-assistants/settings/prompt-and-tools#call-variables))
* Includes default variables (status, summary) plus your custom variables
* **transcript:** Detailed conversation transcript with timestamps
* **formatted\_transcript:** Human-readable conversation format
* **recording\_url:** Call recording URL (if enabled)
* **lead:** Lead information (for campaign calls)
* **campaign:** Campaign details and settings
* Only included for calls that are part of campaigns
**Example webhook payload:**
```json theme={null}
{
"id": 12345,
"type": "outbound",
"assistant_id": "9c1f8e2a-4d3b-4a17-9f6e-2b5c8d0a7e31",
"assistant_name": "Sales Agent",
"customer_phone": "+1234567890",
"assistant_phone": "+1987654321",
"duration": 125,
"status": "completed",
"extracted_variables": {
"status": true,
"summary": "Customer interested in product demo",
"lead_quality": "high",
"budget": 5000
},
"input_variables": {
"customer_name": "John Doe",
"product_interest": "Pro Plan"
},
"transcript": [
{
"text": "Hello! This is Sarah from Autocalls.",
"type": "transcript",
"sender": "bot",
"timestamp": 1756812511.315143
},
{
"text": "Hi, I'm doing well, thanks.",
"type": "transcript",
"sender": "human",
"timestamp": 1756812514.104436
}
],
"formatted_transcript": "AI: Hello! This is Sarah from Autocalls.\\nCustomer: Hi, I'm doing well, thanks.",
"recording_url": "https://app.autocalls.ai/storage/recordings/call-12345.mp4",
"created_at": "2025-01-15T10:30:00.000000Z",
"finished_at": "2025-01-15T10:32:05.000000Z"
}
```
### Testing Webhooks
**Test before going live:** Use the "Make test request" button to send sample data to your webhook endpoint and verify it's working correctly.
**Test process:**
1. Configure your variables and webhook URL
2. Save your assistant settings
3. Click "Make test request"
4. Check your webhook endpoint receives the test data
5. Verify the payload structure matches your expectations
## Integration Examples
### Our Automation Platform
**Primary integration:** Use our built-in no-code automation platform for seamless workflows:
* **Direct webhook processing:** No external setup required
* **250+ app integrations:** Connect to CRM, email, calendars, and more
* **Visual workflow builder:** Create complex automation without code
* **Real-time data sync:** Instant processing of extracted variables
* **Pre-built templates:** Ready-to-use workflows for common scenarios
**Common automation workflows:**
* **CRM updates:** Automatically update contact records in HubSpot, Salesforce, Pipedrive
* **Email follow-ups:** Send personalized emails based on call outcomes
* **Lead scoring:** Update lead scores based on extracted variables
* **Calendar booking:** Schedule follow-up meetings automatically
* **Team notifications:** Alert team members about important calls
### External Platforms
**Any platform with webhook support:**
* Receive webhook data from our platform
* Process extracted variables in your own systems
* Create custom automation workflows
* Integrate with any API or service that accepts webhooks
**Use cases:**
* Connect to any CRM, email platform, or business tool
* Send data to custom applications
* Trigger workflows in third-party automation platforms
* Store data in external databases or systems
### Custom Development
**API endpoints:** Build custom receivers for webhook data
**Database integration:** Store call data in your own systems
**Business logic:** Trigger complex workflows based on extracted variables
## Testing Your Assistant
After configuring your assistant settings, it's important to test thoroughly before deploying to production.
### Testing Methods
**Web-based testing:** Use the "Speak with your assistant" button to test directly from your browser
**Features:**
* Real-time voice conversation through your web browser
* Test all assistant capabilities including tools and knowledge base
* No phone required - perfect for quick iterations
* Immediate feedback on responses and behavior
**Best for:** Quick testing during development and configuration
**Real phone call testing:** Call your assistant from any phone number
**Outbound assistants:**
* If no specific number is set: Assistant calls from a random number
* If caller ID is configured: Assistant calls from your specified number
* Test the complete outbound flow including dialing and initial message
**Inbound assistants:**
* Call the assigned phone number directly
* Test how the assistant handles incoming calls
* Verify call routing and response quality
**Best for:** Final testing with real phone conditions and audio quality
### Testing Checklist
**Comprehensive testing:** Test all configured features including tools, knowledge base queries, variable extraction, and webhook delivery.
**Essential tests:**
* Voice clarity and response speed
* Knowledge base integration (if configured)
* Tool functionality (transfer, scheduling, etc.)
* Variable extraction accuracy
* Webhook delivery (check your endpoint receives data)
* Edge cases and error handling
## Web Widget Integration
Configure your assistant to work as a web widget on your website for seamless customer interactions.
### Widget Configuration
**Easy integration:** Add your AI assistant to any website with a simple code snippet
**Features:**
* **Voice chat:** Customers can speak directly to your assistant
* **Text fallback:** Option for text-based conversations
* **Customizable appearance:** Match your brand colors and styling
* **Mobile responsive:** Works on all devices and screen sizes
**Smart interactions:** The widget adapts to your assistant configuration
**Capabilities:**
* Uses same knowledge base and tools as phone assistant
* Supports all configured languages
* Extracts same post-call variables
* Sends webhooks for web conversations
* Respects same system prompt and personality
**Common applications:**
**Customer support:** 24/7 automated support on your website
**Lead qualification:** Qualify visitors before they contact sales
**Appointment booking:** Allow visitors to schedule directly through the widget
**FAQ handling:** Answer common questions instantly
**Product demos:** Guide visitors through your product features
For detailed testing guides and widget integration instructions, see our [Testing Your Assistant](/ai-assistants/testing) documentation.
For detailed webhook integration guides and examples, see our [Automation documentation](/automation/overview).
# Prompt & Tools
Source: https://docs.autocalls.ai/ai-assistants/settings/prompt-and-tools
Configure your assistant's knowledge base, tools, variables, and system prompt to define its capabilities and behavior.
Configure the objective of the assistant and the tools it can use during calls.
## Knowledge Base
Give information to the assistant to use as a knowledge base when responding to customers. From website contents, documents, etc.
### Knowledge Base Selection
Select a knowledge base store containing relevant information for the assistant to use.
**Requirements:**
* Must be created in your [Knowledge Bases](/conversation-design/knowledge-bases) section first
* Shows status (Active, Processing, etc.) and description
* Only your own knowledge bases are available
Create knowledge bases from website content, PDFs, or custom documents to give your assistant domain-specific information. For comprehensive setup guide including content types, processing status, website scraping, and troubleshooting, see the complete [Knowledge Base Guide](/conversation-design/knowledge-bases).
Choose how the AI will use the knowledge base.
**Recommended for most cases**
Uses a function call to search for information in the knowledgebase, only when needed. More accurate and efficient.
**For simple use cases**
Performs a search after every customer speech. More accurate but can be slower without filler audios.
**Mode availability:** Speech-to-Speech and Dualplex modes only support Function Call mode.
## Custom Mid-Call Tools
Create and assign your own custom tools that AI can use **mid-call** with the customer.
Build tools tailored to your specific business needs: API integrations, database queries, custom workflows, and external service calls.
**Quick action:** Direct link to tool creation page.
Select which custom tools this assistant can use with multiple selection, search by name/description, and real-time assignment.
**Scope:** Only your own tools are available.
Read the [Custom Tools documentation](/ai-assistants/custom-tools) for detailed guides on creating and configuring custom tools.
## Default Tools
Choose built-in tools that AI can use **mid-call** with the customer.
Route calls to multiple destination phone numbers like different people or departments according to your flow.
**Use cases:**
* Escalation to human agents
* Department routing
* Specialist handoffs
**Configuration options:**
* **Standard mode:** Use regular phone numbers (e.g., +1234567890)
* **Advanced mode:** Use SIP URI format for SIP providers (e.g., sip:+1234567890\@sip-server)
**For SIP integrations:**
* Set transfer to "Advanced" mode
* Use SIP URI format: `sip:number@sip-server`
* Verify your SIP provider supports SIP REFER
* Test with different URI formats if transfers fail
**Prompt instruction:** Include in your system prompt something like "call the transfer function when the user requests to speak with someone else" to ensure the AI uses this tool appropriately.
If transfers aren't working, see our [SIP Integration troubleshooting guide](/troubleshooting/sip-integration#transfer-phone-call-not-working) for detailed solutions.
Ends the call when the conversation is complete.
**Use cases:**
* Natural conversation conclusion
* Objective achieved
* Customer satisfaction confirmed
**Prompt instruction:** If the AI doesn't call the end call function automatically, include in your system prompt "call the hang\_up function to close the call" when the conversation should end.
Easily send keypad inputs during outbound calls, enabling smooth navigation through IVR menus and automated workflows. The AI navigates using keypad buttons when calling and responding to prompts.
**Use cases:**
* Navigate phone menus
* Enter extension numbers
* Input security codes
* IVR system navigation
**Prompt instruction:** Include in your system prompt instructions about when to use DTMF input, such as "use the send\_dtmf tool to navigate phone menus when needed to reach the right person."
For detailed information about DTMF capabilities, see [Tools & Functions](/ai-assistants/tools-and-functions#4-dtmf-input).
Real-time booking scheduling integration with multiple calendar platforms.
**Available integrations:**
* **Cal.com:** Full setup guide available at [Cal.com Scheduling](/ai-assistants/cal-com-scheduling)
* **GoHighLevel:** Complete integration guide at [GoHighLevel Scheduling](/ai-assistants/gohighlevel-scheduling)
* **Calendly:** Full setup guide available at [Calendly Scheduling](/ai-assistants/calendly-scheduling)
**Use cases:**
* Book appointments with calendars
* Check real-time availability
* Send automatic confirmation details
* Sync with existing calendar systems
**Setup:**
1. Select your calendar provider (Cal.com, GoHighLevel, or Calendly)
2. Authenticate with your calendar account
3. Choose the event type/calendar to use for bookings
4. The AI will automatically check availability and book appointments
Available when calendar integration is enabled in your platform settings.
## Call Variables
Define variables that can be passed **before** making the call and used in the prompt **like **.
### Variable Configuration
Create call variables to pass information to your assistant before the call starts.
**Setup process:**
* Define variable names and default values
* Pass values when creating calls/leads or importing clients
* Variables available immediately in prompts and during calls
* Use for personalization and context
**Configuration:**
* **Variable name:** The identifier (e.g., `customer_name`)
* **Default value:** Used when not passed (e.g., "John")
How to use call variables in your assistant:
**In system prompts:**
* Reference variables with `{variable_name}` syntax
* Personalize conversations dynamically
* Provide context-specific information
**Examples:**
* `{customer_name}` for personalization ("Hello ")
* `{email}` for calendar integrations
* `{account_type}` for tailored responses
* `{company}` for business context
Ways to populate call variables:
**Manual entry:**
* When creating individual calls
* Through campaign lead creation
**Import methods:**
* CSV import with variable columns
* API integration with client data
* Direct CRM synchronization
**Automation platform integrations:**
* **GoHighLevel (GHL):** Automatically pull contact data and custom fields
* **Google Sheets:** Import leads with variables from spreadsheet columns
* **Connect with 250+ popular tools** and platforms using our no-code platform
* **Any other platform** through webhooks for custom integrations
**Platform integration:**
* Automatically populated from client profiles
* Connected to existing customer databases
* No-code automation workflows
Call variables are essential for personalizing AI conversations. They allow the AI to use specific customer information during calls, making interactions more relevant and effective.
## Call Flow Configuration
### Who Speaks First?
Control whether your assistant or the customer initiates the conversation.
**Default behavior:** Assistant starts the conversation
The AI will immediately greet the caller and begin the conversation flow as soon as the call connects.
**Best for:** Most outbound scenarios, sales calls, appointment reminders
**Wait for customer:** Assistant listens first
If you choose "Customer", the AI will wait for the customer to speak first before responding.
**Best for:** Inbound support calls, reception scenarios, reactive assistance
### Initial Message
Configure the first thing your assistant says when the call begins.
Write the opening message your assistant will speak at the start of each call.
**Best practices:**
* Keep it concise and friendly
* Introduce your company/purpose clearly
* Set expectations for the conversation
* Use variables for personalization (e.g., `{customer_name}`)
**Example:** "Hi , this is Sarah from ABC Company. I'm calling to follow up on your recent inquiry about our services. Do you have a moment to chat?"
**Optional:** Upload a custom audio file instead of text-to-speech
**Requirements:**
* MP3 or WAV format
* Clear, high-quality recording
* Professional voice and tone
* Matches your assistant's voice if using voice cloning
**Benefits:**
* Perfect pronunciation and delivery
* Consistent brand voice
* Professional first impression
* No text-to-speech latency for opening
This works best if the AI voice is cloned using the same voice used in the initial audio.
See our [Initial Message guide](/ai-assistants/initial-message) for detailed best practices and examples.
## System Prompt
Define the assistant's personality, objectives, and behavior guidelines.
### Editing Tools
Choose the editing experience that works best for you:
**Chat-based editing with AI assistance**
Describe changes in plain language and let AI suggest intelligent modifications. Review and accept/reject each change individually.
**Best for:** Quick iterations, improving existing prompts, text-focused editing
**Visual drag-and-drop editor**
Design conversation flows by connecting nodes on a canvas. Create branching logic and multi-path decision trees visually.
**Best for:** Complex call flows, structured scripts, visual thinkers
Both tools store the prompt in the same field - switching between them is possible but may require adjustments.
### Prompt Configuration
Write your own system prompt from scratch
* Full control over assistant behavior
* Tailored to specific use cases
* Markdown formatting supported
Start with pre-built templates
* Multiple languages available
* Different conversation types
* Proven effective prompts
### Best Practices
Clearly define the assistant's role, objectives, and constraints.
**Include:**
* Who the assistant represents
* What they're trying to achieve
* What they should/shouldn't do
Define what topics and actions are off-limits.
**Consider:**
* Data privacy requirements
* Legal compliance
* Brand guidelines
Provide sample conversations to guide behavior.
**Examples help with:**
* Tone and style
* Response length
* Handling objections
See our [System Prompt guide](/ai-assistants/system-prompt) for detailed best practices and examples.
# System Prompts
Source: https://docs.autocalls.ai/ai-assistants/system-prompt
Learn how to create effective system prompts - the core intelligence of your AI assistant
The system prompt is the most crucial component of your AI assistant. It defines your assistant's personality, behavior, knowledge, and capabilities. Think of it as the "brain" and "training manual" combined.
## Editing Options
You have three ways to create and edit your system prompt:
Chat with AI to edit your prompt. Best for quick iterations and improvements.
Visual drag-and-drop editor. Best for structured, multi-path conversations.
Direct text editing. Best for full control and manual fine-tuning.
## Quick Start with Templates
To get started quickly:
1. Go to your [assistant settings](/ai-assistants/settings/prompt-and-tools#system-prompt)
2. Find the system prompt field
3. Click the "Templates" button nearby
4. Choose a template that matches your use case
5. Customize it for your needs
## Language Support
Your system prompt can be written in any language, regardless of the spoken language setting:
* Write the prompt in your preferred language
* Set the spoken language separately in [assistant settings](/ai-assistants/settings/general#language-configuration)
* The AI will follow the prompt's instructions while speaking in the selected language
For example:
* System prompt in English, spoken language set to Spanish
* System prompt in German, spoken language set to French
* System prompt in Chinese, spoken language set to English
## Why They Matter
Your system prompt:
* Shapes how the AI thinks and responds
* Defines conversation boundaries
* Provides essential knowledge
* Controls behavior and tone
* Determines handling of edge cases
## Key Components
A good system prompt should include:
### 1. Role & Identity
```
You are a professional sales representative for [Company]. You specialize in [Product/Service] and have extensive knowledge of our offerings.
```
### 2. Conversation Style
```
Maintain a friendly, professional tone. Use clear, concise language. Avoid technical jargon unless specifically asked.
```
### 3. Key Information
```
Our main products are:
- Product A ($X/month): [features]
- Product B ($Y/month): [features]
Current promotion: 20% off first 3 months
```
### 4. Behavioral Guidelines
```
- Always verify customer information before discussing account details
- Transfer to a human agent if the customer seems frustrated
- Don't make promises about delivery dates
```
### 5. Response Framework
```
When asked about pricing:
1. First understand their needs
2. Present relevant package options
3. Explain the value proposition
4. Share any applicable discounts
```
## Best Practices
1. **Be Specific**
* Clear instructions get better results
* Include examples of good responses
* Define what NOT to do
2. **Structure Matters**
* Organize information logically
* Use bullet points and sections
* Keep related information together
3. **Test and Iterate**
* Start with a basic prompt
* Test various scenarios
* Refine based on call recordings
* Add handling for edge cases
## Common Mistakes
* **Too Vague**: "Be helpful and professional" (Not specific enough)
* **Too Rigid**: Scripting every possible response (Reduces natural flow)
* **Information Overload**: Including unnecessary details
* **Missing Guidelines**: Not specifying how to handle common situations
## Example Structure
```
# Role and Purpose
[Define who the AI is and its main goals]
# Core Knowledge
[Essential information about products/services]
# Conversation Guidelines
[How to interact with customers]
# Response Patterns
[How to handle specific situations]
# Limitations and Boundaries
[What the AI should NOT do]
```
## Testing Your Prompt
1. Make test calls covering:
* Common scenarios
* Edge cases
* Difficult situations
* Various customer personalities
2. Review and adjust:
* Listen to call recordings
* Check response accuracy
* Verify tone consistency
* Test knowledge retention
## Optimization Tips
* Start with Fast Engine for quick iterations
* Use call recordings to identify gaps
* Add examples of good/bad responses
* Include handling for unexpected questions
***
**Pro Tip:** Your system prompt is a living document - regularly update it based on actual call experiences and customer interactions.
# Test Chat Interface
Source: https://docs.autocalls.ai/ai-assistants/test-chat
Test your assistant with a text-based chat interface for rapid iteration
The Test Chat interface provides a quick way to test your assistant's conversation flow without making actual phone calls.
## Accessing Test Chat
1. Navigate to your assistant's page
2. Click the **"Test Assistant"** button with the chat icon
3. A chat interface will open in a slide-over panel
## How It Works
The Test Chat interface simulates a conversation with your assistant:
* **Text-based interaction:** Type messages instead of speaking
* **Real AI responses:** Your assistant processes messages using the same logic as phone calls
* **Variable testing:** Test how your assistant handles variables and data collection
* **Tool execution:** See how your assistant uses configured tools and functions
* **Fast iteration:** Quickly test prompt changes without phone calls
## When to Use Test Chat
**Ideal for:**
* Testing conversation flow and logic
* Verifying prompt behavior and responses
* Debugging variable collection
* Testing tool/function calls
* Rapid prompt iteration
**Not suitable for:**
* Testing voice quality or speech recognition
* Testing call transfers (use phone testing)
* Testing phone-specific features
* Evaluating conversation timing and pacing
## Testing Workflow
**1. Test conversation flow with chat interface:**
* Verify your assistant understands user intents
* Check that variables are collected correctly
* Ensure tools execute as expected
* Validate response quality
**2. Test voice quality with Web Call:**
* Verify voice clarity and tone
* Check response timing and pacing
* Test interruption handling
**3. Final testing with Phone Call:**
* Test all features including call transfers
* Verify real-world call quality
* Test edge cases and error handling
Test Chat creates conversation records that appear in your **Conversations** page, helping you review and analyze test sessions.
## Cost Considerations
Test Chat interactions:
* Use AI processing credits from your account balance
* Are typically more cost-effective than phone testing
* Allow for faster iteration with immediate feedback
* Create conversation records for later review
Use Test Chat for initial prompt development, then move to phone testing for final validation before deploying to production.
# Testing Your Assistant
Source: https://docs.autocalls.ai/ai-assistants/testing
Learn how to quickly test your AI assistant for both inbound and outbound calls
There are multiple ways to test your AI assistant, depending on whether you want to test inbound or outbound functionality and your preferred testing method.
## Web Call Testing
**Browser-based voice testing** with the "Speak with your assistant" button:
1. Go to your assistant dashboard
2. Click "Speak with your assistant" button
3. Test voice conversation directly in your browser
4. Evaluate voice quality, response timing, and conversation flow
**Pros:**
* Instant voice testing without phone setup
* Tests voice components and timing
* Easy access from dashboard
**Cons:**
* Call transfer functionality will not work during web testing
**Cost Notice:** Web call testing deducts 1 minute from your account balance per minute of call for AI processing costs. This is not free testing.
## Phone Call Testing
**Real phone call testing** for outbound capabilities:
1. Go to your assistant's settings
2. Find the "Speak to your assistant" purple button
3. Enter your phone number
4. Click to initiate the test
5. You'll receive a call from your AI assistant immediately
## Testing Inbound Calls
**Real phone call testing** for inbound functionality:
1. Make sure you have a phone number assigned to your assistant
2. Call that number from any phone
3. Your AI assistant will answer and handle the call
## Testing Best Practices
**Start with web calls** for quick iteration:
* Test basic conversation flow and voice quality
* Verify prompt behavior and response timing
* Note: Call transfers won't work in web testing
**Move to phone calls** for comprehensive testing:
* Test all tools including call transfers
* Verify real-world call quality and timing
* Test edge cases and interruption handling
**Cost Management:**
* Both web and phone testing use account balance
* Plan your testing sessions to manage costs
* Use text-based prompt testing first when possible
***
**Tip:** Save your AI's phone number in your contacts to easily make inbound test calls whenever needed.
# Tools & Functions
Source: https://docs.autocalls.ai/ai-assistants/tools-and-functions
Explore the built-in tools and functions that enhance your AI assistant's capabilities during calls
Autocalls.ai offers built-in "tools" that your AI assistant can use during a call. These help you shape the conversation flow and automate actions like transferring calls or scheduling appointments.
## 1. End Call Tool
* **Purpose**: Tells the AI to politely wrap up the conversation.
* **How It Works**: You can specify in the system prompt or logic, for instance: "If the user says `goodbye`, end the call."
* **Configuration**: Enable in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) and define conditions in your system prompt that should trigger the end call.
## 2. Transfer Tool
* **Purpose**: Moves the caller from the AI assistant to a human agent or external phone number.
* **Use Cases**: Warm leads on a sales call, escalations on a support call, etc.
* **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) by adding the phone number or department the call should go to, and optionally a short hold message.
## 3. Appointment Scheduler
* **Purpose**: Lets the AI check your calendar availability and book appointments automatically.
* **Available Integrations**: Cal.com, GoHighLevel, and Calendly calendar systems
* **Typical Flow**:
1. AI offers scheduling.
2. Caller selects date/time.
3. AI confirms and sends a confirmation (using email or SMS if configured).
* **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) with your calendar integration.
## 4. DTMF Input
* **Purpose**: Allows the AI to send keypad inputs during calls to navigate phone menus, IVR systems, and automated workflows.
* **How It Works**: The AI can press phone keypad buttons (0-9, \*, #) when encountering automated systems or menu prompts.
* **Use Cases**:
* Navigate through company phone menus
* Enter extension numbers to reach specific departments
* Input security codes or account numbers
* Bypass IVR systems to reach human agents
* **Configuration**: Enable in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) and include instructions in your system prompt about when to use DTMF.
## 5. No-Code Automation Platform
* **Purpose**: After calls, the AI can trigger actions in the automation platform (like updating a CRM, sending an email, or logging results in Google Sheets).
* **Configuration**: Set up triggers and actions in the [Automation Platform](/automation-platform/introduction), then link to your assistant via webhook configuration in [Post-call Actions](/ai-assistants/settings/post-call-actions#webhook-configuration).
## 6. Custom Mid-Call Tools
* **Purpose**: Create your own custom API integrations that the AI can use during calls.
* **Use Cases**: Check inventory, verify customer data, fetch real-time information, or integrate with your own systems.
* **Types**: A **HTTP request** tool calls your own endpoint directly, or an **Automation Platform** tool auto-creates a linked no-code flow for multi-step logic.
* **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#custom-mid-call-tools) by defining API endpoints, parameters, static fields, and when the AI should use them. Values support dynamic [system variables](/ai-assistants/custom-tools#system-variables--dynamic-values) like `{{customer_phone}}`.
* For detailed setup instructions and examples, see our [Custom Mid-Call Tools Guide](/ai-assistants/custom-tools).
## 7. MCP Servers
* **Purpose**: Connect a remote [Model Context Protocol](https://modelcontextprotocol.io) server so the AI can use **many** external tools at once, discovered automatically.
* **Use Cases**: Connect a platform like HubSpot, your internal APIs, or knowledge tools to pull live data and trigger actions mid-conversation.
* **Configuration**: Add a server under the **Mid call tools / MCP** page, then assign it to an assistant. See the [MCP Servers Guide](/ai-assistants/mcp-servers).
***
**Note:** Tools can be combined. For instance, the AI can use a custom tool to check availability, then schedule an appointment, and finally transfer to a human agent if needed.
# Voice Selection & Voice Cloning
Source: https://docs.autocalls.ai/ai-assistants/voice-selection
Learn how to select built-in voices or clone your own voice for your AI assistants
Your AI assistant can speak with **built-in voices** or a **custom cloned voice**. Natural, realistic voices increase customer trust and engagement.
## TTS Provider
Select your Text-to-Speech provider in the assistant settings. Available in **Pipeline** and **Dualplex** modes.
**Available Providers:**
* **ElevenLabs** - High-quality voices
* **Cartesia** - Fast, low-latency synthesis
The TTS Provider dropdown appears after selecting a language.
## Voice Library
Each TTS provider has its own voice library. Select male/female, accent, or language based on your provider.
## Importing Voices from the Provider Library
Beyond the built-in catalog, you can import any public voice from your TTS provider's own library (ElevenLabs Voice Library or Cartesia Library). Available in **Pipeline** and **Dualplex** modes.
**Steps:**
1. Click "Import voice" next to the voice selector
2. Pick the provider (ElevenLabs or Cartesia)
3. Open the provider's voice library and find a voice you like
4. Copy the voice link or ID (the ⋮ menu next to the voice)
5. Paste it in the import field and click Import
You'll get a notification when the voice is ready — it then appears in the voice picker like any other voice, billed at the same flat per-minute rate.
**Notes:**
* ElevenLabs voices with a custom price set by their creator cannot be imported.
* Private or unshared voices cannot be imported — only public library voices.
## Voice Cloning
Clone a voice from an audio sample. Available in **Pipeline** and **Dualplex** modes.
**Clone to Provider:**
* **Cartesia** - Single audio file, at least 10 seconds, 1 speaker, no background noise
* **ElevenLabs** - Samples over 1 minute, 1 speaker, no background noise. Max 5 minutes total. Quality over quantity.
**Steps:**
1. Click "Clone voice" next to voice selector
2. Select provider (Cartesia or ElevenLabs)
3. Choose the voice language
4. Enter a name for your voice
5. Record or upload audio
6. Wait for processing
7. Select your new voice from dropdown
## Best Practices
1. **High-Quality Audio**: Clearer samples give better results
2. **Steady Delivery**: Natural tone, no abrupt changes
3. **No Background Noise**: Record in a quiet environment
4. **Legal**: Ensure permission to clone voices that aren't yours
***
**Tip:** After selecting or cloning a voice, do a test call to confirm it sounds as expected.
# Web Widget
Source: https://docs.autocalls.ai/ai-assistants/web-widget
Embed your AI assistant on your website with voice and chat capabilities
Add your AI assistant to any website with a customizable widget that supports voice calls, text chat, or both.
## Overview
The Web Widget allows website visitors to interact with your AI assistant directly through:
* **Voice conversations:** Real-time voice calls in the browser
* **Text chat:** Messaging interface for text-based interactions
* **Hybrid mode:** Seamless switching between voice and chat
## Accessing Widget Configuration
1. Navigate to your assistant's edit page
2. Click the **"Web widget"** button (yellow/warning color)
3. The widget configuration panel opens with live preview
Web Widget is a premium feature. Ensure your plan includes web widget access before configuration.
## Widget Modes
Choose how visitors interact with your assistant:
### Voice & Chat (Recommended)
Users can seamlessly switch between voice and text during conversations.
**Best for:**
* Maximum flexibility for users
* Accessibility (voice for mobile, chat for quiet environments)
* Complex interactions requiring both modes
### Chat Only
Text-based messaging interface only.
**Best for:**
* Customer support and FAQs
* Environments where voice isn't appropriate
* Lead capture and qualification forms
### Voice Only
Real-time voice conversations only.
**Best for:**
* Phone-like experience on website
* Voice-first use cases
* Hands-free interactions
## Configuration Options
### General Tab
**Widget Mode:** Voice, Chat, or Voice & Chat
**Widget Size:** Choose between standard or **extra large** layout
* **Standard**: Compact floating widget suitable for most use cases
* **Extra Large**: Half-screen panel on desktop, full-screen on mobile — ideal for detailed conversations
**Position:** Choose from 8 positions (bottom-right, bottom-left, bottom-center, middle-right, middle-left, top-right, top-left, top-center)
**Primary Color:** Brand color for buttons and accents
**Toggle Button Size:** Small or Normal
**Toggle Button Style:** Animated (glass morphism) or Simple (flat design)
**Auto-Open on Page Load:** When enabled, the widget automatically expands when the page loads — no click required from the visitor.
### Button Tab
**Custom Avatar:** Upload your own avatar image to replace the default widget icon. Appears on the toggle button and in the chat header. Max file size: 512KB, 1:1 aspect ratio (square).
**Button Main Text** (default: "Need help?") — primary text on the widget button
**Button Sub Text** (default: "Chat with us") — secondary text, hidden when using the small button size
**Tab Labels (Voice & Chat mode only):**
* Voice Tab Label (default: "Voice") — rename to match your brand language (e.g., "Call Us", "Speak")
* Chat Tab Label (default: "Chat") — rename to match your brand language (e.g., "Message", "Text")
### Header & Modal Tab
**Header Title** (default: "AI Assistant")
**Header Subtitle** (default: "Ready to help you ✨")
**Modal Title** (default: "Ready to chat?")
**Start Button Text** (default: "Start Voice Chat")
**Modal Description** (default: "Click below to start your conversation")
### Chat Settings Tab
This tab is only visible when the widget mode includes chat (Chat Only or Voice & Chat).
**Chat Placeholder** (default: "Type your message...")
**Send Button Label** (default: "Send message") — accessibility label for the send button
**Show Function Calls:** When disabled (default), LLM tool calls (e.g., calendar lookups, knowledge base queries) are hidden from the chat, keeping the conversation clean for end users. Enable to show tool usage details.
### Clickable Links in Chat
The chat widget supports **markdown formatting**, so your AI assistant can send clickable links, bold text, lists, and more.
To include clickable URLs in chat messages, use markdown link format in your assistant's prompt or initial message:
```
Check out our [latest offers](https://example.com/offers) or visit our [help center](https://example.com/help).
```
Add an instruction to your assistant's prompt like: *"When sharing links or URLs, always format them as clickable markdown links: `[link text](url)`"* — this ensures the AI consistently outputs clickable links instead of plain text URLs.
### Voice Settings Tab
This tab is only visible when the widget mode includes voice (Voice Only or Voice & Chat).
**Connecting Text** (default: "Connecting...")
**Disconnect Text** (default: "Disconnect")
**Error Text** (default: "Connection failed. Please try again.")
### Pre-Chat Form
Collect information before starting conversations:
**Form Configuration:**
* Pre-form Title (default: "Before we start...")
* Pre-form Description (default: "Please provide some information to help us assist you better")
* Submit Button Text (default: "Continue")
**Form Fields:**
Add custom fields to collect data:
* **Variable Name:** Internal variable name (maps to assistant variables). Only letters, numbers, dashes, and underscores allowed.
* **Field Label:** Display label shown to users
* **Field Type:** Text, Email, Phone, or Textarea
* **Required:** Make field mandatory
* **Placeholder:** Placeholder text shown in the field
* **Helper Text:** Optional description below the field
**Variable Mapping:**
Form field names automatically map to your assistant's variables, making collected data available during conversations.
**Example Form Fields:**
```
Name: Full Name (required, text)
Email: Email Address (required, email)
Company: Company Name (optional, text)
Message: How can we help? (optional, textarea)
```
### AI Response Settings
**AI Enabled:** When toggled on (default), the AI assistant automatically responds to incoming messages. Turn this off if you want to use the widget for manual-only conversations — messages are collected but the AI does not reply.
### Conversation Webhook
**Webhook URL:** Enter a URL to receive a webhook notification whenever a new conversation starts via the widget. Use this to trigger automation flows, log events to your CRM, or notify your team in real-time.
### Widget Display
**Enable Widget:** Master toggle that controls whether the widget loads on your website. When disabled, the widget will not appear even if the embed script is installed on your site. Use this to temporarily hide the widget without removing code from your website.
## Live Widget Preview
At the top of the configuration panel, a live preview shows exactly how your widget will look and behave on a website. The preview updates in real-time as you change any setting.
**Copy Preview URL** — copies the preview URL to your clipboard so you can open it in a separate browser tab or share it with your team for review.
**Reset Data** — clears all stored conversation history, form submissions, and preferences in the preview. Use this to simulate a first-time visitor experience after testing.
The preview is fully interactive — you can click the widget button, fill out the pre-chat form, and start a real conversation to test your configuration before deploying.
### Embed Code
The embed code section provides a ready-to-copy script tag. Click **Copy** to copy it to your clipboard, then paste it into your website before the closing `