Web chat widget
Embed the CoPhrase agent on your website with a script tag — the fastest channel to connect and the only one with no account risk.
The web chat widget is a chat bubble on your own website, backed by the same agent that runs every other channel. It's a <script> tag that loads an iframe.
It is the recommended first channel: there's no account to link, no platform approval to wait for, and nothing that can be banned or restricted. If you want to see your agent working in production today, this is how.
What makes it different
The widget is the only channel where replies stream — the visitor watches the answer appear word by word, like a chat app, instead of waiting and then receiving a block of text. Every other channel gets the finished reply in one delivery.
It's also the only channel where the visitor may be anonymous. Someone browsing your pricing page has no phone number, no Instagram handle, nothing. CoPhrase creates an anonymous contact for them and merges it into a real contact the moment they identify themselves — by giving the agent their email, or by logging into your app.
Setup
Create the widget connection
Add a web chat channel in CoPhrase and attach it to the agent you want answering. You get a snippet and a public key for your organization.
Drop the snippet on your site
Paste the script tag into your site's HTML — the same place you'd put an analytics snippet. It loads the widget into an iframe, so the widget's CSS and JavaScript can never collide with your site's.
Put it on every page you want the agent reachable from, or just the pages where it matters (pricing, support, checkout).
Restrict where it can run
Add the domains that are allowed to load your widget. The public key in the snippet is visible to anyone who views your page source — it identifies your organization, it does not authenticate anyone. The origin allow-list is what stops someone embedding your agent on their own site and spending your credits.
Rate limits and spend budgets are enforced on top of that. A visitor challenge (a lightweight bot check) can kick in when traffic looks abusive — it does not run for normal visitors, because making every visitor solve a puzzle before they can ask a question costs more conversions than it saves.
Identify logged-in users (optional)
If the widget runs inside a product where users are already logged in, you can tell CoPhrase who the visitor is. Signing that identity with your secret proves it's really them — otherwise anyone could claim to be any of your users and read that contact's history.
The payoff: the agent knows who it's talking to from the first message, and the conversation attaches to their existing contact record instead of an anonymous one.
Capabilities
| Streaming replies | Yes — the only channel that streams |
| Message length | No practical limit |
| Inbound media | Images and files, read by the agent |
| Anonymous visitors | Yes, merged into a real contact on identify |
| Ban / restriction risk | None — it's your site |
| Approval required | None |
Things to know
Visitors leave. Conversations don't.
A visitor who closes the tab mid-conversation still has a thread in your inbox, and the contact record survives. If they later email you or message you on WhatsApp, that history is on the same contact.
Anonymous contacts pile up. Drive-by visitors who ask one question and leave become anonymous contacts. That's intentional — they're the top of your funnel — but expect the contact list to look busier than your lead list.
The widget is a channel, not a separate product. It uses the same knowledge base, the same persona, the same actions, and the same handoff rules as Discord or WhatsApp. You don't configure it twice.
Human takeover works here too. Take over a widget thread from the inbox and the visitor is talking to you, live, in the same bubble. See Handoff.