Web Calling
Web Calling is a voice widget you embed on your website. Visitors click it, their browser connects to PolyAI over WebRTC, and the call is routed to your agent. No phone number or app install is required. Configure it from Widgets in Agent Studio.

Embed it
The install is a single script tag, generated for you under Widgets > Embed. Paste it just before </body> on your site:
The launcher shows up bottom-right on any page that loads the script. Styling, content, and agent changes take effect on the next page load; no re-embed needed.
No website yet? Use the shareable page instead. It’s a hosted URL on PolyAI’s domain that anyone can call without logging in.
For Tag Manager, HTTPS, and the rest of the deployment details, see Install on your site. For styling, language, and consent options, see Configure.
The agent’s voice
Web Calling uses whichever voice you’ve set under Voice > Settings. The same voice plays whether someone reaches you through the embedded widget or a shareable page link.
Web Calling in the channel mix
Web Calling is a voice channel, just like a phone number. The only thing that changes between them is how the audio gets to PolyAI.
Web Calling and Numbers are two ways into the same voice agent. They share the agent’s spoken voice (set once, under Voice) and the same conversation logic. Switching a visitor between them doesn’t require a separate flow.
What the widget does
A consent step before the mic opens. Mute and end-call controls. The usual connecting / in-call / ended / error states. Only one call active per visitor across tabs. You can lock the widget to specific domains, run multiple variants per brand or region, and surface whichever languages your agent speaks.
Compliance
Privacy and consent controls are off by default. Turn them on under Widget configuration.
You are responsible for meeting transparency, disclosure, and consent requirements in every jurisdiction you operate in (notably EU and some US states).
Before you embed
Reference pages
Technical details
How a call connects
Web Calling is loaded by a single <script> tag on your site. The script injects an iframe pinned to the bottom-right of the page. When a visitor clicks the launcher, the widget requests microphone access, opens a WebSocket to PolyAI’s WebRTC gateway, and starts an Opus 48 kHz audio call with your agent.
Two endpoints are involved:
- HTTPS to PolyAI’s widget script endpoint, which loads the widget JS.
- WSS to the WebRTC gateway, which carries signaling and Opus audio to your agent.
Only one Web Calling call can be active per browser at a time. The widget enforces this with a cross-tab lock so a visitor with multiple tabs open cannot start parallel calls.
Web Calling vs. telephony, side by side
You can run both: Web Calling for visitors already on your site, telephony for callers from anywhere else. Both connect to the same agent.
Programmatic control (JavaScript SDK)
The widget script also exposes a window.PolyphoneAPI object that lets your page drive the call programmatically, useful when you want to trigger Web Calling from a custom button, an in-app event, or an existing chat experience.
Available commands: connect, disconnect, startCall, endCall, connectAndCall, mute, unmute, sendInfo, isConnected, getCurrentSession, destroy. Event registration uses dedicated methods: onReady, onConnecting, onConnected, onDisconnected, onRegistered, onUnregistered, onRinging, onAnswered, onEnded, onFailed, onMuted, onUnmuted, onCaptureAudio, onAudioEnded, onInfoSent, onInfoReceived, onTranscription, onError. Use off(eventName, handler) to remove a registered handler.
Browser support
Web Calling uses standard WebRTC primitives. Verified browsers:
Visitors on unsupported browsers see a disabled call button with a brief explanation. Mobile-browser and in-app-webview behavior can vary, so test in your intended deployment environment before launch.
Related pages
- Voice, pick the voice your agent speaks with
- Studio Assistant, ask it to adjust Web Calling behavior in plain language
- Install on your site, Tag Manager and HTTPS notes
- Configure, styling, language, consent
- Voice, the agent’s TTS voice, shared by Web Calling and telephony
- Numbers (telephony), the phone-network route into the same voice agent
- Webchat, the text channel that uses the same widget framework
- Variants, per-domain or per-region widget configuration
- WebRTC gateway API, the underlying transport (advanced)

