> ## Documentation Index
> Fetch the complete documentation index at: https://help.cloudtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# VoiceAgent Expert Mode

> Unlock advanced VoiceAgent settings for AI model, voice, and call handling.

> [!NOTE]
>
> This article explains how to use Expert Mode to view, edit, and import your VoiceAgent's full configuration through the *Advanced* tab.

**User level:** Admin

***

**Expert Mode** gives you direct access to your VoiceAgent's full configuration as a JSON file. It unlocks the *Advanced* tab in VoiceAgent settings, where you can view, edit, and import configurations with access to fields and fine-tuning options that are not available in the *Form* tab.

![](https://mintcdn.com/cloudtalk/akDGinDOBsihWn_p/images/help-center/articles/15933044/05b4c10fd19a-screenshot-2026-07-14-at-13-30-45.png?fit=max\&auto=format\&n=akDGinDOBsihWn_p\&q=85\&s=dd72b611a47c195276d367175de18678)

## What you can do with Expert Mode

Expert Mode is useful when you need to update a setting that is not available in the *Form* tab, such as switching to a specific AI model, adjusting voice behavior, or fine-tuning call handling. You open the *Advanced* tab, locate the relevant field, update the value, and save.

## How Expert Mode relates to the Form tab

The Form tab and the *Advanced* tab display the same configuration in two different ways. Any setting you configure in the *Form* tab is also present in the JSON, and changes made in one tab are reflected in the other.

Expert Mode extends what the *Form* tab offers. The *Advanced* tab exposes additional fields for fine-tuning AI model behavior, voice quality, and call handling that do not appear in the *Form* tab.

## Fields available in both tabs

The following fields can be configured in either the *Form* tab or the *Advanced* tab.

**Personality**

| ***Form* tab label** | **JSON field** | **What it sets** |
| - | - | - |
| Name | `agentName` | The VoiceAgent's display name |
| Direction | `direction` | Whether the agent handles inbound or outbound calls. Accepted values: `"inbound"` or `"outbound"`. |
| Language | `language` | The language the VoiceAgent speaks |
| Additional languages | `secondaryLanguages` | Additional languages the VoiceAgent can detect and switch to during a call. Optional. |
| Voice | `voice` | The voice used by the VoiceAgent |
| Greeting | `greeting` | The exact opening line the VoiceAgent says at the start of a call. If left empty, inbound agents fall back to a generic default; outbound agents open with silence. |

**Knowledge Sources**

| ***Form* tab label** | **JSON field** | **What it sets** |
| - | - | - |
| Knowledge bases | `knowledgeBaseIds` | Knowledge bases the VoiceAgent can draw on when answering questions |

**Behavior**

| ***Form* tab label** | **JSON field** | **What it sets** |
| - | - | - |
| Goal prompt | `goalPrompt` | The core instructions that define the VoiceAgent's behavior during a call |
| Skills | `skills` | Structured capabilities: Transfer to Human, Take a Message, Extract Information, Answer Questions, Appointment Booking |
| Scenarios | `scenarios` | How the VoiceAgent responds to specific situations, including ending calls |
| Guardrails | `guardrails` | Fixed responses for situations that require a consistent answer regardless of context |

## Expert-only fields

The following fields are only accessible through the *Advanced* tab.

### Conversation style

These two fields control how the VoiceAgent speaks. They are optional: if you don't set them, CloudTalk applies defaults that match the VoiceAgent's existing behavior. After your next save, both fields appear in the JSON automatically with their default values. This is expected.

<table>
  <tbody>
    <tr>
      <td>
        **Field**
      </td>

      <td>
        **What it sets**
      </td>

      <td>
        **Values**
      </td>
    </tr>

    <tr>
      <td>
        `tone`
      </td>

      <td>
        How the VoiceAgent sounds. A list of style presets; they can be combined, but one or two work best (each additional preset dilutes the others). Order doesn't matter, duplicates are removed automatically, free-text values are not accepted.
      </td>

      <td>
        `"professional"`, `"friendly"`, `"casual"`, `"calm"`, `"empathetic"`, `"direct"`.

        Optional; default `["friendly", "direct"]`.
      </td>
    </tr>

    <tr>
      <td>
        `verbosity`
      </td>

      <td>
        How much the VoiceAgent says per reply. `"concise"` = the shortest useful answer. `"standard"` = one to two sentences, offering more if needed. `"thorough"` = fuller replies with helpful context (still brief; this is a phone call).
      </td>

      <td>
        `"concise"` / `"standard"` / `"thorough"`. Optional; default `"standard"`.
      </td>
    </tr>
  </tbody>
</table>

**Tone preset guide:**

| **Preset** | **Effect** |
| - | - |
| `professional` | Measured, precise, and respectful |
| `friendly` | Warm and personable |
| `casual` | Relaxed and informal, like a helpful colleague |
| `calm` | Steady, unhurried, and patient |
| `empathetic` | Acknowledges the caller's feelings before moving to solutions |
| `direct` | Leads with the answer and keeps pleasantries to a minimum |

Regardless of tone and verbosity, the VoiceAgent always stays brief during operational moments: confirmations, read-backs, farewells, and transfer or booking steps.

Setting an unsupported value shows a validation message listing the allowed values and the configuration isn't saved.

### AI model

| **Field** | **What it sets** |
| - | - |
| `llmOverride` | Pins a specific AI model instead of using automatic selection. See the list of supported models below. |
| `providerOverride` | Forces a specific speech provider (`"elevenlabs"` or `"deepgram"`). In most cases this does not need to be set manually, as the language determines the provider automatically. |
| `temperature` | Controls how varied the VoiceAgent's responses are. Accepts values from `0.0` to `1.0`. For professional or structured agents, a value between `0.1` and `0.3` is recommended. Required. |

**Supported models for `llmOverride`**

| **Model** | **Value** |
| - | - |
| GPT-4o Mini | `openai - gpt-4o-mini` |
| GPT-4o | `openai - gpt-4o` |
| GPT-4.1 | `openai - gpt-4.1` |
| GPT-4.1 Mini | `openai - gpt-4.1-mini` |
| GPT-4.1 Nano | `openai - gpt-4.1-nano` |
| GPT-5 | `openai - gpt-5` |
| GPT-5 Mini | `openai - gpt-5-mini` |
| GPT-5 Nano | `openai - gpt-5-nano` |
| GPT-5.1 | `openai - gpt-5.1` |
| Claude 3 Haiku | `anthropic - claude-3-haiku` |
| Claude Haiku 4.5 | `anthropic - claude-haiku-4-5` |
| Claude 3.7 Sonnet | `anthropic - claude-3-7-sonnet` |
| Gemini 2.0 Flash Lite | `google - gemini-2.0-flash-lite` |
| Gemini 1.5 Pro | `google - gemini-1.5-pro` |

### Voice tuning

| **Field** | **What it sets** | **Values** |
| - | - | - |
| `stability` | Controls how consistent the VoiceAgent's voice sounds throughout the call. Higher values produce a more stable voice. | `0.0`–`1.0`. Required. |
| `similarity` | Controls how closely the voice matches the original voice model. | `0.0`–`1.0`. Required. |
| `optimizeStreamingLatency` | Trades voice quality for lower response latency. Higher values reduce latency but may affect quality. Do not set this to `4` as it disables text normalization, causing numbers and dates to be mispronounced. | `0`–`4`. Required. |

### Call behavior

| **Field** | **What it sets** | **Values** |
| - | - | - |
| `maxCallDuration` | Sets a hard limit on call length in minutes. | Recommended: 3–5 for outbound, 15–30 for inbound. Required. |
| `dialTime` | How long the VoiceAgent waits for an answer on outbound calls before giving up. | `5`–`120` seconds. Optional. |

### Advanced ElevenLabs tuning

These settings apply only when your VoiceAgent uses ElevenLabs, which is the default for most language configurations.

| **Field** | **What it sets** | **Values** |
| - | - | - |
| `speculativeTurn` | The VoiceAgent begins composing its reply before the caller has finished speaking, reducing perceived response latency. | `true` / `false` |
| `turnEagerness` | Controls how readily the VoiceAgent takes its turn when the caller pauses. | `"patient"` / `"normal"` / `"eager"` |
| `turnModel` | Sets the version of the turn-detection model used. | `"turn_v2"` / `"turn_v3"` |
| `vad` | Filters out background noise so it does not trigger an unintended response. | `true` / `false` |
| `asrKeywords` | Words or phrases to prioritize in speech recognition. Useful for product names or technical terminology. | List of strings |
| `interruptionIgnoreTerms` | Short caller acknowledgements (e.g. agreement sounds) that should not count as an interruption, so the VoiceAgent keeps talking through them. Written in the caller's language. | List of strings. Optional. |
| `interruptionIgnoreTermLanguages` | The languages the ignore terms are matched in. | List of language codes. Optional. |
| `backgroundSound` | Plays an ambient sound bed under the VoiceAgent's speech. | Object: `preset` (required when backgroundSound is set; one of `"office"`, `"office2"`, `"restaurant"`, `"city"`, `"typing"`, `"elevator"`, `"elevator2"`, `"elevator3"`, `"elevator4"`), `volume` (`0.0`–`1.0`, optional), `crossfadeLoop` (`true`/`false`, optional; loops the sound seamlessly). |

In the *Advanced* tab, these fields must be placed inside an `elevenLabsSettings` object. They do not go at the root level of the configuration. Here is an example showing how to nest them:

```json theme={"system"}
{
  "agentName": "Clinic Reception",
  "direction": "inbound",
  "language": "es",
  "temperature": 0.2,
  "elevenLabsSettings": {
    "speculativeTurn": true,
    "turnEagerness": "patient",
    "turnModel": "turn_v3",
    "vad": true,
    "asrKeywords": ["Capil Clinic", "injerto capilar", "Barcelona"],
    "interruptionIgnoreTerms": ["vale", "sí", "ajá"],
    "interruptionIgnoreTermLanguages": ["es"],
    "backgroundSound": {
      "preset": "office",
      "volume": 0.3,
      "crossfadeLoop": true
    }
  }
}
```

> [!WARNING]
>
> When a saved configuration includes `elevenLabsSettings`, the sent object replaces the stored one. To clear a single sub-field, omit it from the sent object. Omitting `elevenLabsSettings` entirely keeps the stored settings.

These fields must be placed inside `elevenLabsSettings`; at the root level they are not recognized and the save fails with a validation error.

## Importing and exporting configurations

You can export a configuration from the *Advanced* tab and import it into a different VoiceAgent, or share it with another user to import into their account.

Most configurations import immediately with no additional setup required. The exception is when a configuration references resources specific to your account, such as a knowledge base, a custom tool, a phone number, or a calendar integration. These connections need to be set up manually after importing.

After any successful import, save the VoiceAgent twice. A known set of edge cases only appears after the second save.

Exported configurations now include `tone` and `verbosity`. If an imported configuration contains an unsupported value for these (or any other) fields, the import is rejected with a message naming the field and the allowed values.

***

*Need help or have a question?* Just reach out through our [Support portal](https://support.cloudtalk.io/hc/en-us/requests/new?ticket_form_id=26305535257884) — we’re here for you.


## Related topics

- [Triggering a VoiceAgent Call from Microsoft Dynamics 365](https://help.cloudtalk.io/en/articles/15479706-triggering-a-voiceagent-call-from-microsoft-dynamics-365.md)
- [VoiceAgent templates: AI Receptionist](https://help.cloudtalk.io/en/articles/14057883-voiceagent-templates-ai-receptionist.md)
- [Tools for VoiceAgent](https://help.cloudtalk.io/en/articles/11275049-tools-for-voiceagent.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.