Multimodal input
Overview
Section titled “Overview”Multimodal input settings control extra ways users can send information to the agent beyond speech. They live in the agent's Advanced tab, under Multimodal input.
Let users attach images and PDFs in chat
Collect keypad digits from callers during phone conversations
File input
Section titled “File input”File input lets users send images and PDFs to the agent in chat. The agent can read those files when the selected model supports image and/or document input.
Configuration
Section titled “Configuration”| Field | Type | Default | Description |
|---|---|---|---|
enabled |
boolean |
true |
When true, users may attach images or PDFs if the model supports that input type. |
max_files_in_memory |
integer |
10 |
How many recently uploaded files are held in memory at once. Range: 1 to 10. When the limit is reached, older files are replaced with a brief summary. |
max_files_per_conversation |
integer |
10 |
Total files a user can upload in one conversation. Uploads are billed per file. Use -1 for no limit. Must be -1 or greater than or equal to max_files_in_memory. |
Users can attach files in the widget, supported chat channels such as Slack, or the upload conversation file API.
Update via the dashboard
Section titled “Update via the dashboard”Open Multimodal input
Section titled “Open Multimodal input”Open your agent in the dashboard, confirm the selected model supports image and/or PDF input, then go to the Advanced tab.
Enable file attachments
Section titled “Enable file attachments”Under Multimodal input, turn on Allow file attachments.
Set file limits
Section titled “Set file limits”Optionally set Files kept in memory and Max files per conversation.
Save your changes
Section titled “Save your changes”Save the agent. Users can then attach images and PDFs in chat.
Update via the CLI
Section titled “Update via the CLI”Pull the agent configuration
Section titled “Pull the agent configuration”elevenlabs agents pull --agent agent_7101k5zvyjhmfg983brhmhkd98n6Edit the agent configuration
Section titled “Edit the agent configuration”Set conversation_config.conversation.file_input:
{
"conversation_config": {
"conversation": {
"file_input": {
"enabled": true,
"max_files_in_memory": 10,
"max_files_per_conversation": 10
}
}
}
}Push the agent configuration
Section titled “Push the agent configuration”elevenlabs agents push --agent agent_7101k5zvyjhmfg983brhmhkd98n6Update via the API
Section titled “Update via the API”from elevenlabs import ElevenLabs
elevenlabs = ElevenLabs()
elevenlabs.conversational_ai.agents.update(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
conversation_config={
"conversation": {
"file_input": {
"enabled": True,
"max_files_in_memory": 10,
"max_files_per_conversation": 10,
}
}
},
)import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const elevenlabs = new ElevenLabsClient();
await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
conversationConfig: {
conversation: {
fileInput: {
enabled: true,
maxFilesInMemory: 10,
maxFilesPerConversation: 10,
},
},
},
});DTMF input
Section titled “DTMF input”DTMF input lets callers enter digits on their phone keypad during a call. Use it to collect phone numbers, menu choices, and other numeric input without relying on speech recognition.
This is the inverse of the play keypad touch tone system tool, which sends tones from the agent.
Each keypad press is buffered until the sequence is complete. Completing a sequence creates one user turn.
- The caller presses a key. The first digit interrupts the agent if it is speaking.
- Further digits append to the same buffer.
- The sequence completes when the caller presses
#(if hash termination is enabled) or when no further digits arrive before the timeout. - The agent receives the collected digits as a user turn and responds.
# is a terminator when hash termination is enabled; it is not included in the collected string. A # pressed with an empty buffer is ignored. The buffer accepts 0-9, *, #, and A-D, up to 50 characters.
Configuration
Section titled “Configuration”conversation_config.conversation.dtmf_input_settings is null when DTMF input is disabled. When enabled, the defaults are:
| Field | Type | Default | Description |
|---|---|---|---|
dtmf_input_timeout |
float |
2.0 |
Seconds to wait after the last keypress before completing the sequence. Range: 0.5 to 10.0. |
hash_terminator |
boolean |
true |
If true, # immediately completes the sequence and is not included in the collected digits. |
redact_input |
boolean |
false |
If true, keypad entries are replaced with <REDACTED> in the stored transcript, conversation log, and analysis. |
Redaction applies to the keypad turn in stored conversation data. It does not hide digits from the agent during the live call, and it does not rewrite digits the agent speaks back or sends to a tool. That is separate from conversation history redaction.
Update via the dashboard
Section titled “Update via the dashboard”Open Multimodal input
Section titled “Open Multimodal input”Open your agent in the dashboard and go to the Advanced tab.
Enable DTMF input
Section titled “Enable DTMF input”Under Multimodal input, turn on Enable DTMF input.
Configure timeout and redaction
Section titled “Configure timeout and redaction”Optionally set DTMF input timeout, Use # to complete DTMF input, and Redact DTMF input.
Save your changes
Section titled “Save your changes”Save the agent, then place a phone call and enter digits on the keypad.
Update via the CLI
Section titled “Update via the CLI”Pull the agent configuration
Section titled “Pull the agent configuration”elevenlabs agents pull --agent agent_7101k5zvyjhmfg983brhmhkd98n6Edit the agent configuration
Section titled “Edit the agent configuration”Set conversation_config.conversation.dtmf_input_settings. Omit the object, or set it to null, to disable DTMF input.
{
"conversation_config": {
"conversation": {
"dtmf_input_settings": {
"dtmf_input_timeout": 2.0,
"hash_terminator": true,
"redact_input": false
}
}
}
}Push the agent configuration
Section titled “Push the agent configuration”elevenlabs agents push --agent agent_7101k5zvyjhmfg983brhmhkd98n6Update via the API
Section titled “Update via the API”from elevenlabs import ElevenLabs
elevenlabs = ElevenLabs()
elevenlabs.conversational_ai.agents.update(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
conversation_config={
"conversation": {
"dtmf_input_settings": {
"dtmf_input_timeout": 2.0,
"hash_terminator": True,
"redact_input": False,
}
}
},
)import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const elevenlabs = new ElevenLabsClient();
await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
conversationConfig: {
conversation: {
dtmfInputSettings: {
dtmfInputTimeout: 2.0,
hashTerminator: true,
redactInput: false,
},
},
},
});Update the agent's system prompt so it knows when to ask for keypad input. For example:
If you need the caller's phone number, ask them to type it on their keypad. Wait for the DTMF
input before continuing.