Voice AI
Connect ElevenLabs
Connect ElevenLabs integration module.
ElevenLabs Conversational-AI voice agents on the Connect platform, shipped as a Twilio add-on. An inbound call on a Twilio number or extension is handed to ElevenLabs’ SIP ingress, an agent answers with the caller’s Odoo context already loaded, and it uses tools that call straight back into Odoo — look the caller up, create them as a partner, check a calendar, book a meeting, transfer to a human.
Agents, prompts, templates, tools, transfer rules and voices are all managed inside Odoo and synced to your ElevenLabs workspace whenever you save. Authentication runs two ways: a shared agent token on the initiation webhook and every server tool, and an HMAC signature with a 30-minute replay window on the post-call webhook. When the call ends, the transcript and summary come back as a connect.call and a connect.recording, so a voice-AI call reads like every other call in the journal.
The module also lends its voice to the rest of the Twilio setup: call-flow prompts, invalid-input messages and per-user voicemail greetings are rendered as ElevenLabs audio and played with <Play>, falling back to Twilio <Say> on any error. Domain add-ons extend the same agent with Helpdesk, Knowledge and Sales tools.
What it offers
-
Agents built and synced from Odoo
Create, edit and delete
connect.elevenlabs_agentrecords in Odoo and the change is pushed to your ElevenLabs workspace on save — you never open the ElevenLabs dashboard. Each new agent also gets a virtual SIP phone number registered under it so ElevenLabs accepts inbound INVITEs, with an allowed-IP list that defaults to Twilio's SIP signalling ranges. -
Prompt versions and reusable templates
Every edit to the system prompt is snapshotted as a numbered
connect.elevenlabs_agent_promptversion, so you can roll back to an earlier wording from a dropdown. Agent templates hold reusable prompts, and the first message is translatable — each translation is exported as an ElevenLabs language preset. -
Choose the voice, LLM and TTS model
Per agent: a voice from your synced ElevenLabs library, the reasoning model (OpenAI GPT, Google Gemini, Anthropic Claude or an ElevenLabs-hosted open model), and the TTS model with stability, speed and similarity-boost tuning. Turn timeouts, max call duration, concurrency and daily limits are pushed to ElevenLabs as platform settings.
-
Numbers, extensions and WhatsApp routing
Point a Twilio number at an agent by picking it as the destination, give the agent an internal extension with one button, or route a WhatsApp sender's inbound calls to it. Inbound calls render TwiML that dials ElevenLabs' SIP ingress with the
connect.callid attached as anX-Connect-Call-Refheader. -
Caller context before the first word
A conversation-initiation webhook feeds the agent the caller's partner record, the summary of their previous conversation, the user directory, the published extensions it may transfer to, and a language override. If the caller is unknown, the
create_partnertool creates ares.partnermid-call and links it to the call. -
Calendar booking during the call
Five webhook tools give the agent the Odoo
calendarapp: current server date and time, free business-hours slots for a user on a given day, booking an event (deduplicated by user and start/stop), listing a partner's meetings, and cancelling one by id. -
Transfer to a human or another agent
The
transfer_to_extentool hands the live call to a company extension when the caller asks for a person — only extensions you mark as published are offered to the AI. With thetransfer_to_agentsystem tool the agent can also hand over to another agent, each target carrying a plain-language condition for when to do it. -
Transcript and summary land in Odoo
An HMAC-verified post-call webhook writes a
connect.callplus aconnect.recordingcarrying the ElevenLabs transcript and summary, deduplicated by conversation id so re-delivery is safe. ElevenLabs Speech-to-Text (scribe_v1) is also selectable as the transcript provider for ordinary recordings.
Scope of the current version
- A Twilio add-on by design: it defines no numbering plan of its own and retargets the
connect.twilio.*models, soconnect_twiliomust be installed and working first. It co-installs happily with FreeSWITCH, Telnyx or Asterisk, but agents only answer calls that arrive through Twilio. - An ElevenLabs account with an API key that has Conversational-AI access.
- The
elevenlabsPython package in the Odoo environment — validated against SDK2.58.0. - Odoo must be reachable on a public HTTPS URL. The conversation-initiation webhook, the post-call webhook and every server tool URL are built from the core API URL and pushed into your ElevenLabs workspace.
- The Odoo
calendarapplication, used by the built-in calendar tools. - A licensed Oduist module: without a valid
connect_elevenlabslicense, agents refuse to save and inbound calls play a trial-expired message instead of connecting. - No scheduled jobs. Everything happens on record save or on an inbound webhook; reconciling Odoo with the remote workspace is a manual
SYNCfrom the settings form, which also rotates the agent token. - Only extensions flagged as published appear in the agent's transfer list — an unpublished extension is invisible to the AI.
Installs with full features free for 30 days; buy the license inside the module.