Account Configuration

Open Connect ▸ ElevenLabs ▸ Configuration ▸ Settings (Connect Administrator only). This standalone form edits the shared connect.settings singleton but exposes only the ElevenLabs fields (opened via open_elevenlabs_form()).

Set the public API URL first

ElevenLabs settings live on the shared connect.settings record, which also holds the core API URL. Set it (in Connect ▸ Configuration ▸ Settings) to your public HTTPS Odoo URL, e.g. https://odoo.example.com, before syncing. Both webhook URLs the module registers with ElevenLabs (the conversation-initiation webhook and the post-call webhook) are built from this value, as are the URLs of every server tool.

API tab

Field Description
Enabled (elevenlabs_enabled) Master switch for the integration. When off, ElevenLabs TTS prompts, transcription and webhook pushes are all skipped and the base Twilio behaviour is used.
API Key (display_elevenlabs_api_key) Your ElevenLabs API key. Stored on the protected elevenlabs_api_key field (restricted to base.group_erp_manager), shown masked (****) to everyone else, and never exposed to the webhook identity. Leading/trailing whitespace is stripped when the client is built.
Selected Voice (elevenlabs_voice) The default voice used for text-to-speech file generation (call-flow prompts, voicemail greetings). Populated from the synced voice library.

Generate the API key in the ElevenLabs dashboard under Developers → API Keys (direct link: elevenlabs.io/app/settings/api-keys). The full key is shown only once, at creation. The form also links to OPEN A NEW ELEVENLABS ACCOUNT HERE (shown until a key is set) and to the ElevenLabs shared voice library.

Action buttons

Button Method What it does
SYNC elevenlabs_sync Full sync: imports voices, regenerates the agent token and re-pushes both webhooks, syncs all non-system tools, then updates every agent in ElevenLabs. Skipped if the license check fails.
UNBIND ACCOUNT elevenlabs_unbind_account Clears all local agent_uid and tool tool_id values so records can be re-synced to a different ElevenLabs account. Does not touch the remote account.
REGENERATE PROMPTS elevenlabs_regenerate_prompts Re-generates the ElevenLabs TTS audio files for every Twilio call-flow prompt, invalid-input and voicemail message.
SYNC TOOLS elevenlabs_sync_tools Creates or updates every non-system tool in ElevenLabs (system tools are managed inside agent config, not as standalone tools).

How a sync flows

SYNC calls, in order: elevenlabs_get_voices()elevenlabs_reset_token() (new token + re-push initiation and post-call webhooks) → elevenlabs_sync_tools()update_elevenlabs_agent() for every agent. Run it after changing the API key, after binding a new account, or whenever tools/agents drift from the remote workspace.

Webhook tab

Visible once the integration is enabled and an API key is set. It shows the computed Conversation Initiation Webhook URL (…/connect_elevenlabs/conversation_initiation).

Both the conversation-initiation webhook and the post-call webhook are pushed to your ElevenLabs workspace settings automatically on SYNC — the module does not use per-agent webhook overrides. Along with the initiation URL, a shared secret token is registered; ElevenLabs echoes it back as the x-elevenlabs-agent-token header on every webhook and server-tool call (conversation initiation, transfer, create-partner, the calendar tools). To rotate the token, run SYNC again — it regenerates the token and re-pushes it to the workspace settings and to every server tool.

See Webhooks & Security for the full route list and how each webhook is authenticated.

Voices

Voices are stored in connect.elevenlabs_voice and refreshed from the ElevenLabs voice library (voices.get_all()) on every SYNC (or via Voices menu). Each voice keeps its voice_id, name, language, accent, age, gender and a preview-audio player. Voices removed from your ElevenLabs account are removed locally, and if the Selected Voice setting is empty it is auto-assigned. Add more voices to your account from the ElevenLabs shared voice library, then SYNC.

Transcript provider

Enabling the integration also adds ElevenLabs as an option on the core Transcript Provider setting. When set to elevenlabs, recording transcription uses ElevenLabs Speech-to-Text (scribe_v1) with an OpenAI-written summary; otherwise the core provider is used. See Maintenance ▸ Transcription.