Website widget
Put a call-and-chat button on your own website, backed by the same agent that answers your phone. No phone number involved.
On this page
The widget is a small script you drop into your website. Visitors get a button that opens a chat, or starts a voice conversation with your agent straight from the browser — no phone call, no number, no app.
It's backed by the same agent, the same instructions and the same knowledge base as your phone line, so there's nothing extra to maintain.
Agent → (your agent) → EmbedWhy bother, if you already have a phone number
Different visitors, same intent. A lot of people browsing your site won't pick up the phone but will happily click a button — especially outside business hours, and especially for a quick question they feel is too small to warrant a call.
It also captures the moment. Someone reading your pricing page has a question now; a phone number asks them to switch device and context.
Setting it up
- 1
Open the Embed tab
Inside the agent you want to answer web visitors. You can point it at a different agent than your phone line if web enquiries need a different manner.
- 2
Set your allowed domains
List the domains the widget may run on. This is the security boundary — see below — so put your real site in and nothing else.
- 3
Choose voice, chat, or both
Toggles for each mode, plus a theme so it fits your site, and a cap on how long a single session can run.
- 4
Copy the snippet into your site
One script tag, near the end of your page:
<script async src="https://api.vocallie.com/widget/widget.js" data-agent-key="pk_live_..."></script>It works with any site — WordPress, Shopify, Webflow, a hand-written HTML page, a React app. There's nothing to install and no framework requirement.
- 5
Test it on your real site
Load the page, open the widget, and ask it something. If nothing appears, the domain allowlist is the first thing to check.
About the key
The key in that snippet is publishable, not secret. It sits in your page source where anyone can read it, and that's fine by design — it's not what protects you.
What protects you is the domain allowlist: requests are rejected unless they come from a domain you listed. Someone copying your key onto their own site gets a rejection, not free calls on your balance.
There are also rate limits per address, a cap on how many sessions one key can hold open at once, and the same wallet and quota checks that real calls face.
Note
Don't confuse this with an API key. API keys are secret, belong on your server, and can do far more. The widget key is public by nature and can only start widget sessions.
If you ever need to invalidate it, the Embed tab has a rotate key button — the old key stops working immediately, so update your site at the same time.
What it costs
Two different meters, because the two modes cost differently to run:
- Voice conversations bill exactly like phone calls — per minute, from your included minutes and then your wallet. They also consume a concurrent line, so a busy widget competes with your phone lines for capacity.
- Chat messages are metered separately, against a monthly allowance that scales with your plan. Need more, buy a Website Chat add-on.
What it can and can't do
Voice conversations through the widget are real conversations — the agent can use your knowledge base and behave exactly as it does on the phone.
Chat is currently knowledge-only: it answers from your knowledge base but doesn't book appointments or transfer to a human. If someone needs to book, have the agent direct them to the voice mode or to your phone number.
Compliance
If you have AI disclosure switched on, the widget shows it too. Worth keeping on for a web widget regardless of obligation — visitors interact more openly when they know what they're talking to.