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

# Embed the widget

> Put a call button on your website.

The widget is a call button for your own pages. A visitor clicks it and talks to
your assistant in the browser — no phone number, and no credentials in your HTML.

## Set it up

Open an assistant, go to **Widget**, and configure how it looks and behaves. The
**Embed** tab gives you the snippet, with your settings already filled in:

```html theme={null}
<qall-widget
    agent-id="48"
    override-config='{ "variant": "compact", "placement": "bottom-right" }'
></qall-widget>
<script src="https://qall.io/scripts/widget.js" async type="text/javascript"></script>
```

Paste it before your closing `</body>`. That's the whole integration.

<Note>
  `agent-id` takes your **assistant's** id. The attribute predates the rename.
</Note>

## What you can change

| | |
| - | - |
| **Size** | Tiny, compact or full |
| **Position** | Which corner it sits in |
| **Mode** | Voice, text, or both |
| **Avatar** | An animated orb with your colours, or your own image |
| **Colours and corners** | Backgrounds, accents, borders, radii |
| **Wording** | Every label and status message |
| **Transcript** | Whether the visitor can see the conversation |
| **Terms** | A notice to accept before the first call |

Only what you've changed from the defaults ends up in the snippet, so it stays
short.

## Turning it off

A widget has an **active** switch, and it's what allows anonymous calls for that
assistant. Switch it off and the button stops working everywhere it's embedded —
useful out of hours, or if something is being abused.

## Limits on anonymous calls

Every click starts a real, billed conversation, so visitors who aren't signed in
are limited:

* A call ends after **five minutes**, with a warning shortly before.
* There's a cap on how many calls one visitor can start, and on how many an
  assistant will hold at once.

These don't apply to signed-in users, so **Talk to Assistant** in the dashboard
isn't capped.

If a visitor is turned away, it's one of those limits — or the widget is switched
off.

## Reading the calls

Web calls are ordinary [calls](/calls), with transcripts, recordings,
summaries and [outcomes](/outcomes). Filter for them with `direction=web`.

## Building your own front end

If the widget doesn't fit, `POST /api/webcall/join` is what it calls. It returns
what your page needs to connect the audio. The same anonymous limits apply.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.