---
title: "Share and embed"
description: "Turn on a public link for a voice agent, get the script tag or iframe code to embed it on your site, and set the widget's colors, layout, and messages."
---

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

# Share and embed

Building a voice agent only gets you a conversation you can test yourself. Sharing is what puts it
in front of real people: a link you send directly, or a widget you drop onto your own website. This
page covers turning that on, getting the link or embed code, and setting how the widget looks and
what it says. If you're building the agent itself, start with the [Voice Agents
overview](/help/voice-agents/) instead.


Open an agent and select **Share** to reach this page. It has three tabs: **Design**, **Share**, and
**Access & privacy**. Turning sharing on or off, uploading a logo, and changing the widget config
all require the OWNER or ADMIN role on the account.

## A link exists as soon as you open this page

The first time you open the Share page for an agent, Speak AI generates its share link
automatically in the background, even before you decide to make the agent public. That's why the
**Design** and **Share** tabs already have a working preview and embed code to show you: they need
a link to point at, and you shouldn't have to publish the agent first just to see what the widget
looks like.

That link only works once you make the agent public, or once you add an allowed domain. Until then,
the **Share** tab shows a banner explaining that the link and embed code are refused everywhere.

## Turn on the public link

Open the **Access & privacy** tab and check **Make agent public**. The description under it says it
plainly: "Anyone with the link can access. Private requires domain whitelisting."

If you leave the agent off public, it isn't reachable by default. Instead, add one or more
**Allowed domains** underneath the checkbox: type a domain (for example `example.com`) and select
**Add**. The widget then answers only when it's embedded on one of those domains, and is refused
everywhere else. This is the right choice when you're embedding the widget on your own site and
don't want the direct link to work for anyone who finds it.

## Copy the share link or embed code

Once the agent is public or has an allowed domain, open the **Share** tab. It lays out three ways to
reach the widget, in order:

1. **Direct link**: the **Widget URL**, with a Copy button and a **QR code** button next to it. Use
   this to send the agent directly or open it in a new window.
2. **Script tag embed**: a `<script>` snippet you paste into your site's HTML. This is the easiest
   option for most websites, since the script loads and places the widget for you.
3. **Iframe embed**: an `<iframe>` snippet, best for CMS platforms and no-code website builders that
   let you drop in raw HTML but not a script tag. Pick a **Size preset**, Compact (360×500),
   Standard (400×600), Large (480×700), or Full page (100%×100vh), or choose **Custom** and set your
   own width and height.

## Customize the widget's branding

The **Design** tab's **Branding** section controls the **Company logo**, **Brand colors** (a
**Theme** of Light, Dark, or Auto, plus a **Brand color**), and **Typography** (**Font family**).

Each of these can come from two places. By default they inherit from your account's own branding,
shown as a "Using your company branding" badge. Select **Override for this agent** to set a value
just for this agent instead; the badge then reads "Overridden for this agent", and you can select
**Reset to company branding** to go back to inheriting. Company logo works the same way: upload one
here and it overrides your company logo for this agent's widget and its share previews, replacing
the default avatar; select **Reset to company branding** to remove it again. Logos accept PNG, JPEG,
WebP, or SVG files up to 10 MB.

## Set the widget's shape and layout

Still on the **Design** tab, **Widget shape** is a single **Border radius** slider from 0px (Sharp)
to 24px (Rounded).

**Layout** sets the **Display mode**: **Floating bubble**, a small button that expands into the
widget, or **Inline embed**, which renders the widget directly in the page. Floating bubble adds
three more choices: **Position** (Bottom right or Bottom left), **Button size** (Small, Medium, or
Large), and **Bubble icon**, either a Chat icon or the agent's own avatar.

## Set what the conversation defaults to

**Conversation defaults** sets **Default mode**, Voice only or Avatar (video). Avatar is only
selectable once you've configured an avatar for the agent; otherwise a note explains that you need
to do that first. Three checkboxes sit below it: **Compact mode** for a smaller, condensed widget
layout, **Enable user camera** to show the visitor's own camera feed beside the agent instead of
text chat, and **Open chat by default** to open the chat panel automatically as soon as the agent
joins.

## Write the messages people see

**Messages & labels** covers the copy shown around the conversation itself, not the conversation
content.

**Launcher greeting** is the speech-bubble prompt shown next to the floating bubble before anyone
starts talking (it only appears in Floating bubble display mode): a title, up to 60 characters, and
a subtitle, up to 80 characters. Turn it off with **Show greeting bubble**.

**Before & after the call** has two views you switch between. **Before** sets the title, description,
and start button label shown on the widget's start screen, before the conversation begins. **After**
sets the title and description shown once the conversation ends, plus a **Collect feedback after the
call** checkbox that adds a star rating and comment box to that screen.

## Save your changes

Select **Save all settings** at the bottom of the page to save the Design and Access & privacy tabs
together. The page shows "Unsaved changes" while you have edits pending, and "All changes saved"
once they're written.

## Turn sharing off

Open **Access & privacy** and select **Revoke sharing**. This disables the widget and invalidates
the share link for everyone immediately, and it can't be undone: turning sharing back on later
generates a new link, so anyone holding the old one is permanently locked out, not just paused.

---
Related: [Voice Agents](/help/voice-agents/) ·
[Publish and embed a Speak AI voice agent](/api/voice-agents/sharing/)

Source: https://docs.speakai.co/help/voice-agents/share-and-embed/index.mdx
