LibraryElevenLabs Integrationv9 · Updated Report

ElevenLabs Integration

Integration Identityelevenlabs · speech
Category
speech
Provider
ElevenLabs
Namespace
elevenlabs

Generate speech from text and transcribe organization files through a connected ElevenLabs account.

Integration Capability4
AccessMethodSide EffectProvider BillableDescription
readlistSourcesNo

Discover connected ElevenLabs accounts. Exact parameter shapes remain runtime truth.

readlistVoicesNo

List voices available to one connected account. Exact parameter shapes remain runtime truth.

writetextToSpeechYesYes

Generate audio from text and store the result as an Oddlynew File. Exact parameter shapes remain runtime truth.

readtranscribeFileNoYes

Transcribe one Oddlynew File through ElevenLabs. Exact parameter shapes remain runtime truth.

Integration Source DiscoverylistSources · connected ElevenLabs account
Method
listSources
Source Kind
connected ElevenLabs account

Start here when you need a concrete connected source or content record.

Limitations

Generated speech returns a durable fileId, not a permanent public URL. Billable speech calls are not blindly retried after ambiguous failures. Provider audio bytes remain behind the file/provider boundary rather than entering model context.

Usage

textToSpeech supports the documented MP3 and PCM output formats and can optionally name the stored file. textToSpeech and transcribeFile are provider-billable work; retry deliberately after ambiguous failures.

Authorization

Every call checks delegated Oddlynew access, live access to the owning organization, and the connection state. The connected API key remains server-side and is never returned to the agent.

Composition

Generated audio and transcription inputs use Files. Use files.getReadLink when a person or tool needs a short-lived download URL.

ElevenLabs Integration

What it does

The ElevenLabs integration lets an agent use an ElevenLabs account connected to an Oddlynew organization for text-to-speech and speech-to-text. The callable namespace is elevenlabs. Generated audio is stored as an Oddlynew File in the same organization; source audio for transcription is read from an existing organization File. Provider audio bytes do not enter model context.

Finding the connection

Start with elevenlabs.listSources. Narrow with organizationId when you already know where you are working. Each returned sourceId identifies one connected ElevenLabs account and is the handle for the other calls. List fresh rather than caching source ids long term.

An organization's integration summary may describe this connection as speech. Do not infer the callable namespace from that display label: ask guide for integration guidance and use the live elevenlabs namespace inside run for provider calls.

Voices

elevenlabs.listVoices({ sourceId }) returns the voices available to that connected account, including each voice id, name, category, and provider labels such as language, accent, gender, age, and use case when ElevenLabs supplies them. Pick a voiceId from this result before generating speech.

Text to speech

elevenlabs.textToSpeech({ sourceId, operationId, voiceId, text, outputFormat?, filename? }) converts text to speech and stores the result directly in Oddlynew Files. operationId is required: generate a UUIDv7 locally for each new generation and pass it as a literal. The call returns file metadata such as fileId, filename, MIME type, and size rather than the audio bytes.

Supported output formats currently include mp3_44100_128, mp3_44100_192, pcm_16000, pcm_24000, pcm_44100, and pcm_48000. Omit outputFormat when the default is sufficient.

Text-to-speech is billable provider work. A request can succeed at ElevenLabs before a transport failure reaches the caller. After an ambiguous failure, call again with the same operationId: an exact retry replays the stored Files result and never bills ElevenLabs twice. Never mint a new operationId for a retry, because a new id is a new, billable generation.

Speech to text

elevenlabs.transcribeFile({ sourceId, fileId, language? }) transcribes one Oddlynew File that belongs to the same organization as the connection. Pass language when it helps the provider disambiguate the recording. The operation reads the source file through Oddlynew's file boundary rather than exposing its bytes to the model.

Speech-to-text has no such replay. Every transcribeFile call is another billable ElevenLabs call and is never retried automatically, so retry only deliberately. The source file may be at most 25 MiB.

Downloading generated audio

Text-to-speech gives you a durable fileId, not a permanent public URL. When a person or another tool needs the bytes, use files.getReadLink({ organizationId, fileId }). That mints a short-lived signed download URL. Read links expire; mint a fresh one instead of storing or publishing it as a permanent asset URL.

The stable thing to keep in documents and workflows is the file id or an oddlynew-asset:<fileId> reference where that file type is supported, not the signed URL. See Files for the full file lifecycle.

Lifecycle and authorization

Every ElevenLabs call is authorized when it runs against your delegated Oddlynew access, your live access to the owning organization, and the connection's current state. A paused or unusable source refuses provider work until the connection is available again. The connected API key remains server-side and is never returned to the agent.

For discovery, ask guide a direct integration question such as How do I use ElevenLabs?. For exact parameters, live server validation inside run is authoritative.

Oddlynew PublicSign in

Referenced by