Add chat to your website and customize it
Website chat adds a chat button and conversation window to your site. Visitors write there, and your team sees their messages in the Inbox. Enabling the website connection does not, by itself, turn on the bot’s answers. See going live for that separate step.
How it works
Section titled “How it works”- A Greeting appears inside the chat as your opening text. When a visitor first sends a message, that opening is also included in the conversation seen by your team and the bot. Merely viewing the page does not create an Inbox conversation.
- An Engagement bubble is a short invitation beside the closed chat button. It is not sent as a message and does not become part of the conversation.
- A bot answer responds to the actual conversation. It depends on bot activation, knowledge and your guidance, not on the bubble text.
Changing the greeting does not rewrite an opening message already recorded in the Inbox.
During setup, this page explains whether the website line is set to answer customers. If website chat is unavailable to visitors, resolve the displayed website-settings blocker; the bot switches alone cannot make the chat available. A greeting or enabled connection is not proof of a bot reply. For waiting test messages, check the line explanation and both bot switches.
Where to find it
Section titled “Where to find it”Open Settings → Chat services → Website. Guidance, when offered, is under Settings → Bot → Handbook → Where [bot name] communicates → With customers. The separate public-access switch is under Settings → Workspace → Public access; see workspace settings.
Set it up
Section titled “Set it up”Required for the standard website chat: enable the connection, allow every website address where you want the chat, and publish the install snippet on the intended pages. Only include sites where you actually want chat.
Optional: customize appearance, languages and greetings, check delivery with a test message, or explore the separate developer options. Automatic bot replies have their own controls; installing chat does not turn them on.
Before you begin
Section titled “Before you begin”- Your subscription plan must include website chat. If the page says Website chat is available on a higher plan., change to a suitable plan before setup.
- You need permission to manage chat connections. If you cannot open or edit the page, ask your workspace owner to check your permissions.
- You need access to add code to your website, or help from the person who maintains it. You do not need to create a separate messaging account for this connection.
Required: allow the websites that should show the chat
Section titled “Required: allow the websites that should show the chat”- Open the website connection page.
- Under Allowed domains, enter your site’s address. The field supplies
https://; you can enterwww.example.com. - Choose Add.
- Repeat for every address that should show the chat.
- Choose Enable. The status becomes Enabled.
A domain is the website address, not the address of a particular page. Use these rules:
| Entry | Where it allows the chat |
|---|---|
https://example.com |
The main address only, not www.example.com. |
https://www.example.com |
That exact subdomain only. |
https://*.example.com |
Subdomains such as www.example.com and shop.example.com, but not the main address example.com. Add that separately if needed. |
Do not include a page path such as /contact, a search query or a # fragment. If your site uses an unusual port number, include it in the address. Add your real published address, including www if used. A website builder’s editing or preview address may be different.
Every site must be covered by Allowed domains. The chat only loads on addresses the list covers, either by an exact entry or by a deliberate wildcard entry from the table above. If you use more than one website, such as a separate shop or booking site, add an entry for each, or a wildcard that covers its subdomains. A wildcard such as https://*.example.com does not cover the bare domain example.com, so add that separately, along with www if you use it and have not covered it. A site the list does not cover will not show the chat, even if the code is installed on it. The same Install snippet is used on every site; what differs is the allowed address.
At least one valid domain is required. To remove an address later, use its Remove control (the × beside it). Add a replacement before removing your last address. After enabling, adding or removing domains saves automatically.
Required for the standard snippet: install it on your site
Section titled “Required for the standard snippet: install it on your site”- Find Install snippet on the same page.
- Choose Copy. Check for Copied; if copying fails, select and copy the displayed code yourself.
- Give the complete code to your website maintainer, or paste it into the site’s shared page layout just before
</body>— the closing marker near the end of the page. - Publish your website changes.
Install it on every page where you want the chat to appear. Adding an allowed domain does not install the code, and copying the code does not publish it to your site.
Send the steps to whoever runs your website
Section titled “Send the steps to whoever runs your website”During setup, Send install steps opens your own mail app with the code, this guide and the verification steps already filled in. Choose the recipient there and send it yourself. omotto does not send an email for you. Copy install steps copies exactly the same text to share another way. These controls are available to people who can manage the website connection.
After the code loads on an allowed website, Seen on your site appears on the connection page and beside its open setup step. This confirms the code loaded; it does not switch the bot on or prove that every page has the code.
Optional: check the chat on the published website
Section titled “Optional: check the chat on the published website”- Open a published page at one of your allowed addresses. Repeat on each site you added.
- Wait for the chat button to appear. Once the chat loads on an allowed site, omotto records that your site has been seen using it.
- Back in settings, open the website connection page again. It shows Seen on your site once the chat has loaded on one of your allowed addresses. The same fact is marked as installed in the setup information the Coach reads for website chat, so you can ask the Coach whether the code is in place.
- Open the chat button.
- Send a test message.
- Check that it appears in the Inbox.
- If you expect an automatic answer, check Bot status, Bot on this line, and whether anyone has taken over the conversation.
Seen on your site is recorded in the background after the chat loads, so it is not instant and can occasionally be missed. It can take a short while to appear after the first successful load, and a page that loaded but was not on an allowed address does not count. If it does not appear, reload the settings page after a minute. A missing sign does not by itself prove the code is absent, so also check that the chat button shows on the published page and that a test message reaches the Inbox. Before the chat has ever loaded on an allowed site, the page has nothing to show here.
Seen on your site is a record of the first time the chat was seen loading. It is history, not a live monitor, and it does not prove the code is still on your pages today. Keep checking the published site yourself after any site change.
Only the standard Install snippet sends the check that produces this sign, and only in browsers that support it. If your developer embeds the chat directly or uses headless mode, or a visitor’s browser is very old, the sign and the automatic installed check can stay missing even though the chat works. In that case, test delivery on the published site: send a test message and confirm it reaches the Inbox. Tell the Coach which kind of embed you use. If the Coach’s setup list keeps waiting for the install check, you can choose to skip or defer that step and give a reason, rather than wait indefinitely.
The Preview inside settings is an appearance preview, not a working test conversation. It does not test installation, allowed domains, receipt of messages or bot readiness. It may show sample text even when you have not saved a title or greeting.
For testing the bot’s knowledge and behavior before launch, use rehearsals as well. A rehearsal is not an installation check either.
Settings
Section titled “Settings”Appearance settings and defaults
Section titled “Appearance settings and defaults”These controls appear after the connection is enabled. Unless stated otherwise, the defaults below are for a new connection.
| Setting | What it does | Default |
|---|---|---|
| Accent color | Changes the chat’s highlight color. Choose a color; a supplied color value must use six-digit form such as #4f46e5. |
Purple, #4f46e5. |
| Launcher position | Places the chat button at End (bottom-inline-end) or Start (bottom-inline-start). End means bottom right on a left-to-right site, bottom left on a right-to-left site; Start is the opposite. It follows the site’s direction, not the visitor’s chat language. | End (bottom-inline-end). |
| Panel title | Heading at the top of the chat window. Up to 60 characters. If neither a matching language version nor the main title is filled in, the real chat uses your workspace name. | Empty field; workspace name in the real chat. |
| Greeting | Your fixed opening text, up to 500 characters. This is not a newly generated answer. Leave it blank for no greeting, unless an applicable language version is set. | Empty; no greeting. |
| Theme | Auto follows the light/dark preference available to the visitor’s browser. Light and Dark fix that appearance. | Auto. |
| Language | Sets the chat’s buttons, labels and layout to Auto (visitor browser), Hebrew or English. A fixed choice overrides the browser preference. | Auto (visitor browser). |
| Live replies → Show replies as they are written | When this control is available, visitors see answer text appear during writing. Turn it off to wait for the completed message instead. | On when available. |
Language controls the chat window, not the bot’s general reply-language policy. Configure that separately under bot personality and language. In Auto, the ordinary installation uses the browser’s preferred language when it is Hebrew or English; otherwise it falls back to your workspace’s interface language. A developer-supplied supported language choice can also select the interface language, unless you fixed it here.
Engagement bubble: every setting
Section titled “Engagement bubble: every setting”| Setting | What it does | Default |
|---|---|---|
| Engagement bubble → Show an engagement bubble next to the launcher | Turns the invitation on or off. It needs nonblank text in the main field or the visitor’s language version. | Off. |
| Bubble text | The invitation, up to 120 characters. The suggested text in the empty field is an example, not saved text. | Empty. |
| Delay (seconds) | How long to wait before the bubble can first appear. Enter a whole number from 0 to 120. The visitor must also scroll, click or type, and the page must be visible. Zero removes the time wait, not the activity requirement. | 8 seconds. |
| Show again | Controls when the same invitation may return after the visitor closes it or opens the chat. Options explained below. | Every visit. |
The delay starts when the chat finishes loading its settings, so it is not an exact countdown from the first moment the page appears. The bubble appears beside the closed button, not over an open conversation. Its text, delay and reshow controls are unavailable while the bubble is off.
Show again choices:
- Every visit: eligible again when the browser starts a fresh visit for the tab. A visit normally ends when that tab is closed. Reloading the page or returning later in the same still-open tab does not start a new visit. Restoring a tab can preserve the same visit too. There is no inactivity timer that resets it.
- After 1 day: wait at least one day after dismissal or opening the chat.
- After 7 days: wait at least seven days.
- After 30 days: wait at least thirty days.
- Never: do not show the same invitation again after dismissal or opening the chat, while the browser still remembers that choice.
Language variants: title, bubble and greeting
Section titled “Language variants: title, bubble and greeting”Expand Language variants to write your own translations. No translations are filled in by default, and omotto does not automatically translate these fields for you.
- Panel title · Hebrew / English: up to 60 characters per version.
- Bubble text · Hebrew / English: up to 120 characters per version.
- Greeting: use Add a language to add versions, up to 500 characters each. Options are Hebrew, English, Arabic, Russian, Ukrainian, French, Spanish, German, Portuguese, Italian, Dutch, Swedish, Norwegian, Danish, Polish, Turkish, Greek, Amharic and Bengali. Remove or empty a version to stop using it.
For the title and bubble, the matching Hebrew or English version takes priority over the main field. A blank version uses the main field. This also works when Language is fixed to Hebrew or English: that language’s version still wins.
The greeting has a different fallback. If a supported visitor language is available from the browser, or you fixed Language, omotto tries that language’s greeting, then the English greeting, then the main Greeting. If no supported visitor language is available, it tries the chat window’s Hebrew or English greeting and then the main field. If all applicable fields are blank, there is no greeting. For example, a French-browser visitor may see English chat buttons with your French greeting.
Preview language and saving changes
Section titled “Preview language and saving changes”Preview language appears only when Language is Auto. Choose Hebrew, English or Your language. Your language means your omotto interface language, not a simulation of every visitor’s browser. Changing it affects only your preview. Fixing Language makes the preview use that fixed language.
The preview can compare the Hebrew and English appearance. It does not reproduce every multilingual greeting fallback. Check the real website when testing other greeting languages or empty-field behavior.
Appearance changes save automatically; there is no separate Save button in the appearance form. Watch the top bar for Saving…, Saved or Couldn’t save. Its save icon is Save now if you want to save immediately. Offline means you should check your connection. If saving fails, correct any field error and use Try again. Seeing a changed preview alone does not mean the change saved. After saving, reload the actual website to check the result.
Public access and advanced controls
Section titled “Public access and advanced controls”Advanced shows whether the public widget page is enabled. The separate Website chat switch under Public access in workspace settings controls this access independently of the connection status. Turning it off prevents the chat from working, even if the connection still says Enabled. Turn this switch back on to restore public access. Normal Enable and Disable actions also turn public access on and off. This status is not proof that the code is installed or that a visitor can send.
Show advanced options also reveals Headless mode (developers). It is off by default and is experimental and unsupported. Ordinary installation does not require it. Turning it on grants your exact allowed HTTPS websites access to read visitors’ conversations and send as the visitor; a wildcard entry does not grant this access. Leave it off unless your developer intentionally needs that trust. The switch stays visible while on. An inactive notice means it lacks a suitable exact HTTPS address. Local development has a localhost exception; see the Developer guide for the technical details.
Guidance for website chat
Section titled “Guidance for website chat”For website-only instructions, follow the link to the guidance area listed above, when shown. Choose Show advanced options to see Every website chat. This is separate from appearance text. See the Handbook for behavior settings.
If that link is absent and you see Bot guidance on this channel instead, its Guidance field holds additional instructions for website chat only, such as reply length, formatting and links. It starts empty, accepts up to 10,000 characters and saves automatically. When empty, you may need Show advanced options to reveal it. Use the general bot settings for behavior across all channels.
What to configure next
Section titled “What to configure next”Choose only the options that fit what you want this feature to do.
- Check the look: Accent color, Launcher position, Theme and Language under Appearance settings above, then reload your real site to see them.
- Write a Greeting and, if you like, an engagement bubble, with language variants if your visitors use more than one language.
- Teach the bot what it needs: knowledge, the Handbook and personality and language.
- Practice with rehearsals, then turn on answers with going live.
- Decide who handles what the bot cannot: your Support Team and notifications.
What happens when…
Section titled “What happens when…”A visitor dismisses or ignores the bubble
Section titled “A visitor dismisses or ignores the bubble”Within the same browsing visit, closing the bubble or opening the chat prevents another invitation. An ignored bubble may accompany the visitor onto another page in the same tab, without waiting through the delay again. Changing the sentence removes the old sentence’s waiting period, but does not undo a dismissal in that same visit. These choices depend on the visitor’s browser remembering them.
A visitor returns or needs follow-up
Section titled “A visitor returns or needs follow-up”The chat remembers an anonymous visitor in that browser. Returning in the same browser can reopen the conversation, while clearing site data, changing browser or device, or ending a private-browsing session can break that continuity. Do not promise a visitor that logging in on another device will automatically restore this website chat.
Replies arriving while the chat window is closed contribute to an unread badge on the chat button. Opening the window clears the unread count. Later replies can be shown when the visitor returns, but website chat does not send a phone, email or push notification just because the visitor left the page.
For work that needs your team or an Expert, the visitor may be asked where the answer should return. Available choices depend on that request and your connections:
- Website chat: return here; no outside notification.
- WhatsApp: requires an available business connection and the required WhatsApp template, and the visitor’s choice. A number the visitor types that was already verified is used without a new code; otherwise they verify it with a code. A partly hidden number the bot offers is used only if the visitor says yes.
- Email: a verified address for manual team follow-up, not an automatic bot email. This route is not available for Expert follow-up.
These are choices for that request, not permanent preferences or a move of the entire conversation. The same applies to a typed email address: one already verified needs no new code. A typed phone number or email address alone is not verification. See how verification differs from User identification, identity linking and messaging consent.
Shopify sign-in changes or its check cannot finish
Section titled “Shopify sign-in changes or its check cannot finish”If you enable store account sign-in for this line, loading a new page holds earlier messages until the store-session check finishes. Returning to the same open page keeps the conversation on screen while sign-in is checked in the background; new messages wait locally, then send once the check finishes and the chat has a safe identity. New live updates wait too. Merely focusing the chat does not start another check. It also renews periodically and before sending when renewal is due. This is not immediate detection of every sign-out in another tab.
Checks in two tabs of the same browser cannot undo each other out of order: a delayed reply from an earlier check cannot restore an account after a newer check has replaced it. When two checks confirm the same account, they can share the completed current result without starting a new conversation just because they overlapped.
A routine renewal marked as a renewal keeps the current store verification active while it is still valid. A loading or return check is different: earlier store verification is suspended until the store confirms the current account again. An unmarked check, including one from older chat code, follows that same cautious return behavior. A renewal cannot preserve verification that has already expired.
When it detects sign-out or a different store account, it starts fresh and does not show the earlier account’s conversation. New text and files selected during the check can continue under the safely accepted or fresh identity while the page remains open. Old uploaded file references and an earlier message with an uncertain send result are not automatically replayed as the new customer.
The optional sign-in check has a four-second budget. That is not a promise that network recovery or delivery finishes in four seconds. If a chat was tied to store sign-in and the check is unavailable, earlier history stays hidden and the chat tries to obtain a fresh identity. New input stays local during a connection failure; keep the page open, restore the connection and return to the chat or try sending again. Do not assume it reached the Inbox until sending succeeds. An independent code-verified or anonymous chat that was never tied to store sign-in can keep working when only the optional store check fails.
A cached older install script might not answer the new check. Reload the published page to obtain the current script. Renamed Shopify app proxy paths are unsupported; see store sign-in troubleshooting. A missing check does not justify showing an earlier account’s history. Direct embeds and headless mode do not supply the standard store sign-in exchange.
You stop the bot, pause messages or disable the chat
Section titled “You stop the bot, pause messages or disable the chat”| Control | What happens |
|---|---|
| Bot on this line → The bot answers on this line, off | Visitor messages still arrive in the Inbox; your team can reply. The bot does not take turns on this line. Reminders and confirmations are not stopped by this switch. The line switch starts on, but the workspace still needs to go live. |
| Pause new messages | Stops accepting new visitor messages; they are not queued for later and do not reach the Inbox. The chat can still display its existing transcript and a paused notice. Choose Resume to accept new messages again. Pausing does not switch off the bot itself. |
| Disable | Turns off the website connection and its public chat page. The installed code can no longer provide a working chat. Saved appearance settings and allowed domains are kept; choose Enable to enable the connection again. |
If you just want staff to answer, use the line’s bot switch, not Pause new messages. The separate Bot status controls whether the bot is live across the workspace.
Troubleshooting
Section titled “Troubleshooting”- Chat works on one site but not another: the second site’s exact address is probably missing from Allowed domains, or it uses
wwwwhere you added the bare address (or the reverse). Add that address. - No chat button: check that the code was published on this page, the actual address is allowed, the connection is enabled and your plan includes website chat. Check the Advanced public-page status. If public access is off, turn on Website chat under Public access in workspace settings, even if the connection already says Enabled. A working settings preview does not rule out these problems.
- Chat works but Seen on your site never appears: confirm you are testing on an address from the list, with the connection Enabled, then wait and reload settings. It is a first-load record only, and some embeds never send it; see the install check above.
- Button works but no automatic answer: check Bot status, the line’s bot switch, human takeover and manual timeout or Pause on suspected misuse. Check the Inbox to distinguish a missing message from a received message awaiting a reply.
- New messages do not reach the Inbox: look for Pause new messages being active; choose Resume. Do not expect messages rejected during the pause to arrive afterward.
- No engagement bubble: check the switch, nonblank text, delay, visitor activity and Show again. A previously dismissed bubble may be correctly suppressed. Reload to check saved settings, with the chat closed, but remember that reloading does not reset the visit.
- Unexpected language or opening text: check Language, Language variants, and the main fields. Compare on the actual site, not only in Preview.
If these checks do not resolve it, contact support with the public page address, what you expected, and what happened. Do not send private visitor conversations or access credentials.
Related
Section titled “Related”- Workspace settings and public access
- Turn on the bot’s answers
- Manage your chat connections
- Developer guide to headless website chat
Sources: Mozilla: browser storage and private browsing, Mozilla: browser-tab sessions, Mozilla: light and dark preferences.