Skip to main content

Overview

The CallKaro Website Widget places a live voice agent on any web page. A visitor clicks the launcher, speaks, and gets answers straight away — no phone call, no app to install, no form to fill in. Installation is one line of HTML containing a single public widget id. There is no API key in your page and no server-side code to write.
Everything about the widget — which agent answers, its name, greeting, icon, colours and languages — is configured in the dashboard. Once the snippet is on your site, you never have to edit your website again to change any of it.

How It Works

1

Create a widget

In the dashboard, pick the agent that should answer and give the widget a name, greeting and branding. You get a unique widget id.
2

Paste one line

Add the script tag to your site, just before the closing </body> tag.
3

Visitors talk to your agent

A launcher button appears in the corner of your site. Clicking it opens the conversation panel, and pressing Talk starts a live voice session.

Create a widget

Set up your first widget in the dashboard

Install on your website

Snippets for HTML, React, Next.js, WordPress and more

What Visitors Get

Real-Time Voice

Visitors speak and the agent answers out loud, using the same voice pipeline as your phone calls.

Live Transcript

The conversation is written out as it happens. Useful in noisy environments, for visitors who prefer to read, and for accessibility.

Their Choice Of Language

If you enable more than one language on a widget, the visitor picks before starting. With one language, the selector is hidden entirely.

Your Branding

Custom display name, greeting, icon, colours, and a launcher on whichever side of the screen you prefer.

Built To Stay Out Of The Way

The widget is engineered so it never becomes your site’s performance problem. Nothing heavy loads until a visitor chooses to use it.
Most visitors never open the widget, so for them the entire cost is a 1.6 KB script. The conversation interface and the voice engine are only fetched when somebody actually engages.

How It Stays Isolated From Your Site

The widget is deliberately built so it cannot interfere with your website:
  • The launcher renders in a shadow root. Your site’s CSS cannot reach inside it, and the widget’s styles cannot leak out onto your page.
  • The conversation panel runs in an iframe. It brings its own JavaScript framework, so it can never conflict with the version your site uses.
  • No secrets in your page. The snippet carries a public widget id and nothing else — no API key, and nothing that identifies your account.

Requirements

Browsers only grant microphone access on secure origins. On an http:// page the launcher and panel will appear, but starting a conversation will fail.http://localhost is treated as secure, so local development works without a certificate.
Chrome, Edge, Safari and Firefox are all supported, on desktop and mobile.The browser asks the visitor’s permission before any audio is captured, and they are free to decline — nothing is recorded until they accept.
A widget points at one of your existing voice agents. If you have not built one yet, start with how to set up an agent.

Conversations Are Ordinary Calls

A conversation started from the widget runs through the same calling pipeline as the rest of your CallKaro calls. That means it behaves exactly like any other call on your account:
  • It appears in Call History with a full transcript and recording.
  • It counts towards your usage and is billed like your other calls.
  • It flows into your analytics and audit reports.
Anyone who visits a page where your widget is installed can start a conversation with your agent — there is no sign-in step for visitors. Keep an eye on your usage after installing it on a high-traffic page.

Next Steps

Customization

Names, greetings, icons, colours, position and languages

Troubleshooting

Fixes for the most common installation problems

JavaScript API

Open the widget from your own buttons and track events

Contact Support

Get help with setup or integration