Reference · Tools

ElevenLabs

Generate speech, transcribe audio, clone voices, and convert speech using ElevenLabs API.

Action (binary) Utility v1 Binary data

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires ElevenLabs API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Speechspeech
Voicevoice

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.

OperationValueDescription
Text to SpeechtextToSpeechConvert text to spoken audio using a selected voice
Speech to TextspeechToTextTranscribe audio to text
Speech to SpeechspeechToSpeechConvert speech from one voice to another
GetgetGet details of a specific voice
Get ManygetAllList all available voices
Create ClonecreateCloneClone a voice from audio samples
DeletedeleteDelete a voice

Parameters

Get Many takes no parameters of its own — see All Operations.

Speech: Text to Speech

ParameterTypeRequiredDefaultDescription
Voice IDstringYesThe ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions.
TextstringYesThe text to convert to speech. Supports expressions.
ModeloptionsNoeleven_multilingual_v2The 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 FormatoptionsNomp3_44100_128The 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 PropertystringNodataName of the binary property to store the output audio file.
Output FilenamestringNospeech.mp3Filename for the output audio file.
Voice SettingscollectionNo{}Fine-tune voice generation parameters.
— StabilitynumberNo0.5Voice stability (0-1). Higher values produce more consistent speech, lower values are more expressive.
— Similarity BoostnumberNo0.75Similarity to original voice (0-1). Higher values make the voice more similar to the original.
— StylenumberNo0Speaking style exaggeration (0-1). Higher values amplify the style of the original speaker. Recommended 0 for most use cases.
— Use Speaker BoostbooleanNotrueBoost similarity to the original speaker. Increases latency slightly.
— SpeednumberNo1Speech speed multiplier (0.25-4.0). 1.0 is normal speed.

Speech: Speech to Text

ParameterTypeRequiredDefaultDescription
Input Binary PropertystringNodataName 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 OptionscollectionNo{}Additional options for speech-to-text transcription.
— Language CodestringNoBCP-47 language code (e.g. “en”, “es”, “fr”). Leave empty for auto-detection.
— DiarizebooleanNofalseEnable speaker diarization to identify different speakers in the audio.
— Number of SpeakersnumberNo0Expected number of speakers when diarization is enabled. Set to 0 for auto-detection.
— Tag Audio EventsbooleanNofalseTag audio events like music, laughter, applause in the transcription.

Speech: Speech to Speech

ParameterTypeRequiredDefaultDescription
Voice IDstringYesThe ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions.
Input Binary PropertystringNodataName 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.
ModeloptionsNoeleven_multilingual_v2The 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 FormatoptionsNomp3_44100_128The 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 PropertystringNodataName of the binary property to store the output audio file.
Output FilenamestringNospeech.mp3Filename for the output audio file.
Voice SettingscollectionNo{}Fine-tune voice generation parameters.
— StabilitynumberNo0.5Voice stability (0-1). Higher values produce more consistent speech, lower values are more expressive.
— Similarity BoostnumberNo0.75Similarity to original voice (0-1). Higher values make the voice more similar to the original.
— StylenumberNo0Speaking style exaggeration (0-1). Higher values amplify the style of the original speaker. Recommended 0 for most use cases.
— Use Speaker BoostbooleanNotrueBoost similarity to the original speaker. Increases latency slightly.
— SpeednumberNo1Speech speed multiplier (0.25-4.0). 1.0 is normal speed.

Voice: Get

ParameterTypeRequiredDefaultDescription
Voice IDstringYesThe ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions.

Voice: Create Clone

ParameterTypeRequiredDefaultDescription
Input Binary PropertystringNodataName 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 NamestringYesName for the cloned voice. Supports expressions.
Clone DescriptionstringNoDescription for the cloned voice.
Clone LabelsstringNoComma-separated key=value labels for the cloned voice (e.g. “accent=american,age=young”).

Voice: Delete

ParameterTypeRequiredDefaultDescription
Voice IDstringYesThe ID of the voice to use. Find voice IDs via the Get Many operation or ElevenLabs dashboard. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum 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.

OperationWhat lands on the item
Text to SpeechvoiceId, modelId, outputFormat and textLength (the character count sent to ElevenLabs), plus the generated audio stored under the Output Binary Property.
Speech to TextThe ElevenLabs transcription response, including the transcribed text and — when you enable them — speaker labels and tagged audio events.
Speech to SpeechvoiceId, modelId and outputFormat, plus the converted audio stored under the Output Binary Property.
GetThe voice record for that ID.
Get ManyOne 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 CloneThe newly created voice record returned by ElevenLabs.
DeleteThe 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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

  • voiceSettings and speechToTextOptions are collection types. Their fields go directly in a flat object — never wrap in _default or an array.
  • operation options are mutually exclusive by resource. Setting resource: "voice" and operation: "textToSpeech" is invalid — textToSpeech only exists under resource: "speech".
  • binaryPropertyName is an input property (audio going into the node). outputBinaryPropertyName is an output property (audio coming out of the node). They serve opposite directions and must never be confused.
  • voiceId is not used for speechToText or createClone — those operations work on audio input, not a pre-selected voice.
  • getAll requires no additional parameters beyond resource and operation.

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 BusyBot

Last updated . Spotted something wrong? Tell us.