Skip to content
Convor
Back to Blog
Guides

Deploy the Convor chat widget in 5 minutes

C
May 15, 2026 - 3 min read
Deploy the Convor chat widget in 5 minutes

Installing a chat widget should not become a project. Still, the snippet runs on a real customer website, next to checkout, analytics, cookie banners, landing pages, and sometimes a fragile old theme nobody wants to touch. The goal is not only to paste the script quickly. The goal is to paste it once and not regret it later.

Start in the dashboard

Create or select the organization, open widget settings, and copy the embed key. That key is public. Anyone can see it in the page source, so it must not behave like an admin token. In Convor it identifies which widget configuration to load. Actual write access still goes through visitor tokens, organization checks, and server-side validation.

Before going live, set the basics: position, color, language, greeting, offline behavior, file rules, and any proactive triggers. The loader accepts local options and remote settings from the server. Values that become CSS, such as color and border radius, are validated before they touch the host page. A branding field should change the look of the button, not become a way to inject random CSS into somebody's website.

Direct script install

The direct install is the shortest path: load the script asynchronously near the end of the body and initialize the widget with the key from the dashboard. The loader adds the trigger button and creates an iframe for the chat UI. Keeping the conversation UI inside an iframe is a boring choice, but it prevents a lot of real problems: CSS collisions, inherited resets, layout bugs, and JavaScript conflicts with the host application.

Next.js and other single-page apps

In Next.js, load the script after the page becomes interactive. The important part is route tracking. A single-page app can change URLs without a full reload, and a widget living inside an iframe sees its own iframe URL, not the customer's page. Convor's host loader watches navigation and forwards the current host URL into the iframe. That is what makes page-based triggers work on a pricing page, documentation page, or checkout step.

Google Tag Manager and CMS sites

Google Tag Manager is fine when marketing owns the website or a code release would take too long. Create a Custom HTML tag, paste the loader, use an All Pages trigger, and publish the container. Then check production, not only preview mode. Make sure consent settings do not block the script unexpectedly, the content security policy allows it, and the widget is not loaded twice by two different installation paths.

The quick production check

  • Open and close the widget on desktop and mobile.
  • Send a visitor message and reply from the dashboard.
  • Move between pages in one tab and confirm triggers use the host URL.
  • Turn the network off for a moment and check that the conversation recovers.

Five minutes is enough for the install. Spend another few minutes on the checks. That small difference is what separates a pasted snippet from a deployment you can leave alone.

Get new posts in your inbox

No spam. Unsubscribe anytime.

Back to Blog