Voice assistant (beta)
The voice assistant lets visitors talk to your website. They tap the orb, ask out loud, and hear the answer with live captions. It answers from the same knowledge as your chat widget and from the page the visitor is looking at, and it can open pages, search, and choose options for them.
Voice is in beta on paid plans (Lite, Starter and Pro). Your website must be enabled for the beta.
Turn on voice
- Open My Chatbots, select a chatbot, then open the Voice tab.
- Turn on Voice for this chatbot, choose a voice and style, and select Save voice settings.
- Open Integration, turn on Voice actions on this website, and copy the voice snippet.
- Paste the snippet into your site template just before
</body>, on every page where voice should work.
<script
src="https://VOICE_WIDGET_HOST/voice-embed.js"
data-widget-origin="https://VOICE_WIDGET_HOST"
data-bot-id="YOUR_BOT_ID"
data-api-url="https://YOUR_APP_HOST"
defer
></script>
Use the exact snippet from Integration; it contains your hosts and chatbot ID. The voice orb works alongside the chat widget. Microphones only work on HTTPS pages (or localhost).
Voice settings
| Setting | What it does |
|---|---|
| Voice | Choose one of ten voices. Press play to hear a sample. |
| Speaking speed, language | How fast it speaks, and the language for captions and replies (Auto follows the page). |
| Colour | Your chatbot colour, or a custom colour. Font and corners always follow the chat widget. |
| Animation style | Wave, Analog signal, DJ equaliser, Ring, or Minimal. |
| Voice assistant position | Left, centre, or right at the bottom of the page. Centre is the default; change it in My Chatbot → Voice. |
| Hint position | Right, left, or above the orb. Right is the default. Flips sides or moves above the orb when there is not enough space. |
| Wake phrase | The words that open the assistant, such as “Hey Bodha” or “Hey papa”. Save and reload the embedding page to apply a change. |
| Welcome message | Spoken when a call starts. Empty uses the chatbot's welcome message. |
| Live captions | Show what the visitor said and the answer. |
| Answer from the current page | Send the visible page text with each command, so voice can answer about it. |
| Example commands | Up to four chips shown while listening. |
| Also confirm before | Extra words that need a "yes" first. Checkout and cart additions always do. |
| Never open these pages | Paths voice must never open, such as /admin. |
| Error messages | Reword what visitors hear when something can't be done. |
| Max call length | Up to your plan's limit. |
| Custom website actions | Starter and Pro. Lets your site add its own voice actions (see below). |
| Wake word “Hey Bodha” | Starter and Pro. Visitors who switch it on can start by saying “Hey Bodha” instead of tapping (see below). |
The Voice preview next to the settings shows your choices live before you save.
What visitors can do
- Ask questions: "What are your opening hours?" "Is this available in red?"
- Open pages: "Open the about page." "Take me to contact."
- Search: "Search for running shoes."
- Choose options: "Choose red." "Select size 9."
- Fill and validate forms: "Fill project title with Summer workshop." "Check updates." "Validate form."
- Complete form steps: "Next step." "Back." "Submit form."
- Do several steps at once: "Open shoes, then choose red." Voice continues on the next page.
- Interrupt at any time by speaking.
Voice never pays, deletes, logs in, changes accounts, or types personal details. Checkout and adding to cart always ask for a spoken or tapped confirmation first.
Form flow
Visitors can fill permitted text, number and date fields, check or uncheck boxes, choose a radio option, and select a dropdown option. Voice checks the resulting value after your site's JavaScript runs. Saying “Check updates” twice leaves the box checked.
For a form with several steps, voice validates the visible fields before selecting Next, then reads the controls on the new step. Back lets visitors return to correct an earlier answer. Final submission checks all the form's enabled fields, including previous steps, and asks for confirmation.
Try: “Fill project title with Summer workshop, then choose remote, then next step, then choose morning, then submit form.” A failed field check or validation error stops the remaining steps.
Visitors can also give several values in one sentence without repeating commands: “Fill the form with title Bodha, welcome message How are you?, red colour and left position.” Voice keeps each value with its field, verifies every update against a fresh page capture, and reports the fields updated. Question marks inside field values stay part of the value. Quote a value when it contains other field names or command words.
After submission, voice reads the site's validation alert or success message, including delayed responses and results on a new page. Native browser alerts remain visible; voice reads them after dismissal. If it cannot verify a result, it asks the visitor to check the page before submitting again. It never retries submission automatically.
Wake word “Hey Bodha”
On the Starter and Pro plans, turn on Wake word in My Chatbot → Voice, enter the Wake phrase, and save. Reload the website. Visitors turn wake listening on with Turn on “phrase” under the voice hint; it never starts on its own, and the browser may ask for microphone access. After that opt-in, their first click or keypress on later page loads resumes listening. While no call is running and the page is visible, the hint shows the configured phrase. Saying it opens the assistant. Visitors can turn listening off or on in the voice panel.
- It uses the embedding page's browser speech recognition. On-device recognition is preferred; otherwise the browser's speech service processes the audio. It never listens before a page interaction, during a call, in a background tab, or after the visitor opts out.
- Only the final best transcript can activate the assistant. Interim guesses and lower-ranked alternatives do not trigger a wake. A Heard … caption shows recognized words. The wake phrase opens the panel and is never submitted as an action command.
- A rate-limit response pauses wake activation until the server's retry time. The panel shows when voice will be available; an old failed connection is not automatically replayed after reload.
- Works in Chrome and Edge. Other browsers don't show the switch; visitors tap the orb as usual.
- The visitor's choice is remembered on that website and can be switched off at any time.
Privacy
- The microphone is used during a call and while the visitor's enabled wake word is listening. Visitors start a call by tapping the orb, or by saying “Hey Bodha” if they switched the wake word on.
- When Answer from the current page is on, the visible text of the page is sent with each command. Emails, phone numbers and card numbers are masked, form fields and elements marked
data-privateordata-voice-ignoreare skipped, and the page text is never stored. - Each command and answer is saved in your conversation history, like chat.
Minutes and limits
Time counts while a voice call is connected. Each plan includes voice minutes every month, and you can buy extra minutes in Billing. Extra minutes never expire and are used after the month's plan minutes. Each voice command also counts as one reply.
Events and website actions
Your site's JavaScript can follow what voice does, block actions, and add its own voice commands.
BodhaVoice.on("action", (event) => analytics.track("voice_action", event.detail));
BodhaVoice.on("before-action", (event) => {
if (event.detail.action.kind === "navigate" && !visitorAgreed()) event.preventDefault();
});
BodhaVoice.registerAction({
name: "add_to_wishlist",
description: "Add the current product to the wishlist",
handler: async () => ({ ok: true, message: "Added to your wishlist." }),
});
Events: ready, open, close, listening, wake, transcript, reply, page-captured, before-action, action, action-error, navigate, and error. Each is also sent as a DOM event named bodha-voice:<name>.
Website actions need Custom website actions turned on (Starter and Pro). Arguments are checked against the parameters you declare (string, number, integer and boolean, up to eight), your handler has five seconds, and its message is spoken. Actions about payments, deleting, or accounts are refused.
Troubleshooting
| Problem | What to check |
|---|---|
| No orb appears | Voice is on for the website and the chatbot, the plan is paid, the snippet is on the page, and the page's domain is in the website's allowed domains. |
| "Allow microphone access" | The visitor blocked the microphone. They can allow it from the address bar, then tap the orb. |
| Safari asks to tap again after each page | Safari needs a tap to restart the microphone after a page loads. Chrome and Edge continue automatically. |
| "That page isn't in this website's imported knowledge" | Voice only opens pages you imported in Knowledge. Import or re-sync the page. |
| Voice has reached its limit | The month's voice minutes and extra minutes are used up. Buy more minutes or wait for the next month. |
