---
title: "Install a widget"
description: "Create a widget, choose its formats, allow your domain, and paste the bubble snippet, the in-page snippet, an iframe or the hosted link."
canonical: "https://lookio.app/docs/guides/widget/install"
updated: "2026-11-08"
---

# Install a widget

## Create the widget

1. **Name it**

   Open **Widgets**, then **Create a widget**. Only you see the name.
2. **Choose the assistant**

   A widget has one assistant, with its context and its knowledge.
3. **Allow your domains**

   Type the sites where the widget may show, for example `help.billowfin.com`. Separate them with commas. Browsers refuse to show the widget on other sites.
4. **Create it**

   Select **Create widget**. The widget is live at once and opens on its **Install** tab. To pause it, turn **Live** off. The code can stay on your site.

## Choose the formats

The **Install** tab lists the three formats: **Chat bubble**, **In the page** and **Hosted page**. Each has its own switch. Select a format to see how to install it.

- A new widget has the chat bubble on and the other two off.
- A format that is off does not show. The in-page chat and the hosted page answer "not found". Only the preview in the app shows them.

In the API, the CLI and MCP, the three switches are `bubble`, `embed` and `hosted_page`.

## Chat bubble

Paste this line before the closing `</body>` tag on every page, or in the custom code setting of your site builder (Webflow, Framer, WordPress, Shopify, Softr):

```html
<script src="https://widget.lookio.app/v1/widget.js" data-lookio-widget="YOUR_WIDGET_ID" async></script>
```

The **Install** tab shows the line with your widget's id.

![The Install tab of the Help center bubble widget: Chat bubble on, In the page off, Hosted page on, and the script tag to paste, circled](/docs/images/app/widget-install.webp)

_Install: the three formats with their switches, then the line to paste._

## In a page

Turn on **In the page**. Put an element where the chat goes, give it a height, and add the script once:

```html
<div data-lookio-embed="YOUR_WIDGET_ID" style="height: 600px"></div>
<script src="https://widget.lookio.app/v1/widget.js" async></script>
```

The chat fills the element. One script serves several embeds and one bubble on a page.

### Without scripts

Some builders refuse scripts but accept iframes. The iframe is the in-page format, so **In the page** must be on:

```html
<iframe src="https://widget.lookio.app/w/YOUR_WIDGET_ID?embed=1" style="width: 100%; height: 600px; border: 0" title="Chat"></iframe>
```

## Hosted page

Turn on **Hosted page**, then share `https://widget.lookio.app/w/YOUR_WIDGET_ID`. Anyone with the link can chat, within the visitor limits. When you turn it off, the link answers "not found".

## If nothing shows

Check these three things, in order:

1. **The format is on**, in the **Install** tab.
2. **Your domain is allowed**, in **Allowed domains** of the **Config** tab.
3. **The widget is live**: the **Live** switch at the top of its sheet.

The browser console of your site says which one. More causes in [Widget troubleshooting](/docs/guides/widget/troubleshooting). With no allowed domain, only the hosted page works.

## From the API, the CLI or an agent

Each widget returns its `snippets`, ready to paste.

**API**

[Create a widget](/docs/api/widgets/create-widget), [Update a widget](/docs/api/widgets/update-widget), [List widgets](/docs/api/widgets/list-widgets).

**CLI**

```bash
lookio widgets create --assistant ASSISTANT_ID --domain help.billowfin.com --mode flash
```

**MCP**

`create_widget`, `update_widget`, `list_widgets`.
