One line to install

A voice agent on your website, in one script tag.

CallKaro Widget puts a live, talking AI agent on any page. Visitors click, speak, and get answers instantly — no phone call, no app to install, no form to fill in. Building for a mobile app instead? Chat agents are one URL, no SDK.

<script src="https://widget.callkaro.ai/w.js"
        data-ck-id="your-widget-id" defer></script>

How it works

Create a widget in your dashboard, paste one line into your site, and you're live. Everything else is configured on our side.

1

Create a widget

Choose which of your agents answers, then set the display name, greeting, colours and icon.

2

Paste one line

Add the script tag before your closing </body>. No API key, no server-side code.

3

Change it any time

Update the agent, wording or branding from the dashboard. Your website is never edited again.

Chat agents, for the app you already have

The same dashboard also builds chat agents. Where the voice widget is a script tag for your website, a chat agent is a single URL you open in whatever web view your app already ships with — so there is no SDK from us to install, version or support, and no app-store release when the conversation changes.

https://widget.callkaro.ai/chat.html?w=your-widget-id

Answers that never drift

A chat agent is a flow you draw: a message and the buttons that answer it, branching into the next step. No model in the loop, so every visitor gets the same answer and a conversation costs nothing per message.

Ask the model when it helps

Add an AI step where a scripted answer will not do, and it hands back to the flow when it is done. Call your own API, run your own Python, show an image or a file, save what you learn to the contact record.

A person when it matters

Any step can pass the conversation to your team. It routes to whoever is available and holding the fewest chats, they reply from the dashboard, and the assistant picks up again when they are done.

One line per platform

iOS opens it in SFSafariViewController, Android in Chrome Custom Tabs, React Native in a WebView, Flutter in webview_flutter. The same URL works in a browser too.

They pick up where they left off

A conversation survives the app being closed, the phone being reopened, even a reinstall. Visitors get their earlier conversations back, and a reply from your team reaches them while they are still looking at the screen.

What you get

Everything the widget does, out of the box.

Real-time voice

Natural spoken conversation with barge-in, so visitors can interrupt and still be understood.

Live transcript

The conversation is written out as it happens, so anyone can follow along or read back.

Multilingual

Offer several languages on one widget and let the visitor pick before they start.

Your branding

Custom name, greeting, icon, colours, and a launcher on whichever side you prefer.

Style isolated

The launcher renders in a shadow root and the panel in an iframe, so your CSS and ours never collide.

Many widgets, one account

Run different agents on different sites or pages, each with its own look and its own id.

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.

What loadsWhenSize
Launcher script w.jsOn page load~1.6 KB gzipped
Widget interfaceWhen a visitor opens it~9 KB gzipped
Voice engineWhen a visitor starts talkingDeferred until needed

No secrets in your page

The snippet carries a public widget id and nothing else — never an API key, and nothing that identifies your account.

Accessible by default

Keyboard reachable, properly labelled controls, and it honours reduced-motion preferences.

Documentation

Guides and references for the whole CallKaro platform.

Ready to add one?

Create a widget from your CallKaro dashboard and copy the snippet.

Create a widget