Skip to main content
ElevenLabs Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

Tool interruptions

By default a user can interrupt the agent at any point, including while a tool is executing. For some tools this is undesirable: a payment confirmation or a compliance disclaimer read out after a lookup should be delivered in full.

The interruption_mode field controls this per tool. It is available on webhook tools, client tools, system tools, and MCP servers.

Value Dashboard label Behavior
allow Allow The user can interrupt the agent at any time. This is the default.
disable_during_tool Disable during execution Interruptions are suppressed only while the tool runs. The agent response that follows can be interrupted.
disable_during_tool_and_turn Disable during whole turn Interruptions are suppressed while the tool runs and for the agent response that follows it.

When several tools run in parallel, the strictest mode among them applies for that turn.

Select the tool you want to configure in the Tools tab.

Open Advanced settings and choose an option under Interruptions.

Click Save to apply the change.

Bash
elevenlabs tools pull

Set interruption_mode on the tool:

JSON
{
  "type": "webhook",
  "name": "confirm_payment",
  "description": "Confirms a pending payment",
  "interruption_mode": "disable_during_tool_and_turn"
}
Bash
elevenlabs tools push
Python
from elevenlabs import ElevenLabs, ToolRequestModel

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.tools.update(
    tool_id="tool_7101k5zvyjhmfg983brhmhkd98n6",
    request=ToolRequestModel(
        tool_config={
            "type": "webhook",
            "name": "confirm_payment",
            "description": "Confirms a pending payment",
            "interruption_mode": "disable_during_tool_and_turn",
            "api_schema": {
                "url": "https://api.example.com/payments/confirm",
                "method": "POST",
            },
        },
    ),
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.tools.update("tool_7101k5zvyjhmfg983brhmhkd98n6", {
  toolConfig: {
    type: "webhook",
    name: "confirm_payment",
    description: "Confirms a pending payment",
    interruptionMode: "disable_during_tool_and_turn",
    apiSchema: {
      url: "https://api.example.com/payments/confirm",
      method: "POST",
    },
  },
});

An MCP server carries its own interruption_mode, which applies to every tool it exposes. Individual tools can override it through the server's tool_config_overrides, where the value set on a tool takes precedence over the server default.

  • Use disable_during_tool when the tool call itself must complete, such as a transfer or a keypad sequence, but the user should be able to interrupt the response afterwards.
  • Use disable_during_tool_and_turn when the response that follows the tool must be heard in full, such as a disclaimer or a confirmation read-back.
  • Leave the default allow in place elsewhere, since suppressing interruptions makes the conversation feel less responsive.
Suggest an edit

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

Export
Documentation menu