Voicemail detection

Enable agents to automatically detect voicemail systems and optionally leave messages.

Overview

The Voicemail Detection tool allows your ElevenLabs agent to automatically identify when a call has been answered by a voicemail system rather than a human. This system tool enables agents to handle automated voicemail scenarios gracefully by either leaving a pre-configured message or ending the call immediately.

Functionality

  • Automatic Detection: The LLM analyzes conversation patterns to identify voicemail systems based on automated greetings and prompts
  • Configurable Response: Choose to either leave a custom voicemail message or end the call immediately when voicemail is detected
  • Call Termination: After detection and optional message delivery, the call is automatically terminated
  • Status Tracking: Voicemail detection events are logged and can be viewed in conversation history and batch call results

Parameters:

  • reason (string, required): The reason for detecting voicemail (e.g., “automated greeting detected”, “no human response”)

Function call format:

1{
2 "type": "function",
3 "function": {
4 "name": "voicemail_detection",
5 "arguments": "{\"reason\": \"Automated greeting detected with request to leave message\"}"
6 }
7}

Configuration Options

The voicemail detection tool can be configured with the following options:

Voicemail detection configuration
interface

  • Voicemail Message: You can configure an optional custom message to be played when voicemail is detected. This message supports dynamic variables, allowing you to personalize voicemail messages with runtime values such as {{user_name}} or {{appointment_time}}

API Implementation

When creating an agent via API, you can add the Voicemail Detection tool to your agent configuration. It should be defined as a system tool:

1from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
2
3elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
4
5response = elevenlabs.conversational_ai.agents.create(
6 conversation_config=ConversationalConfig(
7 agent=AgentConfig(
8 prompt={
9 "built_in_tools": {
10 "voicemail_detection": {
11 "type": "system",
12 "name": "voicemail_detection",
13 # Optional: customize when the tool should be triggered
14 "description": "",
15 "params": {
16 "system_tool_type": "voicemail_detection",
17 # Optional: message left when voicemail is detected
18 "voicemail_message": "Sorry I missed you. I'll call back later.",
19 },
20 }
21 }
22 },
23 ),
24 ),
25)