Drop the script into theme.liquid before </body>. Works on any theme.
Shopify themes are Liquid templates, and the widget does not care about Liquid at all. Add the vanilla script just before the closing body tag in theme.liquid and it loads on every storefront page.
<script src="https://unpkg.com/@usero/sdk"></script>
<script>
Usero.initUseroFeedbackWidget({
clientId: "YOUR_CLIENT_ID",
metadata: { shop: "{{ shop.permanent_domain }}" }
});
</script>Replace YOUR_CLIENT_ID with the id from your Usero dashboard.
Built for Shopify
Online Store > Themes > Edit code > layout/theme.liquid. Add the script just before </body>. It applies to every page that uses that layout.
You can interpolate Liquid into the init, like shop domain or customer id, so each submission carries store context. The widget passes it straight to your inbox.
The widget mounts on body, outside the section DOM, so theme section reloads in the editor do not duplicate it.
This is a theme edit, not a Shopify app install. You do not go through the app review process or pay an app subscription.
Hotjar bundles feedback inside a heavier analytics tag. The vanilla SDK is feedback-only, about 12kb, with the PR pipeline behind it.
FAQ
layout/theme.liquid, via Online Store > Themes > Edit code. Put the two script tags right before the closing </body> tag so they load on every storefront page.
Yes. Interpolate Liquid into the metadata object, for example metadata: { shop: "{{ shop.permanent_domain }}", customer: "{{ customer.id }}" }.
Standard checkout pages are locked down on most plans and do not run theme custom code. The widget loads on storefront pages, not the locked checkout, unless you are on Plus with checkout extensibility.
No. This is a theme code edit. There is no app to install, review, or subscribe to.
Free tier. No credit card. Two-minute install. Cancel by deleting two lines of code.
Install guides