On this page
Getting startedUpdated 12 Aug 2026
Install per platform
Exact click-paths for Shopify, WooCommerce, Squarespace, Webflow, and other HTML sites.
The script tag is the same on every platform. Only the place you paste it changes. Copy it from Dashboard → Setup first.
Shopify#
Theme liquid (recommended)
- In Shopify admin, open Online Store → Themes.
- On the live theme, click … → Edit code.
- Open Layout → theme.liquid.
- Paste the Formo script immediately above the closing
</body>tag. - Click Save.
- Open the live storefront once so Formo can mark the site Connected.
Custom Liquid (Online Store 2.0)
- Online Store → Themes → Customize.
- Open a footer section group (or add a section).
- Add a Custom Liquid block.
- Paste the same script snippet.
- Save, then load the storefront once.
Do not put the script only on a draft theme if you expect Connected to flip from the live shop.
WooCommerce (WordPress)#
- In WordPress admin, open Appearance → Theme File Editor. Prefer a child theme.
- Open
footer.php(or the footer template your theme uses). - Paste the Formo script before
</body>. - Update the file.
- Load any storefront page once.
If your host blocks theme file edits, use a header/footer plugin and paste the script in the footer code box, then load a public page once.
Squarespace#
- Open Settings → Advanced → Code Injection.
- Paste the Formo script in the Footer box.
- Save.
- Open the live site once (not only the editor canvas).
Webflow#
- Open Project settings → Custom code.
- Paste the Formo script in Footer code.
- Publish the site (custom code does not run in the designer).
- Load a published page once.
Other / plain HTML#
- Paste the script on every page where chat should appear, just before
</body>. - Serve those pages from a host listed under the site’s allowed domains.
- Load the page once.
Heavy CSS / page builders#
The widget renders inside a closed shadow root. Host theme CSS cannot restyle it, and widget CSS cannot leak out. If a builder strips <script> tags, use the platform’s official custom-code or liquid slot instead of a rich-text field.