Platform Install Guides & Troubleshooting
Step-by-step instructions for adding the ZipTier embed widget to popular website platforms, plus a Next.js / React note and a troubleshooting section for common issues. For the widget's attributes and styling options, see Widget Customization.
Where the Script Goes
On every platform, the goal is the same: add the widget's <script> tag just before the closing </body> of the pages where the AI Assistant should appear. Most platforms expose a "footer" or "code injection" setting for exactly this.
<script
src="https://chat.ziptier.ai/wgt/script/latest.js"
data-chat-url="https://chat.ziptier.ai/bt/v1?id=1234567890"
></script>Platform-Specific Instructions
WordPress
- Go to Appearance > Theme Editor (or use a plugin like "Insert Headers and Footers").
- Locate your theme's
footer.phpfile. - Paste the script tag just before
</body>. - Save changes.
Shopify
- Go to Online Store > Themes.
- Click Actions > Edit Code.
- Open
theme.liquid. - Paste the script tag just before
</body>. - Save changes.
Webflow
- Go to Project Settings > Custom Code.
- Paste the script in the Footer Code section.
- Publish your site.
Squarespace
- Go to Settings > Advanced > Code Injection.
- Paste the script in the Footer section.
- Save changes.
Next.js / React
Plain <script> tags can execute before React finishes hydrating the page, causing a DOM mismatch and an error overlay. On Next.js sites, load the widget with next/script using strategy="afterInteractive":
import Script from 'next/script';
export default function Layout({ children }) {
return (
<>
{children}
<Script
src="https://chat.ziptier.ai/wgt/script/latest.js"
data-chat-url="https://chat.ziptier.ai/bt/v1?id=1234567890"
strategy="afterInteractive"
/>
</>
);
}Other React frameworks: mount the script in an effect that runs after first paint, or use the framework's equivalent of an "after interactive" load strategy.
Troubleshooting
Standalone Page Issues
- Link not working. Verify the campaign is within its active date range.
- Wrong content displaying. Confirm you're using the correct campaign link.
- Page not loading. Check your internet connection and try refreshing.
Website Embed Issues
- Widget not appearing.
- Check the
data-chat-urlmatches your campaign link. - Verify the campaign is within its active date range.
- Look for JavaScript errors in the browser console.
- Disable ad blockers that may interfere with third-party scripts.
- Check the
- Widget positioned incorrectly.
- Your site's CSS may override widget positioning.
- Try switching between
bottom-rightandbottom-left.
- Widget conflicts with other elements.
- Other floating elements (cookie banners, chat widgets) may overlap.
- Check
z-indexconflicts in your site's CSS.
- Page shows an error after adding the widget (React / Next.js sites).
- This can happen because a plain
<script>tag executes before React finishes hydrating the page, causing a DOM mismatch. - Fix it by loading the script with
next/scriptusingstrategy="afterInteractive"instead of a plain<script>tag. See the Next.js / React section above.
- This can happen because a plain
Custom Trigger Issues
- Trigger doesn't open the widget. Custom triggers require the main embed widget to be present on the page. Confirm the widget
<script>tag is installed alongside your triggers. - Auto-styled trigger doesn't render. The
ziptier-widget-triggerclass must be on the element itself, not on a parent wrapper. Also verifydata-button-styleis one of the supported values (pill,fab,avatar,textbox).
Need help? Visit our support portal for assistance with deployment or customization.