Skip to main content
Add your agent to any website as a floating chat bubble. Visitors chat with it right on the page, and the agent remembers each visitor across pages, reloads, and return visits — no account or login needed on your visitor’s side. The widget works on any site, including traditional websites where every click is a full page reload: the conversation picks up exactly where it left off on the next page.
Web chat runs on the same managed conversations as two-way texting, so everything you know about conversations, memory, and the Messages API applies here too. Web chat messages appear in your Message Logs and Conversations pages with a Web badge.

How it works

  1. You enable the widget on an agent and list the websites it may run on.
  2. You paste one line of code into the website.
  3. Visitors click the bubble and chat. Replies come from your agent’s prompt, with the recent conversation kept in context per visitor.
  4. Every conversation shows up in your dashboard under Conversations, and each message in Message Logs.

Setup

1

Turn on the widget

Open your agent, go to the Widget tab, and list the website domains the widget is allowed to run on (one per line, for example www.example.com). Click Turn on the widget.
2

Copy your embed code

The tab now shows your embed code. Copy it. It looks like this:
<script src="https://widget.revring.ai/v1.js" data-key="rrwk_..." async></script>
3

Paste it into the website

Paste the snippet once, ideally right before the closing </body> tag, on every page where the widget should appear. Most site builders and CMSs have a “custom code” or “scripts” area for this.
That’s the whole setup. The widget loads its look and behavior from your agent’s settings, so changes you make in the dashboard apply to the live website automatically — no code changes needed.

Make it yours

Everything visual is configurable on the agent’s Widget tab, with a live preview:
  • Display name and avatar image shown in the chat header
  • Button label on the floating bubble (for example “Chat with Ava”)
  • Welcome message shown when a visitor opens the chat for the first time
  • Accent color, position (any corner), and light/dark theme
  • Message placeholder text in the input
There is no RevRing branding on the widget. What your visitors see is your brand only.

The web chat prompt

Replies use the agent’s Web chat prompt (set on the Widget tab) when you’ve added one, and otherwise fall back to the agent’s main prompt — so the widget works out of the box on any agent. Add a web chat prompt when website chat should have its own tone or rules, separate from calls and texting.

Voice calls

Let visitors talk to your agent by voice, right in the browser. Turn on Voice calls on the agent’s Widget tab and a call button appears in the widget next to chat.
  • Nothing to install for your visitors. They click the call button, allow their microphone, and start talking. The call happens in the browser, so there is no phone number and no ringing.
  • Same agent, one place to manage. A voice call uses the same prompt, voice, and settings as the agent’s phone calls. Pick a professional voice on the agent’s Voice tab.
  • Everything is recorded like a normal call. Voice widget calls show up in your Call Logs with full transcript, recording, and webhooks, exactly like phone calls. They’re marked as web calls (a source of web_widget in the API), so you can tell them apart from phone calls at a glance.
  • Calls continue across pages. If a visitor clicks to another page or reloads mid-call, the same call picks back up automatically in a few seconds, with the same conversation in progress. No redial, no starting over. If they’re gone longer and the call has already wrapped up, coming back within a couple of minutes quietly starts a follow-up call where the agent picks up right where things left off (the two calls are linked in the API via continuedFromCallId). On by default; turn off Resume calls across pages on the Widget tab to make each page a fresh call.
  • Chat and voice share one memory. The agent treats a visitor’s chat messages and voice calls as one ongoing relationship: on a call it already knows what was discussed in chat, and back in chat it remembers what was said on the call. Clearing the visitor’s conversation clears all of it. On by default; turn off Share memory between chat and voice on the Widget tab to keep them separate.
  • HTTPS required. Browsers only allow microphone access on secure (https) pages, which any live website already uses.
Voice is off by default. Text chat keeps working whether or not you enable voice. You can offer chat only, voice only, or both.

Memory and conversations

The widget remembers each visitor automatically. A visitor who browses five pages, leaves, and comes back tomorrow continues the same conversation with full context. Voice calls are part of that same memory: after a call, the chat knows what was said, and the next call knows what was typed.
  • Threads appear on the Conversations page (and the Conversations API) alongside your texting threads, marked Web.
  • After a period of inactivity the conversation starts fresh, using the same per-agent idle window as texting. See Managing conversations.
  • Clearing a thread from the dashboard makes that visitor start over as brand new.

Staying in control

  • Allowed websites. The widget only runs on the domains you list. On any other site it stays hidden and prints a short explanation in the browser console for your web team.
  • Sensible limits. Conversations have per-minute and per-day message budgets so a stuck script or bad actor can’t run up your usage. Visitors see a friendly “come back later” note if a limit is reached.
  • No secrets in the page. The embed key in your snippet is public by design and only works on your allowed domains.

Troubleshooting

The bubble doesn’t appear

Solution:
  1. Open the browser console on the page. The widget logs one line explaining exactly why it did not start (domain not on the allowlist, widget turned off, or an invalid key) and what to change.
  2. Confirm the widget is on: agent Widget tab, the switch at the top.
  3. Confirm the page’s domain is listed under Allowed websites. Subdomains count separately, so www.example.com and example.com are different entries.

Replies stopped coming

Cause: the conversation hit its per-minute or daily message budget, or the site is offline. Solution: wait a moment and try again. Budgets reset automatically. If it persists, check the conversation on the Conversations page.

The website has a strict Content Security Policy

Solution: allow https://widget.revring.ai in script-src and https://api.revring.ai in connect-src.

Next steps

Two-way texting

The same conversations and memory, over SMS

Conversations API

List and clear conversation memory programmatically

Prompting & Variables

Shape how your agent talks

Webhooks

Connect conversations to your systems