# Overview

> Put the widget on your site, and feed it what your page already knows.

Source: https://www.hey.support/docs/build

---

Everything here is about running the agent on your own surface, rather than reading or writing your data.

<Cards>
  <Card title="Embed script" href="/docs/build/embed-script" description="The one-line install, every data attribute it accepts, and the host-page context bridge." />
</Cards>

## Which surface do I want?

| I want to…                          | Go to                                                 |
| ----------------------------------- | ----------------------------------------------------- |
| Put the chat widget on my site      | [Embed script](/docs/build/embed-script)              |
| Install without writing code        | [One-click installs](/docs/launch/one-click-installs) |
| Read or write my workspace data     | [API reference](/docs/api)                            |
| Get notified when something happens | [Webhooks](/docs/webhooks)                            |
| Wire it to other apps without code  | [Zapier](/docs/integrations/zapier)                   |

## No key needed

The embed script is public by design. It takes a **chatbot id**, not an API key — the id is visible in your page source and that is fine, because it grants nothing but the ability to chat with an agent you chose to publish.

Never put an [API key](/docs/api/authentication) in front-end code. Those are workspace-wide credentials.

## Which domains can embed it

An agent can be locked to specific domains under **Preview & Launch → Allowed domains**. With none set, the widget serves anywhere — which is the right default while you are testing, and worth closing once you go live.
