The website channel puts a chat bubble in the corner of your own site. A visitor clicks it, types, and the message lands in Conversations next to your WhatsApp and your email — same inbox, same agents, same labels, same reports.
It is the fastest channel to connect, because nothing outside Lynomia Chat has to approve it. There is no business verification, no template review and no provider account: you create the channel, paste one script tag into your site, and it is live.
This article shows both ends of it — the visitor's and yours.
What you need
- An administrator account.
- The ability to add a
<script>tag to your website. On a CMS that is usually a "custom code", "header scripts" or "tracking code" box; on a site you build yourself it goes before</body>.
Steps
1. Create the channel
Go to Settings → Inboxes, choose to add an inbox, and pick Website. You are asked for five things, and all five are visible to your visitors except the first:
| Field | What it is |
|---|---|
| Website Name | the inbox's name in your dashboard, and the name at the top of the widget |
| Website Domain | the address of the site the widget will live on, e.g. paperlayer.test |
| Widget Color | the colour of the bubble and of the visitor's own messages |
| Welcome Heading | the first line a visitor reads when they open the widget |
| Welcome Tagline | the sentence under it |
Then Enable channel greeting, and if you switch it on, the greeting itself. A greeting is sent automatically when a visitor sends their first message — it is a message in the conversation, not a label on the widget, so it appears in the thread and your agents can see it was sent.
2. Choose who works in it
The next step adds agents. An agent who is not a member of this channel sees nothing from it — not in their list, not in search, not in their notifications. Administrators see every channel without being added.
3. Install the widget
The last step of setup shows you a script. It is also on the channel's own page afterwards: open Settings → Inboxes → your website channel, and switch the preview panel on the right from Preview to Script.

Copy it and paste it into your site's HTML, before the closing </body> tag, on every page you want the
chat to appear on. It looks like this, with your own installation address and your own website token:
<script>
(function(d,t) {
var BASE_URL="https://chat.lynomia.com";
var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=BASE_URL+"/packs/js/sdk.js";
g.async = true;
s.parentNode.insertBefore(g,s);
g.onload=function(){
window.chatwootSDK.run({
websiteToken: 'your-website-token',
baseUrl: BASE_URL
})
}
})(document,"script");
</script>
The script is async, so it never blocks your page from rendering. The website token in it is what
identifies the channel; it is not a secret in the sense a password is — it is in the source of every page
you put it on — but it is the only thing tying that widget to your account, so do not publish it anywhere
it does not need to be.
4. Check it from the visitor's side
Open your own site in a normal browser window. The bubble appears in the bottom corner, in the colour you chose.

Click it. The widget opens on your welcome heading, your tagline, whether anyone is available, and the reply time you set — not on an empty composer. The visitor starts the conversation deliberately, with Start Conversation.

5. Watch it arrive
Send yourself a message from that widget, then look at Conversations in the dashboard. It is there, on the website channel, from a contact Lynomia Chat has just created for this visitor.

A visitor who has not told you who they are gets an invented friendly name and no email address. That is not a gap to be fixed — it is what you know about them so far. A pre-chat form, the email collect box, and anything your own site passes to the widget all fill it in; each of those is below.
What the visitor sees, and what controls it
Everything on the widget comes from one place: Settings → Inboxes → your website channel, and the Widget features section on it. The panel on the right is a live preview — it changes as you type, before you save.
| On the widget | The setting |
|---|---|
| the name at the top | the inbox's name |
| the first line, and the sentence under it | Welcome Heading, Welcome Tagline |
| the colour of the bubble and the visitor's messages | Widget Color |
| "Typically replies in a few minutes" | Reply time |
| "We are Online" / "We are away at the moment" | whether any agent of this channel is online right now |
| the first reply the visitor receives | the channel greeting, in Channel Preferences |
| the paper-clip, the emoji button, "End conversation" | Features |
Reply time is a promise you are making, not a measurement. It says what you choose — a few minutes, a few hours, or a day — and nothing in the product checks it against reality. Pick the one you can keep on your worst day, not your best.
Online and away is about people, not opening hours. The widget says you are online when at least one agent who is a member of this channel is signed in and set to online. Nobody signed in, or everybody set to busy, and a visitor is told you are away. If you want the widget to follow your opening hours instead, that is business hours on the same channel.
Where the bubble sits, and what it says
Bubble (left or right, Standard or Expanded) and Launcher Title behave differently from everything else on that page, and it is worth knowing why before you go looking for them on a colleague's screen.
They are not account settings. They are written into the snippet you copy:
window.chatwootSettings = {"position":"left","type":"expanded_bubble","launcherTitle":"Chat with us"};
So the widget obeys whatever the snippet on your site says, and the controls in the dashboard only exist to produce that snippet. They are remembered in your own browser, which means a colleague opening the same page sees the defaults rather than your choices — and changing them in the dashboard changes nothing on your site until you copy the snippet again and replace the one on your page.
Asking who they are first
A pre-chat form puts a short form in front of the conversation: name, email, phone, or fields you add yourself. Open the Pre Chat Form tab on the channel, switch it on, and choose which fields appear and which are required.

It is a trade. Every field you ask for is a visitor who closes the widget instead of filling it in, and a contact with an email address is worth a great deal — you can reply when they have gone, and the conversation can continue over email. Asking for a name and an email is usually right; asking for a phone number, a company and an order number usually is not.
If you do not use a pre-chat form, switch on the email collect box instead (in Channel Preferences, the accordion below Widget features). It asks for an email address inside the conversation, after the visitor has already started talking to you, which costs far fewer of them.
Making the channel yours
Three settings on the Channel Preferences section decide how the conversation behaves rather than how it looks:
- Enable email collect box — asks an anonymous visitor for their email address inside the chat.
- Allow messages after conversation resolved — lets a visitor reply to a conversation an agent has closed, instead of starting a new one.
- Enable conversation continuity via email — when you know the visitor's email address, a reply sent after they have left the page reaches them by email, and their reply comes back into the same conversation. This is what stops a live chat from being useless the moment the visitor closes the tab.
Keeping it to your own site
The Configuration tab carries the three security settings, and a production installation should look at all three:

- Allowed Domains. The widget script works on any page it is pasted into, including somebody else's.
List the domains you own —
example.com, www.example.com, shop.example.com— and the widget refuses to run anywhere else. Left blank it runs everywhere, which is fine while you are testing and not fine afterwards. - Enable widget in mobile apps. Mobile web views do not send a domain, so they are refused by the rule above. Switch this on only if you embed the widget inside an iOS or Android app.
- Identity Validation. A secret key your own servers use to sign a visitor you have already logged in, so that nobody can open your widget and claim to be one of your customers. If you set every signed-in customer's identity from your own backend, switch on Require identity validation for all conversations as well, and unsigned visitors cannot start a conversation at all. Rotating the key revokes the old one immediately, with no overlap, so change your servers first.
Limits
- A new channel is on UTC time until you change it. Business hours and out-of-office replies will be out by your local offset until you do.
- The bubble position, type and launcher title live in the snippet, not in your account. Changing them in the dashboard changes the snippet it offers you; it does not change your site.
- Reply time is a claim. Nothing measures it.
- Allowed Domains is empty on a new channel, which allows every domain.
- A visitor who clears their browser storage is a new visitor: the widget identifies a returning one by what it stored in their browser, so the same person on a different device is a different contact until something — an email address, identity validation — tells you otherwise.
Who can do this
Administrators create channels and change their settings. Agents work in the conversations the channel produces and cannot see the Inboxes settings at all.
Related
- Connect your first channel
- Set up an inbox
- Work in the inbox
- Assign and prioritise
- Live chat campaigns
If it does not work
No bubble on your site. Open your page's source and confirm the script is in it — a CMS that strips
<script> tags from a content box is the usual cause, and the fix is the theme's header or footer code box
rather than a page. Then check Allowed Domains on the Configuration tab: a domain list that does not
include the site you are looking at stops the widget before it draws anything.
The bubble is in the wrong corner, or has no label. Those come from window.chatwootSettings in the
snippet on your site, not from the dashboard. Copy the snippet again from the Script tab and replace the one
on your page.
The widget says you are away while you are sitting in the dashboard. You are not a member of that channel — administrators see the inbox without being a member, and the widget counts members. Add yourself on the channel's Collaborators tab, and check your own availability is set to online.
Messages arrive but nobody is assigned. Auto-assignment only hands conversations to agents whose availability is online. With nobody online, conversations wait in the channel, unassigned and visible, until someone takes them.
A visitor says they replied and you see nothing. Check whether the conversation was resolved: unless Allow messages after conversation resolved is on, a visitor who returns to a closed conversation starts a new one instead, and it will be at the top of your list as a separate thread.