Skip to main content
ElevenLabs Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

Conversation flow

Conversation flow settings determine how your assistant handles periods of user silence, interruptions during speech, and turn-taking behavior. These settings help create more natural conversations and can be customized based on your use case.

Limit the total duration of each conversation

Configure how long your assistant waits during periods of silence

Provide natural audio feedback when your agent needs time to think

Control whether users can interrupt your assistant while speaking

Adjust how quickly your assistant responds to user input

The Max conversation duration setting limits the total time a conversation can remain active. This global limit starts when the conversation begins and applies independently of turn-level timeouts. The default is 600 seconds (10 minutes). You can set a value from 60 to 7,200 seconds.

In the CLI and API, configure this setting with the conversation_config.conversation.max_duration_seconds field.

Open your agent in the dashboard, navigate to the Advanced tab, and adjust Max conversation duration under Call limits. Save your changes.

Bash
elevenlabs agents pull --agent agent_7101k5zvyjhmfg983brhmhkd98n6

Set conversation_config.conversation.max_duration_seconds:

JSON
{
  "conversation_config": {
    "conversation": {
      "max_duration_seconds": 1200
    }
  }
}
Bash
elevenlabs agents push --agent agent_7101k5zvyjhmfg983brhmhkd98n6
Python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "conversation": {"max_duration_seconds": 1200},
    },
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    conversation: { maxDurationSeconds: 1200 },
  },
});

The Take turn after silence setting determines how long your assistant waits during periods of user silence before taking the next turn and prompting for a response.

The value is specified in seconds and must be between 1 and 30 seconds. In the CLI and API, configure this setting with the conversation_config.turn.turn_timeout field.

Open your agent in the dashboard, navigate to the Advanced tab, and adjust the Take turn after silence value. Save your changes.

Take turn after silence setting
Bash
elevenlabs agents pull --agent "<agent-name>"

Set conversation_config.turn.turn_timeout:

JSON
{
  "conversation_config": {
    "turn": {
      "turn_timeout": 7
    }
  }
}
Bash
elevenlabs agents push --agent "<agent-name>"
Python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {"turn_timeout": 7},
    },
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: { turnTimeout: 7 },
  },
});
  • Set shorter timeouts (5-10 seconds) for casual conversations where quick back-and-forth is expected
  • Use longer timeouts (10-30 seconds) when users may need more time to think or formulate complex responses
  • Consider your user context - customer service may benefit from shorter timeouts while technical support may need longer ones

Soft timeout provides immediate audio feedback when the LLM takes longer than expected to generate a response. Instead of awkward silence while waiting, your agent speaks a brief filler phrase like "Hmm..." or "Let me think..." to maintain natural conversational flow.

This feature is useful for:

  • Complex queries requiring longer LLM processing
  • Handling variable latency from LLM providers
  • Creating more human-like conversations with natural thinking pauses
  1. When the user finishes speaking, the system starts generating an LLM response
  2. A timer begins based on the configured timeout duration
  3. If the LLM response arrives before the timeout, no filler is spoken
  4. If the timeout is reached before the LLM responds:
    • The configured filler message is spoken immediately
    • The agent continues waiting for the actual response
    • Once ready, the agent speaks the full LLM response

Soft timeout triggers only once per turn to prevent multiple fillers in succession.

Open your agent in the dashboard, navigate to the Advanced tab, and adjust the Soft timeout settings. Save your changes.

Soft timeout settings
Bash
elevenlabs agents pull --agent "<agent-name>"

Set conversation_config.turn.soft_timeout_config:

JSON
{
  "conversation_config": {
    "turn": {
      "soft_timeout_config": {
        "timeout_seconds": 3.0,
        "message": "Hhmmmm...yeah.",
        "use_llm_generated_message": false
      }
    }
  }
}
Bash
elevenlabs agents push --agent "<agent-name>"
Python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {
            "soft_timeout_config": {
                "timeout_seconds": 3.0,
                "message": "Hhmmmm...yeah.",
                "use_llm_generated_message": False,
            },
        },
    },
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: {
      softTimeoutConfig: {
        timeoutSeconds: 3.0,
        message: "Hhmmmm...yeah.",
        useLlmGeneratedMessage: false,
      },
    },
  },
});

The time in seconds before the filler message is spoken while waiting for the LLM response.

Setting Description
Default -1 (disabled)
Range 0.5 to 8.0 seconds
Recommended 3.0 seconds

A predefined filler phrase spoken when soft timeout triggers.

Setting Description
Default "Hhmmmm...yeah."
Length 1–200 characters

This message supports:

  • Language overrides: Auto-translates to additional languages configured for your agent
  • Client overrides: Can be customized per-call via the SDK

When enabled, generates a contextually-appropriate filler phrase dynamically using a lightweight LLM, instead of the static message.

Setting Description
Default false
Fallback Uses static message if generation fails

The system uses recent conversation context (up to 4 messages, 1000 characters) to generate relevant fillers like "Hmm...", "I see...", "Understood...", "Got it...", or "Alright..."

  • Avoid time indicators in filler messages (e.g., "One second...") as actual response times are unpredictable
  • Disable soft timeout for quick FAQ bots where responses are consistently fast

Interruption handling determines whether users can interrupt your assistant while it's speaking.

Interruption settings can be configured in the agent's Advanced tab under Client Events.

To enable interruptions, make sure interruption is a selected client event.

Interruption allowed Interruption ignored
  • Enable interruptions for natural conversational flows where back-and-forth dialogue is expected
  • Disable interruptions when message completion is critical (e.g., terms and conditions, safety information)
  • Consider your use case context - customer service may benefit from interruptions while information delivery may not

Turn eagerness controls how quickly your assistant responds to user input during conversation. This setting determines how eager the assistant is to take turns and start speaking based on detected speech patterns.

The assistant now includes two key improvements for more natural turn-taking:

  1. Faster response generation - The assistant starts speaking after receiving enough words and a comma from the language model, rather than waiting for complete sentences. This reduces latency and creates more responsive conversations, especially when the assistant has longer responses.

  2. Configurable turn eagerness - Control how quickly the assistant interprets pauses or speech patterns as opportunities to respond.

Three modes are available:

  • Eager - The assistant responds quickly to user input, jumping in at the earliest opportunity. Best for fast-paced conversations where immediate responses are valued.
  • Normal - Balanced turn-taking that works well for most conversational scenarios. The assistant waits for natural conversation breaks before responding.
  • Patient - The assistant waits longer before taking its turn, giving users more time to complete their thoughts. Ideal for collecting detailed information or when users need time to formulate responses.

Open your agent in the dashboard, navigate to the Agent settings, and select the desired turn eagerness mode. Save your changes.

Bash
elevenlabs agents pull --agent "<agent-name>"

Set conversation_config.turn.turn_eagerness to one of "patient", "normal", or "eager":

JSON
{
  "conversation_config": {
    "turn": {
      "turn_eagerness": "normal"
    }
  }
}
Bash
elevenlabs agents push --agent "<agent-name>"
Python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "turn": {"turn_eagerness": "normal"},
    },
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    turn: { turnEagerness: "normal" },
  },
});
  • Use Eager mode for customer service scenarios where quick responses improve user experience
  • Use Patient mode when collecting structured information like phone numbers, addresses, or email addresses
  • Use Normal mode as a default for general conversational flows
  • Combine with workflows to dynamically adjust turn eagerness based on conversation context
  • Test different settings with your specific use case to find the optimal balance
  • Shorter timeouts (5-10 seconds) for responsive interactions - Enable interruptions to allow customers to interject with questions - Eager turn eagerness for quick, responsive conversations
  • Moderate timeouts (10-15 seconds) to allow users time to gather information - Enable interruptions for natural conversation flow - Patient turn eagerness when collecting phone numbers, addresses, or email addresses
  • Longer timeouts (15-30 seconds) to allow for complex responses - Disable interruptions to ensure full delivery of legal information - Normal turn eagerness to maintain steady pacing
  • Longer timeouts (10-30 seconds) to allow time to think and formulate responses - Enable interruptions to allow students to interject with questions - Patient turn eagerness to give students adequate time to respond
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu