AnveVoice

Add a Voice AI Agent to Joomla 4 and 5 (2026)

Add the AnveVoice voice agent to Joomla with a Custom module set to a footer position, or with the Web Asset Manager in your template. Editor and caching tips.

How to add AnveVoice to a Joomla site

In Joomla the quickest install is a Custom module placed in a footer position of your template and shown on all pages, with the editor switched to None so it keeps the script tag. Developers can instead register the script through the Web Asset Manager in the template. Steps checked against the official documentation on 2026-10-14.

At a glance

  • Where the code goes: A Custom module (System > Site Modules) in a footer position, or the template's web assets
  • Coding needed: None for the module method; PHP and JSON for the template method
  • Plan limits: None: Joomla is self-hosted. Text filters for your user group can strip script tags
  • Time: About 5 minutes

Before you start

Create your AnveVoice bot at app.anvevoice.app (Free plan: $0, 50,000 tokens a month, one bot, no card) and copy the embed ID. You need Super User or an equivalent role that can manage modules. The main trap in Joomla is the editor. Joomla's help page for the Custom module states that the editor does not allow certain HTML tags, and a script tag is exactly the sort of thing that gets removed or rewritten. Its suggested workarounds are to temporarily set your user's editor to No Editor, use an editor extension that accepts raw HTML, or use the editor's HTML mode, enter the code and save.

  • 1. Copy your install tag — Replace YOUR_EMBED_ID with the ID shown in your AnveVoice dashboard (app.anvevoice.app). Optional URL parameters are &position=bottom-left and &theme=dark. Code: <script src="https://anvevoice.app/embed.js?embedId=YOUR_EMBED_ID" async></script>

Method 1: a Custom module in a footer position

Prepare Content, on the module's Options tab, can stay at No; it only runs the text through content plugins and the tag needs none of that.

  • 1. Switch your editor to None — Open your own user account (Users > Manage, edit yourself) and on the Basic Settings tab set Editor to Editor - None. Save. You can restore TinyMCE afterwards.
  • 2. Create the module — Go to System, then under Manage choose Site Modules, click New and select Custom. Give it a title such as AnveVoice and set Show Title to Hide.
  • 3. Paste the tag — In the content area paste the AnveVoice tag exactly as shown, with nothing around it.
  • 4. Choose a position — Set Position to one your template outputs. With Joomla's default Cassiopeia template, footer works well. Make sure Status is Published.
  • 5. Assign to all pages — On the Menu Assignment tab choose On All Pages. The help page also lists No Pages, Only on the pages selected and On all pages except those selected, which let you limit it to certain menu items.
  • 6. Save and test — Click Save & Close, reload the front end and look for the microphone button.

Method 2: register the script in your template

Joomla's manual explains that scripts are loaded through the Web Asset Manager. An asset defined in a joomla.asset.json file can point at an external library by setting its uri to the full URL, and its attributes map straight onto the script tag, with async and defer given as examples. Templates and components have their own joomla.asset.json read automatically, whereas modules and plugins must register theirs. Do this in a child of your template or in a custom template so a template update does not erase it. The manual's own sample is an OpenLayers library whose uri is a CDN address; yours is the AnveVoice URL. After defining the asset in the template's joomla.asset.json, load it with useScript in the template's index.php through the WebAssetManager obtained from the document.

  • 1. Define the asset — Add an entry to the assets list in templates/<your-template>/joomla.asset.json. Code: { "name": "anvevoice.embed", "type": "script", "uri": "https://anvevoice.app/embed.js?embedId=YOUR_EMBED_ID", "attributes": { "async": true }, "version": "auto" }
  • 2. Use the asset — In the template's index.php, after the existing WebAssetManager lines, add $wa->useScript('anvevoice.embed'); and save. Reload the site.

Check that it works

  • 1. Open the site as a guest — A private window avoids caches and admin-only differences.
  • 2. Test the voice button — Click the round microphone button (bottom-right by default), allow microphone access and speak. HTTPS is required.
  • 3. Clear Joomla's cache if nothing shows — Go to System > Clear Cache, select all and delete, then reload. If you use page caching or a CDN, purge that as well.

Common problems on Joomla

  • The tag vanishes after saving the module: the WYSIWYG editor or a text filter removed it. Set the editor to None and check System > Global Configuration > Text Filters for your user group.
  • Module does not show: the Position name does not exist in your template, or Menu Assignment is set to No Pages. Compare with the positions your template lists.
  • Tag appears twice: the module and the template both load it. Use one method.
  • Lost after a template update: you edited the original template. Use a child template.
  • Microphone never prompts: the page is on HTTP.

Sources

  • Joomla help (5.x): Site Modules, Custom (https://docs.sandbox.joomla.org/Help5.x:Site_Modules:_Custom) — checked 2026-10-14
  • Joomla manual: adding JavaScript with the Web Asset Manager (https://manual.joomla.org/docs/general-concepts/javascript/adding-javascript/) — checked 2026-10-14

Related

  • How to add AnveVoice to a Drupal site
  • How to add AnveVoice to a WordPress site
  • How to add AnveVoice to a TYPO3 site
  • How to add AnveVoice to a Concrete CMS site

Try AnveVoice on your site

Free plan: $0, 50,000 tokens a month, no card. Get your embed ID in the dashboard, then paste one tag.