ElevenLabs
Generate realistic speech and manage voices with ElevenLabs.
On this page
Connect
Auth type: Credentials form (custom_auth). Fill in the fields the provider needs (listed below). They are stored encrypted in the vault.
| Field | Type | Description |
|---|---|---|
regionrequired | dropdown | Select your ElevenLabs account region |
apiKeyrequired | secret | Your ElevenLabs API key. Required permissions: user:read, text_to_speech, voices:read, models |
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("elevenlabs", "elevenlabs-speech-to-text", {
"audioBase64": "<audio (base64)>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("ElevenLabs answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "elevenlabs-elevenlabs-speech-to-text",
name: "ElevenLabs: Speech to Text",
description: "Calls ElevenLabs when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("elevenlabs", {
"action": "elevenlabs-speech-to-text",
"audioBase64": "<audio (base64)>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/elevenlabs/elevenlabs-speech-to-text" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"audioBase64":"<audio (base64)>"}}'Actions
elevenlabs-speech-to-textin catalogbuilt in
Speech to Text. Transcribe audio to text using ElevenLabs Scribe. Returns the transcribed text string.
| Input | Type | Description |
|---|---|---|
audioBase64required | text | Base64-encoded audio data to transcribe |
mimeTypeoptional | text | Audio MIME type (e.g., audio/webm, audio/wav, audio/mp4). Defaults to audio/webm. |
languageCodeoptional | text | BCP-47 language code (e.g., 'en'). Leave empty for auto-detect. |
elevenlabs-text-to-speechin catalogbuilt in
Text to Speech (Free Tier). Convert text to speech using ElevenLabs free tier model (non-streaming, cost-effective). Returns an audio URL.
| Input | Type | Description |
|---|---|---|
textrequired | text | The text to convert to speech |
voicerequired | text | Voice ID to use (e.g., EXAVITQu4vr4xnSDxMaL for Sarah) |
custom_api_callin catalog
Custom API Call. Check [Elevenlabs API reference](https://elevenlabs.io/docs/api-reference/introduction) for the list of available endpoints.
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
Details
- Id
elevenlabs- Category
- AI and ML
- Tags
- speech, tts, voice, audio, ai
- Package
@activepieces/piece-elevenlabs@0.2.4- Tier
- Built in