# Website Voice Widget

> Embed an Edesy voice agent on your website with a one-line script tag, a widget key scoped to one agent, an allowed-domains list and your branding.

Source: https://edesy.in/docs/voice-agent/channels/website-widget

The website voice widget lets visitors talk to your agent from your site. Create a widget key for the agent, list the domains allowed to use it, and paste the one-line script tag before your site's closing `</body>` tag. The key only works on the domains you list, so copying the snippet to another site does not let it place calls on your account.

## At a glance

| Item | Value |
|------|-------|
| Key | A widget key scoped to one agent, shown masked after creation (`wk_****_...`) |
| Domain whitelist | Comma-separated list; `*` wildcards allowed, for example `*.example.com` |
| Branding | Primary colour and company name |
| Embed | One `<script>` tag |
| Manage | Owners and admins create and edit keys; members can view them |
| Billing | Calls use your workspace credits at the agent's per-minute rate |

## Set it up

1. Open the agent and go to the **Widget** section.
2. Click to create a key. Give it a name, such as "Production website".
3. Under **Allowed Domains**, enter your domains, for example `example.com, *.example.com`.
4. Copy the generated snippet.
5. Paste it before `</body>` on every page where the widget should appear.
6. Open your site and test a call.

```html
<script
  src="https://voice-agent.edesy.in/widget/voice-widget.js"
  data-api-key="YOUR_WIDGET_KEY"
  async
></script>
```

## Domain whitelist tips

| Entry | Matches |
|-------|---------|
| `example.com` | Only `example.com` |
| `*.example.com` | Subdomains such as `www.example.com` and `shop.example.com` |
| `localhost` | Local testing |

Add your staging domain to a separate key so you can switch it off later without touching production.

## FAQs

**Is the widget key secret?**
It is visible in your page source, which is why it is tied to an allowed-domains list and to one agent. Never put a server `vp_` API key in a web page.

**Can I have several widgets?**
Yes. Create one key per site or environment.

**Can I turn a widget off?**
Yes. Deactivate its key; the snippet stops working straight away.

**What about a page I don't control?**
Use a [share link](https://edesy.in/docs/voice-agent/channels/share-links) instead.

## Related

- [Share links](https://edesy.in/docs/voice-agent/channels/share-links)
- [WebRTC browser calls](https://edesy.in/docs/voice-agent/telephony/webrtc)
- [Channels overview](https://edesy.in/docs/voice-agent/channels)
