Skip to content

Commit 01cabd0

Browse files
committed
voicemail mixing warning
1 parent 439f2f5 commit 01cabd0

File tree

3 files changed

+66
-50
lines changed

3 files changed

+66
-50
lines changed

fern/calls/customer-join-timeout.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Customer join timeout
2+
title: Customer Join Timeout
33
subtitle: Configure web call join timeout for better success rates
44
slug: calls/customer-join-timeout
55
description: Set maximum time for users to join web calls before automatic termination
66
---
77

88
## Overview
99

10-
**Customer join timeout** sets the maximum time users have to join a web call before it's automatically terminated. This parameter helps you optimize call success rates by accounting for real-world connection challenges.
10+
**Customer Join Timeout** sets the maximum time users have to join a web call before it's automatically terminated. This parameter helps you optimize call success rates by accounting for real-world connection challenges.
1111

1212
**You'll learn to:**
1313

@@ -269,7 +269,7 @@ A user attempting to join needs:
269269
Start with 30-60 seconds and adjust based on your success rate analytics.
270270
</Tip>
271271

272-
### "Meeting has ended" message
272+
### Meeting has ended message
273273

274274
This message appears when a call ends naturally and is **informational only**—not an error.
275275

fern/docs.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ navigation:
130130
contents:
131131
- page: Transient vs permanent configurations
132132
path: assistants/concepts/transient-vs-permanent-configurations.mdx
133-
icon: fa-light fa-toggle-on
134133
- section: Conversation behavior
135134
icon: fa-light fa-comments
136135
contents:
@@ -144,7 +143,6 @@ navigation:
144143
path: assistants/voice-formatting-plan.mdx
145144
- page: Flush syntax
146145
path: assistants/flush-syntax.mdx
147-
icon: fa-light fa-forward
148146
- page: Background messages
149147
path: assistants/background-messages.mdx
150148
- page: Idle messages
@@ -162,7 +160,6 @@ navigation:
162160
path: customization/speech-configuration.mdx
163161
- page: Voice pipeline configuration
164162
path: customization/voice-pipeline-configuration.mdx
165-
icon: fa-light fa-waveform-lines
166163
- page: Voice fallback plan
167164
path: voice-fallback-plan.mdx
168165
- page: OpenAI realtime speech-to-speech
@@ -409,7 +406,6 @@ navigation:
409406
path: calls/call-features.mdx
410407
- page: Customer join timeout
411408
path: calls/customer-join-timeout.mdx
412-
icon: fa-light fa-clock
413409
- page: Voicemail detection
414410
path: calls/voicemail-detection.mdx
415411
- section: Transfer calls

fern/tools/voicemail-tool.mdx

Lines changed: 63 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ slug: tools/voicemail-tool
55
---
66

77
<Warning>
8-
**Beta Feature**: The voicemail tool is currently in beta. Features and behavior may change as we continue to improve this functionality based on user feedback.
8+
**Beta Feature**: The voicemail tool is currently in beta. Features and
9+
behavior may change as we continue to improve this functionality based on user
10+
feedback.
911
</Warning>
1012

1113
## Overview
1214

1315
The voicemail tool gives your assistant direct control over when and how to leave voicemail messages. Unlike [automatic voicemail detection](/calls/voicemail-detection), which operates independently of your assistant, this tool allows your assistant to decide when it's reached a voicemail system and leave a configured message.
1416

1517
**Key benefits:**
18+
1619
- **Maximum flexibility** - Assistant decides when and what to say
1720
- **Cost-effective** - Only triggers when needed
1821
- **Context-aware** - Messages can be customized based on conversation
@@ -28,7 +31,10 @@ When you add the voicemail tool to your assistant:
2831
4. The call ends automatically after message delivery
2932

3033
<Note>
31-
This approach differs from [automatic voicemail detection](/calls/voicemail-detection), which detects voicemail at the system level. The voicemail tool puts detection and response entirely in the assistant's hands.
34+
This approach differs from [automatic voicemail
35+
detection](/calls/voicemail-detection), which detects voicemail at the system
36+
level. The voicemail tool puts detection and response entirely in the
37+
assistant's hands.
3238
</Note>
3339

3440
## Configuration
@@ -71,30 +77,31 @@ import { VapiClient } from "@vapi-ai/server-sdk";
7177
const vapi = new VapiClient({ token: process.env.VAPI_API_KEY });
7278

7379
const assistant = await vapi.assistants.create({
74-
model: {
75-
provider: "openai",
76-
model: "gpt-4o",
77-
messages: [{
78-
type: "system",
79-
content: `You are a sales representative for Acme Corp.
80-
If at any point you determine you're speaking to a voicemail system
81-
(greeting mentions 'unavailable', 'leave a message', 'voicemail', etc.),
82-
immediately use the leave_voicemail tool.`
83-
}],
84-
tools: [{
85-
type: "voicemail",
86-
function: {
87-
name: "leave_voicemail",
88-
description: "Leave a voicemail message when you detect you've reached a voicemail system"
89-
},
90-
messages: [{
91-
type: "request-start",
92-
content: "Hi, this is {{company}}. {{message}}. Please call us back at {{phone}}."
93-
}]
94-
}]
95-
}
80+
model: {
81+
provider: "openai",
82+
model: "gpt-4o",
83+
messages: [{
84+
type: "system",
85+
content: `You are a sales representative for Acme Corp.
86+
If at any point you determine you're speaking to a voicemail system
87+
(greeting mentions 'unavailable', 'leave a message', 'voicemail', etc.),
88+
immediately use the leave_voicemail tool.`
89+
}],
90+
tools: [{
91+
type: "voicemail",
92+
function: {
93+
name: "leave_voicemail",
94+
description: "Leave a voicemail message when you detect you've reached a voicemail system"
95+
},
96+
messages: [{
97+
type: "request-start",
98+
content: "Hi, this is {{company}}. {{message}}. Please call us back at {{phone}}."
99+
}]
100+
}]
101+
}
96102
});
97-
```
103+
104+
````
98105
```python title="Python SDK"
99106
from vapi import Vapi
100107
@@ -106,9 +113,9 @@ assistant = client.assistants.create(
106113
"model": "gpt-4o",
107114
"messages": [{
108115
"type": "system",
109-
"content": """You are a sales representative for Acme Corp.
110-
If at any point you determine you're speaking to a voicemail system
111-
(greeting mentions 'unavailable', 'leave a message', 'voicemail', etc.),
116+
"content": """You are a sales representative for Acme Corp.
117+
If at any point you determine you're speaking to a voicemail system
118+
(greeting mentions 'unavailable', 'leave a message', 'voicemail', etc.),
112119
immediately use the leave_voicemail tool."""
113120
}],
114121
"tools": [{
@@ -124,7 +131,8 @@ assistant = client.assistants.create(
124131
}]
125132
}
126133
)
127-
```
134+
````
135+
128136
</CodeBlocks>
129137
130138
## Message Configuration
@@ -145,7 +153,8 @@ Define the voicemail message in the tool configuration:
145153
```
146154

147155
<Tip>
148-
Use template variables like `{{company}}`, `{{message}}`, and `{{phone}}` to make your voicemail messages dynamic while keeping them consistent.
156+
Use template variables like `{{ company }}`, `{{ message }}`, and `{{ phone }}`
157+
to make your voicemail messages dynamic while keeping them consistent.
149158
</Tip>
150159

151160
### **Pre-recorded Audio Messages**
@@ -166,7 +175,8 @@ For consistent quality and pronunciation, use pre-recorded audio files by provid
166175
**Supported formats**: `.wav` and `.mp3` files
167176

168177
<Note>
169-
Pre-recorded audio messages are ideal for brand-specific messaging or when you need precise pronunciation of phone numbers, website URLs, or company names.
178+
Pre-recorded audio messages are ideal for brand-specific messaging or when you
179+
need precise pronunciation of phone numbers, website URLs, or company names.
170180
</Note>
171181

172182
## Advanced Examples
@@ -237,44 +247,55 @@ Using pre-recorded audio for professional voicemail messages:
237247
}
238248
```
239249

240-
241-
242250
## Best Practices
243251

244252
### Detection prompting
253+
245254
Be specific about voicemail indicators in your system prompt:
255+
246256
- "unavailable"
247257
- "leave a message"
248258
- "voicemail"
249259
- "at the tone"
250260
- "beep"
251261

252262
### Message structure
263+
253264
Keep voicemail messages:
265+
254266
- **Brief** - Under 30 seconds
255267
- **Clear** - State name, company, and purpose
256268
- **Actionable** - Include callback number or next steps
257269
- **Professional** - Match your brand voice
258270

259271
### Error handling
272+
260273
Consider edge cases:
274+
261275
- Long voicemail greetings
262276
- Voicemail box full scenarios
263277
- Systems requiring keypad input
264278

265279
## Voicemail Tool vs. Automatic Detection
266280

267-
| Feature | Voicemail Tool | [Automatic Detection](/calls/voicemail-detection) |
268-
|---------|----------------|---------------------------------------------------|
269-
| Control | Assistant-driven | System-driven |
270-
| Flexibility | High - custom logic | Medium - predefined behavior |
271-
| Cost | Lower - only when used | Higher - continuous monitoring |
272-
| Setup complexity | Simple - just add tool | Moderate - configure detection |
273-
| Message customization | Full control | Limited to configured message |
274-
| Detection accuracy | Depends on prompt | Provider-specific (Vapi, Google, etc.) |
281+
| Feature | Voicemail Tool | [Automatic Detection](/calls/voicemail-detection) |
282+
| --------------------- | ---------------------- | ------------------------------------------------- |
283+
| Control | Assistant-driven | System-driven |
284+
| Flexibility | High - custom logic | Medium - predefined behavior |
285+
| Cost | Lower - only when used | Higher - continuous monitoring |
286+
| Setup complexity | Simple - just add tool | Moderate - configure detection |
287+
| Message customization | Full control | Limited to configured message |
288+
| Detection accuracy | Depends on prompt | Provider-specific (Vapi, Google, etc.) |
289+
290+
<Warning>
291+
Avoid combining the **voicemail tool** with **automatic detection**, as this
292+
could result in false positives and other complications.
293+
</Warning>
275294

276295
<Info>
277-
Choose the **voicemail tool** when you need maximum flexibility and cost efficiency. Choose **automatic detection** when you need guaranteed system-level detection without relying on assistant prompting.
296+
Choose the **voicemail tool** when you need maximum flexibility and cost
297+
efficiency. Choose **automatic detection** when you need guaranteed
298+
system-level detection without relying on assistant prompting.
278299
</Info>
279300

280301
## Common Use Cases
@@ -289,4 +310,3 @@ Choose the **voicemail tool** when you need maximum flexibility and cost efficie
289310
- Learn about other [default tools](/tools/default-tools)
290311
- Explore [automatic voicemail detection](/calls/voicemail-detection) for system-level handling
291312
- See how to create [custom tools](/tools/custom-tools) for your specific needs
292-

0 commit comments

Comments
 (0)