Skip to main content
The widget is a single script tag. It loads a sandboxed frame from the Writine dashboard, so it cannot read your page and your page cannot read it.

Get your snippet

Open Settings, then Websites, and add your site. Writine generates a snippet that already carries your site identifier:
The snippet in Settings, Websites has your real site identifier filled in. Copy it from there rather than editing the example above.

Paste it on your site

Paste it once, just before the closing </body> tag, on every page where you want the widget to appear.

Allow your domain

The widget only answers pages on domains you have listed. Add every origin the snippet runs on under Allowed origins, including the scheme:
https://example.com and https://www.example.com are different origins. If your site serves both, list both. A page on an unlisted origin loads the script but gets no conversation, which is the most common reason a freshly installed widget appears to do nothing.

Confirm it works

Load a page with the snippet. You should see the launcher in the corner you chose. Open it, send a message, and it appears in your inbox straight away.
Visitors never need an account. A conversation is bound to a credential held in the visitor’s browser, so a returning visitor keeps their history on that browser but a different browser or device starts fresh.

Edge cases

The script attaches once on load and survives client side navigation, so frameworks that swap the page without a reload need no extra work. Inject the tag once in the shell rather than per route, because a second tag on the same page is ignored.
If your site sets a Content Security Policy, the widget needs the dashboard origin in three directives:
A missing frame-src is the usual cause of an invisible widget on a site with a strict policy. Your browser console will name the directive that blocked it.

Next steps

Customize the widget

Match the launcher and panel to your brand.

Invite your team

Add the members who will answer conversations.