# Shopify Inbox chat

> Add Shopify Inbox, Shopify's free chat, to a Webflow site with the code from the Smootify dashboard, two settings in Shopify, and the proxy that opens the chat panel.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/features/shopify-inbox  
Updated: 2026-10-07

Shopify Inbox is Shopify’s free chat app. Visitors write to you from the site, and you answer from Shopify Inbox in the Shopify admin or in the app on your phone. The chat button works on any site, but the chat panel opens from an address that only Shopify’s own online stores have. On a Webflow site, a proxy opens that panel. This page adds the chat to your site and sets up the proxy.

> [!NOTE]
> You need the Shopify Inbox app on your store, with its chat turned on in your Shopify theme (**Online Store › Themes › Customize › App embeds**): the code comes from a page of the store that shows it. On the Free and Lite plans you also need the free proxy on your own Cloudflare account (step 4). On the Server plan, Smootify's proxy does it.

## 1. Get the chat’s code

The code comes from your store, through the Smootify dashboard. In your project, open **App embeds**, then:

- **Read from the store.** It works when the live theme of your store is Smootify’s [Redirect theme](https://www.smootify.io/docs/start/domains), version 1.1 or later. Click it: a small window opens your store for a moment and closes by itself, and the dashboard reads the page as Shopify renders it, embeds included. Nothing goes through Smootify’s servers. If your online store has a password, type it in the window.
- **Or upload a saved page.** Open a page of your Shopify online store where the chat shows, save it from the browser as an HTML file, and drag it in. This works with any theme.

The dashboard gives you the chat’s code: its settings, its colours, the chat itself, Smootify’s `inbox.js` script and Shopify’s `chat.js` script. Copy it as it is.

If your store still uses the previous Inbox chat, whose code loads `inbox-chat-loader.js`, App embeds gives its code as before: paste it, there is nothing else to set up. The rest of this page is for the current chat.

## 2. Paste the code in Webflow

Paste the code in **Site settings › Custom code › Footer code** to show the chat on every page, or in a Code Embed on the pages where you want it.

Keep the scripts as the dashboard gives them: `inbox.js` before `chat.js`, without `async` or `defer`, so that it runs before the chat starts.

## 3. Set up Shopify

Shopify opens the chat only on the store’s own domains, and only for visitors it accepts. Both settings are required:

- **Add your Webflow domain to the store.** In the Shopify admin, go to **Settings › Domains** and add the domain of your Webflow site, such as `www.example.com`, without connecting it. The domain keeps pointing to Webflow. If your DNS provider offers to connect it for you, refuse: Cloudflare, for example, offers it on its own.
- **Let visitors chat without an account.** In the Shopify Inbox settings, turn off **Require sign-in to chat with staff**.

## 4. The proxy

- **Server plan:** Smootify’s own proxy opens the chat panel. There is nothing to set up.
- **Free and Lite plans:** use the free proxy on your own Cloudflare account, the same one that sends Shopify’s analytics (see [Cookie consent](https://www.smootify.io/docs/features/cookie-consent)). If you already deployed it, use the same one.

To set it up:

1. Open [shopify-headless-proxy](https://github.com/smootify/shopify-headless-proxy) and click **Deploy to Cloudflare**, if you have not deployed it yet. You get an address such as `https://shopify-headless-proxy.your-account.workers.dev`.
2. In the Cloudflare dashboard, open the proxy and add a variable named `SHOP` with your store’s Shopify address, such as `your-store.myshopify.com`.
3. Add a secret named `INBOX_SEAL_KEY`, with any long random string as its value. Without it the chat works, but a visitor who comes back does not find their conversation.
4. In the code you pasted in step 2, add `data-proxy` to the `inbox.js` script, with your proxy’s address followed by `/inbox`:

```html
<script src="https://cdn.smootify.io/assets/inbox/v1/inbox.js" data-proxy="https://shopify-headless-proxy.your-account.workers.dev/inbox"></script>
```

## Products in the chat

The products the chat shows, featured or in its answers, open the product page on your site, and collections open your collection pages. The link uses the product’s Shopify handle. The chat uses the same page addresses as the rest of Smootify: if your product or collection pages are not at `/products/…` and `/collections/…`, set `productsBase` and `collectionsBase`, as the site already needs. See [CMS collections and sync](https://www.smootify.io/docs/start/cms).

## Adding to the cart from the chat

The visitor can add a product to the cart from the chat, change quantities, remove it and apply a discount code there. Everything goes into the site’s cart, which updates on the page without reloading. There is nothing to set up, on Smootify 2.0 and on sites still on 1.x.

## What the chat keeps

Nothing loads and nothing is saved until the visitor opens the chat. When they open it, the browser keeps their conversation’s session, sealed, so that a returning visitor finds the conversation again.

## Before you publish

Try the chat on your published domain: open it and send a message, which shows in Shopify Inbox. On your `.webflow.io` address the panel does not open, because Shopify opens the chat only on the store’s domains.

When something is wrong, the browser’s console (right click › **Inspect** › **Console**) shows a message that starts with `[Smootify] Shopify Inbox:`.

> [!STUCK]
> - **"Read from the store" asks you to update the theme.** The store's live theme is not the Redirect theme, or it is version 1.0. Install the latest one ([Domains and checkout](https://www.smootify.io/docs/start/domains)), or upload a saved page.
> - **The window shows Shopify's password page and the dashboard reads nothing.** It happens on development stores. Type the password, close the window and click **Read from the store** again.
> - **The window does not open.** The browser blocks pop-ups: allow them for the dashboard, or upload a saved page.
> - **The console says `not-a-store-domain`.** The site's domain is not on the store. Add it in **Settings › Domains**, without connecting it.
> - **The console says `server-plan-required`.** Smootify's proxy is part of the Server plan. Deploy your own proxy and set `data-proxy` (step 4).
> - **The console says `no-store`.** The proxy does not know your store. Add the `SHOP` variable to it.
> - **The console says `no-seal-key`.** The proxy has no `INBOX_SEAL_KEY` secret. The chat works, but returning visitors start a new conversation. Add the secret.
> - **The panel opens on your site's 404 page, or stays empty, and the console shows no `[Smootify] Shopify Inbox:` message.** `inbox.js` is not on the page: it is missing, its address is wrong, or something blocks it. Paste the code again as the dashboard gives it.
