Adding live chat to a website takes about ten minutes with almost any modern chat tool. The work is the same everywhere: get an embed snippet, paste it into every page, and test. This guide walks through each platform, then covers the things that usually go wrong: HTTPS, caching, consent banners and single-page apps.
https://. Browsers block scripts loaded insecurely on secure pages.A typical snippet loads a small script asynchronously so it never slows down your page. The ZhiDesk version looks like this:
<script>
(function(d){
var j=d.createElement('script');
j.src='https://skzhidesk.com/static/widget.js';
j.async=1;
j.dataset.appid='YOUR_APPID';
j.dataset.host='https://skzhidesk.com';
d.head.appendChild(j);
})(document);
</script>
Replace YOUR_APPID with the ID from your dashboard. The rule for every platform: place it once, site-wide, just before the closing </body> tag.
</body>.Avoid editing theme files directly: theme updates overwrite them. Use a code-snippet plugin instead.
Full details, including block themes and caching pitfalls: WordPress live chat guide.
layout/theme.liquid.</body> and save.Checkout pages are controlled by Shopify and generally do not run theme scripts, so the widget appears on storefront pages. More: Shopify live chat with translation.
WooCommerce runs on WordPress, so use the same plugin method. The widget will appear on product, cart and checkout pages because they are ordinary WordPress pages.
Most builders have a "custom code" or "code injection" setting, often on paid plans only. Add the snippet to the site-wide footer area and publish. If your plan has no custom code option, you may need to upgrade the builder plan.
Load the script once in the root HTML template (for example index.html or the root layout). Don't inject it inside a component that re-renders, or you'll load the widget repeatedly.
| Symptom | Likely cause | Fix |
|---|---|---|
| No chat button | Page cache still serves the old HTML | Purge the cache/CDN and reload with a private window. |
| Button appears only on some pages | Snippet added to one template only | Move it to a site-wide footer. |
| Console shows "mixed content" | Snippet uses http:// | Use the https:// snippet only. |
| Widget blocked until consent | Cookie banner blocks third-party scripts | Categorize the chat script as functional in your consent tool. |
| Rejected on a new domain | Allowed-domain list doesn't include it | Add the domain in your chat settings. |
A well-built widget loads asynchronously after the page content, so it shouldn't affect how quickly your page appears. Check with PageSpeed Insights before and after installation if you want to be sure.
Yes. Several tools have free tiers, and ZhiDesk offers a 7-day free trial with no payment details required. Check what free plans exclude, such as translation, branding removal or history retention.
Once per site, in a site-wide footer, just before the closing body tag, so the widget loads on every page without delaying your content.
No. On WordPress, Shopify and most site builders you paste the snippet into a settings box or theme file. A developer is only helpful for single-page apps or strict content-security policies.