# Install the chat widget on other platforms

> Where to paste the intoCHAT script on Wix, Webflow, Squarespace, Framer, Bubble, Joomla, Drupal, Ghost, Magento, VTEX and more, with step-by-step guides.

intoCHAT works on any platform that lets you add a script to your pages. The rule is the same everywhere: paste the script tag from the **Share** tab into a field that outputs code at the end of the page body, on every page.

## The general rule

- Look for a field called footer code, body end or similar. A header or head field works too, because the widget waits for the page to load, but the end of the body is the recommended place.
- Apply the code to all pages.
- Publish the site. Most builders add custom code only to the live site, not to the editor preview.
- If the platform changes your script tags and drops the `data-chatbot-id` attribute, use Google Tag Manager.

The snippet and its single attribute are explained in [Install with a script tag](/en/docs/script-tag).

## Website builders and CMSs

| Platform | Where the code goes | Guide |
|---|---|---|
| Wix | Settings → Custom Code, all pages, placed in **Body – end** | [Wix](/en/integrations/wix) |
| Webflow | Site settings → Custom code → **Footer code**, then publish | [Webflow](/en/integrations/webflow) |
| Squarespace | Custom Code → Code Injection → **Footer** | [Squarespace](/en/integrations/squarespace) |
| Framer | Project Settings → Custom Code → Add Script, end of body, run once | [Framer](/en/integrations/framer) |
| Bubble | Settings → SEO / metatags → the body field | [Bubble](/en/integrations/bubble) |
| Joomla | A Custom module in a position shown on every page, created with an editor that keeps scripts | [Joomla](/en/integrations/joomla) |
| Drupal | A library in your theme that loads the script in the footer | [Drupal](/en/integrations/drupal) |
| Ghost | Settings → Advanced → Code injection → **Site footer** | [Ghost](/en/integrations/ghost) |
| WordPress | The official plugin | [WordPress docs](/en/docs/wordpress) |

## Online stores

| Platform | Where the code goes | Guide |
|---|---|---|
| Shopify | `theme.liquid`, just above `</body>` | [Shopify docs](/en/docs/shopify) |
| WooCommerce | The official WordPress plugin | [WooCommerce](/en/integrations/woocommerce) |
| Magento | Content → Design → Configuration → Footer → **Miscellaneous HTML** | [Magento](/en/integrations/magento) |
| VTEX | A Custom HTML tag in Google Tag Manager, or your storefront code | [VTEX](/en/integrations/vtex) |

On all of these, **Connect your website** on the **Actions** tab can also give the agent live product search from your store's public data. See [Connect your store](/en/docs/connect-your-store).

## Frameworks

| Platform | Where the code goes | Guide |
|---|---|---|
| Next.js | `next/script` in the root layout | [Next.js](/en/integrations/nextjs) |
| React | `index.html`, or a component with `useEffect` | [React](/en/integrations/react) |

Both are covered in [Next.js and React](/en/docs/nextjs-react).

## Google Tag Manager

Google Tag Manager removes data attributes such as `data-chatbot-id` from script tags in Custom HTML tags, so the normal snippet loads without knowing which agent to show. Use this snippet in a Custom HTML tag instead, with your agent ID, and fire it with a **DOM Ready** trigger:

```html
<script>
  (function () {
    if (document.getElementById('intochat-embed')) return;
    var s = document.createElement('script');
    s.id = 'intochat-embed';
    s.src = 'https://www.intochat.ai/api/embed.js';
    s.setAttribute('data-chatbot-id', 'YOUR_AGENT_ID');
    document.body.appendChild(s);
  })();
</script>
```

The check at the top keeps the script from loading again if the tag fires twice on the same page. The full steps are in the [Google Tag Manager guide](/en/integrations/google-tag-manager).

## Platform not listed

- If it lets you add HTML or a script at the end of the body, the script tag works.
- If it only allows code in the head, paste the script tag there. It works in the head too.
- If it allows no custom code at all, link to your agent's [direct chat page](/en/docs/iframe-and-link) from a button or menu item.
