This project is not covered by Drupal’s security advisory policy.
ElevenLabs Agent lets visitors talk to your website. They click a button and have a real, out-loud, back-and-forth conversation with an AI assistant that already knows your content — and every call can become a saved lead.
ElevenLabs is the hosted service that runs the voice AI. This module is the Drupal side: it brokers the call, takes care of the secure parts for you, and turns finished calls into things your site can use. Setup is one secret and one Drush command — nothing has to be configured in the ElevenLabs dashboard. It needs no other contributed modules.
Features
- Talk to an AI, out loud, in real time. A visitor clicks a button and starts a live spoken conversation — they speak, it answers back.
- The assistant already knows your site. It is briefed on your own content, so it answers about your real pages, projects, and services instead of generic filler.
- A ready-to-use call button. An included call-to-action block drops a "talk to us" button onto any page — no coding or theming needed.
- Different agents on different pages. An optional Lobby submodule lets the call button automatically route to the right concierge based on the page the visitor is reading — per-node, per-content-type, or by URL pattern.
- Calls become leads. While the visitor talks, the assistant gathers their details — name, contact, what they need — and saves them in your site for follow-up.
- Read what was actually said. Every finished call shows up in an admin list; click the transcript to expand it inline and read the whole conversation right there, no extra navigation, no separate page.
- Watch your spend in real time. A built-in cost meter — the "expense pedometer" — polls ElevenLabs and surfaces today's and this-month's spend against a budget you set: one bold number, one progress bar. A separate "view usage" permission lets finance or stakeholders watch the budget without administrative powers.
- Speaks your visitors' languages. It holds the conversation in every language you have given it a voice for.
How it works
Your site is the hub: your secret API key never leaves the server, and the browser and ElevenLabs only exchange audio directly once your site has brokered a session. The full picture:

The two conversions that matter: a finished call becomes a Conversation record (an audit log of what happened), and — when you enable lead capture — the details the assistant collects become a Lead you can follow up on.
Setting it up
One secret to set, one command to run. The webhook and tool secrets are generated for you on install, and a single Drush command registers the post-call webhook with ElevenLabs over their API. You do not touch the ElevenLabs dashboard at any point.
- Set your ElevenLabs API key. Put it in
settings.php(recommended) or paste it into/admin/config/services/elevenlabs-agent. It is the only secret you supply — the webhook and tool secrets are generated on install. - Run one command:
drush elevenlabs:bootstrap site_concierge. It enables the lead-capture submodule, registers the workspace post-call webhook on ElevenLabs via their API, stores the returned secret in Drupal config, and prints the remaining steps. - Edit your agent, then provision. The first
drush elevenlabs:agent:provision site_conciergeseeds the agent's definition into Drupal config from a starter template. Tune it in the typed admin form — name, first message, voice, system prompt, LLM, turn-taking — with an Advanced raw-YAML tab that covers 100% of the API surface for anything not yet typed. Re-run the same command to mint or update the agent on ElevenLabs. The whole definition is config-as-code: it travels withconfig/sync. - Place the call-to-action block (or bind the start-call element) where the conversation should start. With the optional Lobby submodule enabled, the block is content-aware and routes to the right concierge for the page the visitor is on.
- Test from the admin test bed. If anything is off,
drush elevenlabs:doctorwalks the install path and prints the exact command to fix each missing item.
Three optional add-ons ship with the module: Lobby (a concierge content type plus content-driven routing — different agents on different pages), KB Selector (choose exactly which content the assistant learns from), and Call Leads (let the assistant save lead records during a call).
Once calls start happening, the admin gets two more surfaces: the Conversations tab for the running audit log (click any row to expand the transcript inline) and the Usage tab for the running cost meter.
Requirements
- Drupal 11 and PHP 8.3+.
- An ElevenLabs account with an agent and an API key. ElevenLabs is a paid third-party service.
- The official
@elevenlabs/clientJavaScript SDK — loaded from a pinned CDN build by default, and self-hostable for offline or privacy-sensitive sites (see the README). - No other contributed modules required.
Recommended modules/libraries
- Key — keep your API key and secrets out of configuration.
- ElevenLabs — add text-to-speech alongside live agents (see Similar projects).
Similar projects
- ElevenLabs adds ElevenLabs text-to-speech to the AI module. ElevenLabs Agent is the counterpart for the conversational agents product — real-time two-way voice, standalone, with no AI-module dependency. The two work well side by side.
Supporting this module
The best support is participation: file issues, review the code, and open merge requests in the issue queue. Sponsorship links will be added here if they become available.
Community documentation
Full documentation lives in the repository's docs/ guide index: a quick start, lead-capture setup, a data-flow map, an agent-design playbook, knowledge-base notes, styling, a Drush reference, and a developer guide. Video walkthroughs and a demo will be linked here as they become available.
Disclaimers
This module is heavily AI-assisted (human-reviewed, and clean against coding standards and static analysis), integrates a paid third-party service (ElevenLabs), and records end-user voice for processing. It is provided without warranty (GPL-2.0-or-later). You are responsible for consent and privacy compliance, ElevenLabs costs and usage caps, and reviewing the code against your own security needs. See DISCLAIMER.md in the repository for the full text.
| Attachment | Size |
|---|---|
| Eleven labs pass thru data flow | 108.47 KB |
Project information
- Project categories: Artificial Intelligence (AI), E-commerce, User engagement
3 sites report using this module
- Created by oneliner on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
Multi-language session override.

