Add a Voice AI Agent to HubSpot CMS Pages
Add the AnveVoice voice agent to HubSpot-hosted pages: domain-level Site Footer HTML, per-page footer snippets, permissions, and the template tag it needs.
How to add AnveVoice to HubSpot CMS pages
On a website hosted in HubSpot, paste the AnveVoice tag into Site Footer HTML in the domain's Pages settings and it covers your website and landing pages. For one page only, use the Footer HTML field under that page's Advanced settings. Steps checked against the official documentation on 2026-10-14.
At a glance
- Where the code goes: Settings > Content > Pages > pick a domain > Site Footer HTML (or a page's Settings > Advanced > Footer HTML)
- Coding needed: None; custom-coded templates must contain the standard footer includes variable
- Plan limits: HubSpot says code snippets are available on all products and plans, but head and footer options vary by subscription and content type
- Permissions: Website settings permission for domain-level code; Edit and Publish permission for page-level code
Before you start
This guide is for pages that HubSpot hosts, that is website pages and landing pages on a domain connected to your HubSpot account. If your site runs on another platform and you only use HubSpot for forms or marketing, install AnveVoice on that platform instead. Create your bot at app.anvevoice.app (Free plan: $0, 50,000 tokens a month, one bot, no card) and copy the embed ID. Domain-level changes need the Website settings permission in HubSpot, so ask an account admin if you do not see the options below.
- 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: Site Footer HTML for a whole domain
HubSpot's knowledge base describes head and footer code at domain level as the way to add a snippet to all content on that domain. Choose the footer for AnveVoice, since the widget does not need to load before the page renders. Once you override the defaults for a domain, code in the all-domains defaults stops applying to it. Click Apply default settings to go back.
- 1. Open the Pages settings — Click the settings (gear) icon in the top navigation bar, then in the left sidebar go to Content > Pages.
- 2. Choose the domain — Use the Choose a domain to edit its settings dropdown to select the domain, or pick Default settings for all domains if every connected domain should get the assistant.
- 3. Override the default — In the Site Footer HTML section, click Override default settings. This step is needed because a domain otherwise inherits the defaults.
- 4. Paste and save — Paste the tag into the Site Footer HTML box and click Save in the bottom left.
Method 2: one page only
HubSpot notes that the Footer HTML field is not available for blog posts or knowledge base articles, so the page-level route works for website and landing pages. Edit and Publish permission is enough for the page-level route.
- 1. Open the content — Go to Content > Website Pages (or Landing Pages) and click the page name.
- 2. Open Advanced settings — In the editor open the Settings menu and select Advanced.
- 3. Add the footer snippet — In Additional code snippets, paste the tag into Footer HTML, then click Publish or Update.
HubSpot-specific gotchas
Custom-coded templates must contain HubSpot's two required tags, standard_header_includes and standard_footer_includes. The developer documentation says the footer tag adds JavaScript to the bottom of the page, for example the tracking script and module scripts, and that templates need both to be published. If you have a developer-built template and your Site Footer HTML never appears, check that the template and its partials include {{ standard_footer_includes }} before the closing body tag. Header or footer HTML set in the all-domains defaults, or for a domain used for quotes, appears on quotes as well as website content. If you do not want the voice assistant on quotes, set it on specific website domains instead. HubSpot's own advice for external snippets is to follow the vendor's instruction about head, body or footer placement. For AnveVoice, footer is appropriate.
Check that it works
- 1. Publish and open the live URL — Open the page on its real domain in a private window. The editor and preview modes do not run site footer code the same way.
- 2. Use the voice button — A round microphone button appears bottom-right by default. Click it, allow the microphone (HTTPS required) and ask a question.
- 3. Check the source — Search the source for anvevoice.app/embed.js. If it is absent, re-check the Override default settings step.
Common problems on HubSpot
- Not on a particular domain: that domain has its own overridden footer HTML, so add the tag there too or revert it to the defaults.
- Button on website pages but not blog posts: blog posts have no footer HTML field; use the domain-level setting, which HubSpot applies across content on that domain.
- Domain options greyed out: you lack Website settings permission.
- Template error mentioning standard_footer_includes: add the variable to the custom template.
Sources
- HubSpot Knowledge Base: use code snippets with HubSpot content (https://knowledge.hubspot.com/website-and-landing-pages/use-code-snippets-with-hubspot-content) — checked 2026-10-14
- HubSpot developer docs: HTML + HubL templates (required header and footer includes) (https://developers.hubspot.com/docs/cms/building-blocks/templates/html-hubl-templates) — checked 2026-10-14
Related
- How to add AnveVoice to a WordPress site
- How to add AnveVoice to a Webflow site
- How to add AnveVoice to a Squarespace site
- How to add AnveVoice to a Ghost 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.