Your website now talks to visitors. PVS AI Voice puts a
Call button on your site. Visitors press it and talk to an AI voice agent that lives in
your own ElevenLabs account – a real conversation over WebRTC, with the transcript written out as it happens. During the call they can type into the same conversation. The widget itself – colours, font, launcher, call screen – is yours to design, with a live preview beside every setting.
https://www.youtube.com/watch?v=1fBWyDCVfoE
Up and running in three steps
- Open an agent in your ElevenLabs dashboard – or build one there – and copy its Agent ID.
- Create a widget under PVS AI Voice → Widgets, paste the Agent ID and design the widget in the Widget Studio. Eleven templates give you a finished look in one click.
- Place it: site-wide on every page, with a shortcode, with the "PVS AI Voice" block, with the Elementor element, or as embed code on any other website.
A public agent needs nothing else – no API key. For an agent with
Enable authentication switched on at ElevenLabs, store your ElevenLabs API key under
Settings → AI providers: every call is then opened with a short-lived token your site requests from ElevenLabs, and the key itself never reaches the browser.
What your visitors get
- A real conversation, not a form. They press Call, speak, and hear the answer – with the transcript written out live, so nothing is lost. During the call they can also type.
- A widget that looks like your website. Colours, font, corners, shadows, the launcher icon, the call screen: every detail is yours. Eleven templates give you a finished look in one click; the live preview shows every change as you make it.
- Their language. The admin and the widget's own texts come in English, German, French, Spanish, Turkish, Russian, Arabic, Simplified Chinese and Persian – Arabic and Persian right-to-left. The language the agent speaks is set at ElevenLabs.
- Takeaways. A copy button on replies and the transcript as a PDF, if you switch them on.
What you control
- The agent. Build it in your ElevenLabs account – prompt, voice, knowledge, turn-taking – and paste its Agent ID. Public agents need no key; agents with authentication use a short-lived token your site mints with your key, which never reaches the browser.
- Where it shows. Site-wide on every page, on one page with the shortcode, as a block in the editor, as an Elementor element, or on any other website with the embed code. An allow-list limits which websites may call a widget.
- The design, down to the pixel. The Widget Studio has eight pages – Agent, Template, Brand, Launcher, Chat window, Call screen, Features, Publish – with about 140 Google Fonts plus system fonts, 42 icons, free colours, shapes and shadows, and a live preview beside every setting.
Everything in the free edition
- Any number of widgets, each calling its own ElevenLabs agent by Agent ID (public, or private with your key)
- Widget Studio with eight pages – Agent, Template, Brand, Launcher, Chat window, Call screen, Features, Publish: 11 design templates, about 140 Google Fonts plus system fonts, 42 icons, free choice of colours, shapes and shadows, live preview
- During a call: live transcript, typed messages, full-screen mode on desktop, a copy button on replies, transcript download as PDF
- Placement site-wide, via shortcode, Gutenberg block or Elementor element – and as embed code for other websites; an allow-list of the websites a widget may be called from
- Nine languages for admin and widget: English, German, French, Spanish, Turkish, Russian, Arabic, Simplified Chinese and Persian – Persian and Arabic with a right-to-left interface
- The ElevenLabs API key is stored encrypted (libsodium or OpenSSL) and is only ever sent to ElevenLabs
- No account with us, no sign-up, no limits on widgets or calls. You need an ElevenLabs account and pay ElevenLabs directly for the calls – the plugin adds no credits and no fees of its own.
PVS AI Voice Pro
The Pro edition of this plugin (sold separately on
pvs-computer.com) adds the
Agent Builder: agents created in your ElevenLabs account from your business profile, website analysis and knowledge base, with a generated system prompt. It also adds the
WordPress, WooCommerce, MCP and Vision tools for the agent,
live video avatars (HeyGen LiveAvatar, Tavus), uploads during a call, and
Conversations with AI reports. The Pro edition installs over this one and keeps every widget and setting.
https://www.youtube.com/watch?v=0EyrNLHPhFw
- Install the plugin from the WordPress plugin directory, or upload the ZIP under Plugins → Add New → Upload Plugin, and activate it.
- Create a widget under PVS AI Voice → Widgets → New widget and enter the Agent ID of your ElevenLabs agent (open the agent in your ElevenLabs dashboard; the ID is shown in its settings).
- Public agent: in the agent's Security settings at ElevenLabs add your website's hostname to the allowlist, so the Agent ID cannot be used from other sites. Nothing else is needed.
- Agent with Enable authentication: tick The agent requires authentication in the widget and store your ElevenLabs API key under PVS AI Voice → Settings → AI providers (give the key access to "Agents" in your ElevenLabs API-key settings and use Test connection).
- Design the widget in the Widget Studio and switch it on under Publish.
- Place the widget:
- Site-wide: PVS AI Voice → Settings → General or Set as site-wide widget on the widget's Embed widget page.
- Shortcode:
[pvs_voice token="PVS-xxxxxxxxx"] (optional position="bottom-left", auto_open="true").
- Block: insert the "PVS AI Voice" block in the editor and select the widget.
- Elementor: search the elements panel for "PVS AI Voice", drop the element onto the page and pick the widget (corner, auto-open, offsets and a welcome message per page).
- External: copy the embed code from the Embed widget page into any HTML page.
The embed code names the widget script and its configuration at two short addresses of your site –
/voice-widget/embed.js and
/voice-widget/api/ – which the plugin registers as rewrite rules on activation (on a site without pretty permalinks the same addresses take the query-string form, like WordPress' own REST API). The code stays the same when a widget is edited: the design is fetched when the page loads.