← All posts
Guides7 min read

[GUIDES] · Aug 4, 2026 · 09:20

Add live chat to Shopify without a per-seat app

One snippet in theme.liquid puts chat on every storefront page, product, collection and cart, and an AI that answers shipping, sizing and returns from your own policies before the question ever reaches you.

Tm

The muro team

muro.chat

#shopify#live chat#theme.liquid#ecommerce#ai support#widget install

The Shopify App Store has a hundred chat apps and most price by agent or by resolved conversation, which is exactly the wrong shape for a store where a seasonal hire might answer ten messages a week. You do not need an app to put chat on a Shopify storefront. Your theme has one layout file that wraps every page, and a single snippet there gives you a chat bubble on the whole store: product pages, collections, cart, everything. A roughly 9 KB async widget on the front, a shared inbox with AI on the back, one flat price no matter how many people answer.

theme.liquid wraps every storefront page

Shopify renders every storefront page through one layout file: layout/theme.liquid. Whatever sits in its <head> appears on the home page, every product, every collection, the cart and your blog. That makes it the one correct place for the snippet: paste it once and you are done, with nothing to repeat per template.

Step 1: grab your widget ID

Sign up for muro (14-day free trial, no charge today), create a site for your store, and copy the widget ID. Take two minutes to match the launcher to your brand color and set the agent name and avatar, so the bubble looks like part of the storefront rather than a bolted-on app.

Step 2: paste the snippet into theme.liquid

In your Shopify admin, go to Online Store, Themes, then the three-dot menu on your live theme and Edit code. Open layout/theme.liquid, find the </head> tag near the top, and paste this right before it:

html<script>
  (function(w,d,s,o){
    w.MuroChat=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
    var j=d.createElement(s);j.async=1;j.src='https://muro.chat/widget.js';
    d.getElementsByTagName('head')[0].appendChild(j);
  })(window,document,'script','muro');
  muro('init',{widgetId:'YOUR_WIDGET_ID'});
</script>

Replace YOUR_WIDGET_ID, save, and the bubble is live across the whole store within seconds. Because the script is async it does not slow the storefront, and it does not touch your theme's own JavaScript or Liquid, it is a single self-contained tag.

Checkout is Shopify's, not yours

Standard Shopify plans render checkout on Shopify's own domain and templates, which your theme.liquid does not control, so the bubble intentionally does not appear during checkout. That is usually what you want, no distractions at the moment of payment. On Shopify Plus you can extend checkout, but for almost every store, chat on the storefront pages up to the cart is the right surface.

Let the AI answer the store's FAQ

Most storefront questions are the same five: where is my order, what is your return policy, does it ship to my country, is this in stock, what size am I. Paste your policy and FAQ pages into muro and its AI answers those from your own words, day and night, so they never reach your phone. Anything genuinely order-specific, a refund, a lost parcel, an address change, it hands off to a human instead of guessing.

When you're away, it becomes email

You are running a store, not sitting in a dashboard. Conversations the AI hands off are emailed to you; you reply from your phone's mail app and the answer appears back in the shopper's chat window. Add saved replies for the questions you answer weekly and the store's support runs on minutes a day. For the technical, there is a full REST API and webhooks to sync conversations into your own tools, see the API docs.

Ship it

Edit code on your live theme, paste the snippet into layout/theme.liquid before </head>, and point the AI at your policy pages. Chat is live on every storefront page, it costs the same whether one person or five answer it, and your shoppers get instant answers to the questions that otherwise turn into abandoned carts. Try the bubble in the live demo, then go edit your theme.

✦ Frequently asked

Questions people ask.

01How much does this cost for a Shopify store, and is it priced per agent?+

Flat, never per agent. Solo is $19/mo for up to 2 projects, Fleet is $59/mo for unlimited projects, and both include unlimited agents, so a seasonal hire costs you nothing extra. Managed AI credits are included (1,000/mo on Solo, 3,000 on Fleet, one credit per AI action), or use your own Anthropic key for unlimited AI at zero markup. The 14 day trial needs a card, no charge today, cancel in one click.

02Can the AI tell a shopper where their order is?+

No, and that is deliberate. muro's AI answers from your own published pages, your shipping and returns policies, FAQ and product content, and it has no connection to Shopify's order data, so it cannot invent a tracking number or a delivery date. Order specific questions get handed to you by email with the full thread. If you want order data in the loop, the REST API and webhooks are on every plan.

03Will the chat widget slow down my storefront or hurt my Core Web Vitals?+

It should not. The script is about 9 KB gzipped vanilla JS, loads async off the critical path, and renders inside a Shadow DOM, so none of its CSS can collide with your theme's styles. It is not bundled into your theme assets, so your existing JS does not grow. It is still a third party request, so keep it out of any app that combines or defers scripts.

04Can I hide the chat bubble on specific pages, like the cart or a landing page?+

Yes, wrap the snippet in Liquid. `theme.liquid` can read the `template` object, so `{% unless template contains 'cart' %}` around the script keeps the bubble off the cart, and `{% if template == 'index' or template contains 'product' %}` limits it to the home page and products. Checkout is Shopify's own template on standard plans, so it is already excluded without any condition.

05Does it work with Dawn, a paid theme, or a page builder app?+

Yes, all of them. The widget is a plain script tag with zero theme dependency, so Dawn, any Online Store 2.0 theme, a purchased theme or an older vintage one behave identically. Page builder apps render their sections inside the same `theme.liquid` layout, so the bubble is there too. Headless works as well: on Hydrogen or a custom storefront, paste the same snippet into your root layout.

06Where is shopper chat data stored, and is it GDPR ready?+

Data is hosted in the EU, with a signed DPA available and a public sub-processor list, so an EU store can hand both to its DPO without a support ticket. The widget keeps a local identifier in the shopper's browser so a conversation survives navigation between product pages, which is worth one line in your store's privacy policy alongside your other scripts.

✦ Try it

One support inbox for all your projects, one flat price.

muro is live chat, an AI that answers from your own docs, and a shared inbox for every site you run. See it both sides in the live demo, check the flat pricing, or see how muro compares. It's the same snippet on every platform, so you can browse every install guide.

Tm

✎ Written by

The muro team

muro.chat