> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vorel.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Web chat

> Embed the chat widget on your site, control its appearance, and understand how anonymous visitors are handled.

The web widget puts the same agent on your website. A visitor opens it, types, and gets the same
answers a caller would, from the same knowledge, with the same booking tools.

## Embedding

Configure the widget under **Agent, then Widget**, then copy the snippet into your site's HTML
before the closing `</body>` tag.

```html theme={null}
<script src="https://app.vorel.ai/api/widget/loader?key=YOUR_PUBLIC_KEY" async></script>
```

The loader mounts the chat UI in an iframe, so nothing about the widget can read or interfere with
the rest of your page.

<Note>
  The key in the snippet is a public embed key, not an API key. It is safe in page source. Rotating
  the key from the console invalidates the old snippet immediately, which is how you cut off an
  embed on a site you no longer control.
</Note>

## Configuration

* **Appearance.** Colours, position, launcher label and greeting.
* **Availability.** Whether the widget appears outside business hours, and what it says if it does.
* **Language.** The widget follows your workspace default and switches to match what the visitor
  writes.

## Anonymous visitors

A web visitor has no phone number and no email until they give you one. Until then they are an
anonymous session. Once they share a contact detail, the conversation is linked to a customer
record, and if that detail matches someone who has called or messaged you before, the histories
join. See [Memory and state](/agent/memory).

## What the agent can do

The full chat tool surface: answer from knowledge, qualify, check availability, book, write to your
CRM, and escalate to a human.

Because a web visitor has no address to message later, anything that needs a follow-up asks for a
contact detail first.

## Handing over to a person

When a conversation escalates, the thread lands in your inbox and your alerting rules fire. If a
team member replies while the visitor still has the widget open, the reply appears in the widget
live. If the visitor has left, the follow-up needs a contact detail, which is why the agent asks for
one before escalating where it can.

## CSAT

Web visitors are surveyed inside the widget rather than by message, since there is nowhere to send
a link. The rating bar appears in place when the conversation closes. See [CSAT](/inbox/csat).

## Limits

* The widget is for your own site. It is not a shareable chat link.
* File upload from the visitor is not supported today.
* The widget does not persist a conversation across browsers or devices for an anonymous visitor.
