Add the Convor widget to your site with one script tag.
Convor works on any website and does not require a server-side installation.
Copy the embed code from Settings → Widget → Installation and security and place it before
the closing </body> tag.
The production embed contains the widget script and your public widget key. The hosted bundle resolves the Convor service endpoints itself, so keep the snippet copied from the dashboard instead of adding endpoint configuration to it.
<!doctype html>
<html lang="en">
<body>
<!-- Your page -->
<script
src="https://cdn.convor.io/widget.js"
data-key="convor_wpk_..."
async
></script>
</body>
</html>Add the script to your root layout:
import Script from "next/script";
export default function RootLayout({children}: {children: React.ReactNode}) {
return (
<html lang="en">
<body>
{children}
<Script
src="https://cdn.convor.io/widget.js"
data-key="convor_wpk_..."
strategy="afterInteractive"
/>
</body>
</html>
);
}Create the script once after the application mounts:
<script setup>
onMounted(() => {
if (document.querySelector('script[src="https://cdn.convor.io/widget.js"]')) {
return;
}
const script = document.createElement("script");
script.src = "https://cdn.convor.io/widget.js";
script.dataset.key = "convor_wpk_...";
script.async = true;
document.body.appendChild(script);
});
</script>In WordPress, add the dashboard-generated code before the closing </body> tag
using your theme or script-injection mechanism. In Shopify, open Online Store
→ Themes → Edit Code, edit theme.liquid, and place the snippet before
</body>.
Important
data-key is required. Replace convor_wpk_... with the public widget key from
your dashboard. The value is safe to expose in browser code and is not an
organization secret API key.
Open Sites, select the site, and add the current hostname to its allowed domains.
A correct embed will not render on a hostname that is not allowed. Add
localhost only while testing your own local application.
For strict Content Security Policy settings, exact required origins, and programmatic or multilingual SPA loading, see Customize the widget and the Widget JavaScript API.
Last updated: Aug 10, 2026
Was this page helpful?