Reference · Tools
ElevenLabs
Generate speech, transcribe audio, clone voices, and convert speech using ElevenLabs API.
The ElevenLabs node connects your BusyBot workflows to the ElevenLabs API for text-to-speech generation, audio transcription, voice cloning, and speech-to-speech conversion. You can build workflows that, for example, take a blog post as input and return a finished voiceover audio file. Speech operations return binary audio data; transcription returns plain text.
- Node type
- Action (binary)
- Parameters
- 16
- Outputs
- Output, Error
- Credentials
- ElevenLabs API
ElevenLabs
Generate speech, transcribe audio, clone voices using ElevenLabs
Overview
The ElevenLabs tool provides text-to-speech, speech-to-text, speech-to-speech, and voice management capabilities via the ElevenLabs API. Text-to-speech converts text to audio using a selected voice and model, returning audio binary data. Speech-to-text transcribes audio files. Speech-to-speech converts input audio to output audio using a different voice. Voice operations allow listing, getting, cloning, and deleting voices. Authentication uses the xi-api-key header.
Category: Utility
Tool Name: elevenlabs
Version: 1
Appearance: Icon: lucide-Headphones | Color: #000000
Node Type
Action (Binary) — handles file/binary data operations
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires ElevenLabs API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Speech | speech |
| Voice | voice |
Operations
The operation list changes with the resource: speech offers Text to Speech, Speech to Text and Speech to Speech, and voice offers Get, Get Many, Create Clone and Delete.
| Operation | Value | Description |
|---|---|---|
| Text to Speech | textToSpeech | Convert text to spoken audio using a selected voice |
| Speech to Text | speechToText | Transcribe audio to text |
| Speech to Speech | speechToSpeech | Convert speech from one voice to another |
| Get | get | Get details of a specific voice |
| Get Many | getAll | List all available voices |
| Create Clone | createClone | Clone a voice from audio samples |
| Delete | delete | Delete a voice |
Parameters
Get Many takes no parameters of its own — see All Operations.
Speech: Text to Speech
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Voice ID | string | Yes | — | The ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions. |
| Text | string | Yes | — | The text to convert to speech. Supports expressions. |
| Model | options | No | eleven_multilingual_v2 | The ElevenLabs model to use for synthesis or conversion. |
Options: eleven_v3, eleven_multilingual_v2, eleven_flash_v2_5, eleven_flash_v2, eleven_turbo_v2_5, eleven_turbo_v2, eleven_multilingual_v1, eleven_monolingual_v1 (Eleven English v1), eleven_english_sts_v2 | ||||
| Output Format | options | No | mp3_44100_128 | The audio output format and quality. |
Options: mp3_22050_32, mp3_44100_32, mp3_44100_64, mp3_44100_96, mp3_44100_128, mp3_44100_192, pcm_16000, pcm_22050, pcm_24000, pcm_44100, ulaw_8000 | ||||
| Output Binary Property | string | No | data | Name of the binary property to store the output audio file. |
| Output Filename | string | No | speech.mp3 | Filename for the output audio file. |
| Voice Settings | collection | No | {} | Fine-tune voice generation parameters. |
| — Stability | number | No | 0.5 | Voice stability (0-1). Higher values produce more consistent speech, lower values are more expressive. |
| — Similarity Boost | number | No | 0.75 | Similarity to original voice (0-1). Higher values make the voice more similar to the original. |
| — Style | number | No | 0 | Speaking style exaggeration (0-1). Higher values amplify the style of the original speaker. Recommended 0 for most use cases. |
| — Use Speaker Boost | boolean | No | true | Boost similarity to the original speaker. Increases latency slightly. |
| — Speed | number | No | 1 | Speech speed multiplier (0.25-4.0). 1.0 is normal speed. |
Speech: Speech to Text
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Input Binary Property | string | No | data | Name of the binary property containing the input audio file. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
| Speech to Text Options | collection | No | {} | Additional options for speech-to-text transcription. |
| — Language Code | string | No | — | BCP-47 language code (e.g. “en”, “es”, “fr”). Leave empty for auto-detection. |
| — Diarize | boolean | No | false | Enable speaker diarization to identify different speakers in the audio. |
| — Number of Speakers | number | No | 0 | Expected number of speakers when diarization is enabled. Set to 0 for auto-detection. |
| — Tag Audio Events | boolean | No | false | Tag audio events like music, laughter, applause in the transcription. |
Speech: Speech to Speech
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Voice ID | string | Yes | — | The ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions. |
| Input Binary Property | string | No | data | Name of the binary property containing the input audio file. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
| Model | options | No | eleven_multilingual_v2 | The ElevenLabs model to use for synthesis or conversion. |
Options: eleven_v3, eleven_multilingual_v2, eleven_flash_v2_5, eleven_flash_v2, eleven_turbo_v2_5, eleven_turbo_v2, eleven_multilingual_v1, eleven_monolingual_v1 (Eleven English v1), eleven_english_sts_v2 | ||||
| Output Format | options | No | mp3_44100_128 | The audio output format and quality. |
Options: mp3_22050_32, mp3_44100_32, mp3_44100_64, mp3_44100_96, mp3_44100_128, mp3_44100_192, pcm_16000, pcm_22050, pcm_24000, pcm_44100, ulaw_8000 | ||||
| Output Binary Property | string | No | data | Name of the binary property to store the output audio file. |
| Output Filename | string | No | speech.mp3 | Filename for the output audio file. |
| Voice Settings | collection | No | {} | Fine-tune voice generation parameters. |
| — Stability | number | No | 0.5 | Voice stability (0-1). Higher values produce more consistent speech, lower values are more expressive. |
| — Similarity Boost | number | No | 0.75 | Similarity to original voice (0-1). Higher values make the voice more similar to the original. |
| — Style | number | No | 0 | Speaking style exaggeration (0-1). Higher values amplify the style of the original speaker. Recommended 0 for most use cases. |
| — Use Speaker Boost | boolean | No | true | Boost similarity to the original speaker. Increases latency slightly. |
| — Speed | number | No | 1 | Speech speed multiplier (0.25-4.0). 1.0 is normal speed. |
Voice: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Voice ID | string | Yes | — | The ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions. |
Voice: Create Clone
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Input Binary Property | string | No | data | Name of the binary property containing the input audio file. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. |
| Clone Name | string | Yes | — | Name for the cloned voice. Supports expressions. |
| Clone Description | string | No | — | Description for the cloned voice. |
| Clone Labels | string | No | — | Comma-separated key=value labels for the cloned voice (e.g. “accent=american,age=young”). |
Voice: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Voice ID | string | Yes | — | The ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Keep low to respect ElevenLabs rate limits. |
Output Data
Every operation except Get Many produces one output item per input item, and the ElevenLabs response is merged into the item JSON at the top level — its fields sit alongside the fields already on the item, and any field of the same name is overwritten. Binary data from the input item is forwarded; Text to Speech and Speech to Speech additionally attach the generated audio as a new binary property.
| Operation | What lands on the item |
|---|---|
| Text to Speech | voiceId, modelId, outputFormat and textLength (the character count sent to ElevenLabs), plus the generated audio stored under the Output Binary Property. |
| Speech to Text | The ElevenLabs transcription response, including the transcribed text and — when you enable them — speaker labels and tagged audio events. |
| Speech to Speech | voiceId, modelId and outputFormat, plus the converted audio stored under the Output Binary Property. |
| Get | The voice record for that ID. |
| Get Many | One output item per voice — each carries a single voice record, so a downstream node processes voices one at a time with no Split Out needed. When the account has no voices, a single item is emitted carrying an empty voices array. |
| Create Clone | The newly created voice record returned by ElevenLabs. |
| Delete | The API’s delete response. When ElevenLabs returns no body, the item carries deleted: true and voiceId instead. |
Reference the result downstream by expression, e.g. {{ $json.voice_id }} after Get Many or {{ $json.textLength }} after Text to Speech.
Usage Examples
- Convert text to speech using a specific voice
- Transcribe an audio file to text
- Convert speech from one voice to another
- Clone a voice from audio samples
- List all available voices
- Delete a cloned voice
Example Configuration
Text to speech with every option set:
{
"resource": "speech",
"operation": "textToSpeech",
"voiceId": "21m00Tcm4TlvDq8ikWAM",
"text": "Welcome to our platform. How can I help you today?",
"modelId": "eleven_multilingual_v2",
"outputFormat": "mp3_44100_128",
"outputBinaryPropertyName": "outputAudio",
"outputFilename": "welcome.mp3",
"voiceSettings": {
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0,
"use_speaker_boost": true,
"speed": 1
},
"maxConcurrency": 5
}
Speech to text with diarization:
{
"resource": "speech",
"operation": "speechToText",
"binaryPropertyName": "inputAudio",
"speechToTextOptions": {
"language_code": "en",
"diarize": true,
"num_speakers": 2,
"tag_audio_events": true
},
"maxConcurrency": 3
}
Speech to speech (voice conversion):
{
"resource": "speech",
"operation": "speechToSpeech",
"voiceId": "AZnzlk1XvdvUeBnXmlld",
"binaryPropertyName": "inputAudio",
"modelId": "eleven_english_sts_v2",
"outputFormat": "mp3_44100_96",
"outputBinaryPropertyName": "convertedAudio",
"outputFilename": "converted_speech.mp3",
"voiceSettings": {
"stability": 0.6,
"similarity_boost": 0.8,
"style": 0.2,
"use_speaker_boost": true,
"speed": 1
},
"maxConcurrency": 2
}
Get a voice by ID:
{
"resource": "voice",
"operation": "get",
"voiceId": "21m00Tcm4TlvDq8ikWAM"
}
List all voices:
{
"resource": "voice",
"operation": "getAll"
}
Clone a voice:
{
"resource": "voice",
"operation": "createClone",
"binaryPropertyName": "voiceSampleAudio",
"cloneName": "Studio Narrator",
"cloneDescription": "Professional narrator cloned from studio recording sessions.",
"cloneLabels": "accent=american,style=narrator,age=adult"
}
Delete a voice:
{
"resource": "voice",
"operation": "delete",
"voiceId": "21m00Tcm4TlvDq8ikWAM"
}
Batch text-to-speech, respecting rate limits
When processing many text items, lower maxConcurrency to avoid hitting ElevenLabs API rate limits:
{
"resource": "speech",
"operation": "textToSpeech",
"voiceId": "21m00Tcm4TlvDq8ikWAM",
"text": "{{ $json.text }}",
"modelId": "eleven_turbo_v2_5",
"outputFormat": "mp3_44100_64",
"outputBinaryPropertyName": "audio",
"outputFilename": "output.mp3",
"voiceSettings": {
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0,
"use_speaker_boost": true,
"speed": 1
},
"maxConcurrency": 2
}
Use eleven_turbo_v2_5 for faster, lower-latency batch jobs; use eleven_multilingual_v2 for maximum quality.
Transcribe a meeting recording with speaker labels
{
"resource": "speech",
"operation": "speechToText",
"binaryPropertyName": "meetingRecording",
"speechToTextOptions": {
"language_code": "en",
"diarize": true,
"num_speakers": 4,
"tag_audio_events": false
}
}
Discover available voices, then generate speech
Step 1 — list voices:
{
"resource": "voice",
"operation": "getAll"
}
Step 2 — use a discovered voiceId in text-to-speech:
{
"resource": "speech",
"operation": "textToSpeech",
"voiceId": "{{ $json.voice_id }}",
"text": "This is generated using a discovered voice.",
"modelId": "eleven_multilingual_v2",
"outputFormat": "mp3_44100_128",
"outputBinaryPropertyName": "generatedAudio",
"outputFilename": "dynamic_voice.mp3",
"voiceSettings": {
"stability": 0.5,
"similarity_boost": 0.75,
"style": 0,
"use_speaker_boost": true,
"speed": 1
}
}
Clone a voice from an audio sample
Requires a preceding node to load the audio file into a binary property (e.g., "voiceSample"):
{
"resource": "voice",
"operation": "createClone",
"binaryPropertyName": "voiceSample",
"cloneName": "Customer Support Agent",
"cloneDescription": "Voice clone for automated customer support responses.",
"cloneLabels": "department=support,language=en,tone=professional"
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
The ElevenLabs tool converts text to speech, transcribes audio, clones voices, and transforms speech between voices using the ElevenLabs API. Use it when a workflow needs to generate voiceovers, transcribe recorded audio files, or replace a speaker voice in existing audio. Outputs audio binary data stored via the binary store for speech operations, or transcription text for speech-to-text, delivered through the main or error output.
Key Warnings
voiceSettingsandspeechToTextOptionsarecollectiontypes. Their fields go directly in a flat object — never wrap in_defaultor an array.operationoptions are mutually exclusive byresource. Settingresource: "voice"andoperation: "textToSpeech"is invalid —textToSpeechonly exists underresource: "speech".binaryPropertyNameis an input property (audio going into the node).outputBinaryPropertyNameis an output property (audio coming out of the node). They serve opposite directions and must never be confused.voiceIdis not used forspeechToTextorcreateClone— those operations work on audio input, not a pre-selected voice.getAllrequires no additional parameters beyondresourceandoperation.
Frequently asked questions
What credential do I need to connect this node?
You need an ElevenLabs API credential configured in BusyBot, which uses your ElevenLabs API key sent via the xi-api-key header. Create the credential once under the ElevenLabs API credential type and it will be available to all ElevenLabs nodes in your workspace.
What is the difference between binaryPropertyName and outputBinaryPropertyName?
These two parameters serve opposite directions and must not be confused. binaryPropertyName is an input property — it points to audio data coming into the node, used by operations like speech-to-text or speech-to-speech that consume an existing audio file. outputBinaryPropertyName is an output property — it names the binary field where the node stores generated or converted audio coming out. Using the wrong one will either send nothing to the API or discard the result.
Which operations are available under each resource, and can I mix them?
Operations are scoped strictly to their resource. Text-to-speech, speech-to-text, and speech-to-speech operations only exist under resource: speech. Voice listing, retrieval, cloning, and deletion only exist under resource: voice. Setting resource: voice and operation: textToSpeech is invalid and will fail — you must pair each operation with its correct resource.
Do I need to set voiceId for every operation?
No. The voiceId parameter is not used for speechToText or createClone operations, both of which work on audio input rather than a pre-selected voice. Only operations that produce or transform audio using a specific voice — like textToSpeech or speechToSpeech — require a voiceId.
How do I pass voice settings or transcription options to the node?
Both voiceSettings and speechToTextOptions are collection types, meaning their fields are provided as a flat key-value object directly on the parameter — do not wrap them in a _default key or an array. If you structure them incorrectly the fields will be silently ignored by the node.
Build with the ElevenLabs node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need ElevenLabs API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.