Web chat
A chat button you paste into your website. Customers signed in on your site ask about their own data, and the assistant answers with your tools and their own access.
On this page
The web chat is a floating button that opens an assistant on your own website. It uses the tools you enabled for the Web channel, with the credential of the customer who is asking in your system. Everything is read only: the assistant looks data up and never changes anything.
You paste one <script> tag. You do not change your backend.
Turn it on
Open the Web chat step of your integration. Before turning it on you need:
- The integration live.
- The domain verified.
- At least one allowed origin.
- At least one tool enabled in the Web channel. See Channels.
Only owners and admins can change these settings.
| Setting | Notes |
|---|---|
| Allowed origins | The sites where the chat can be embedded. Up to 10. |
| Model | The Claude model that answers. |
| Notes for the assistant | Tone and glossary of your company, up to 1,000 characters. They never change the assistant's rules. |
| Web chat on | Turning it off stops the chat from serving your customers. |
Install
The Web chat step shows your snippet with a Copy button. Paste it in the pages of your site where you want the chat:
<script src="https://connect.grostify.com/widget/v1.js" data-tenant="acme" async></script>data-tenant is your slug. The script draws a round button at the bottom right. The chat opens in a panel when the customer clicks it. It does not read anything from your page and it does not store anything of its own.
Allowed origins
The chat only opens on the origins you list. Each one must:
- Start with
https://. - Have no path, no query string and no fragment, for example
https://app.acme.comand nothttps://app.acme.com/home. - Have a host under the registrable domain of your verified domain. If you verified
api.acme.com,https://acme.comandhttps://app.acme.comare valid.
Connect checks all of this when you save, and again on every request. You can list up to 10 origins.
Sign out: logout()
The script adds one function to your page, GrostifyConnect.logout(). It returns a promise. Call it in your own sign out flow and wait for it before you redirect:
try { await GrostifyConnect.logout()} catch { // The chat session may still be open: retry or warn the customer.}await signOutOfMyApp()window.location.href = "/login"That closes the chat session in that browser, so the next person on a shared computer does not find the previous customer's account. If you do not call it, the session stays open until it expires.
The promise rejects if the session could not be closed, either because the network failed or because the answer was not a 204. In that case the chat session may still be open. Retry the call or warn the customer before letting them leave, especially on a shared computer. If the chat is open, it reloads either way.
How the customer connects
The first time, the chat shows a short explanation and a Connect my Acme account button:
- A window opens with a Connect page that shows your verified domain.
- The customer signs in on your login page, or pastes their personal API key, as in user authentication.
- The window closes and the chat is ready. The chat always shows "Signed in as" with their user and a Disconnect button.
The session is stored in that browser and lasts 7 days without use and 30 days at most. After that the customer connects again. Each customer appears in Connected users with the Web channel.
Limits
| Limit | Value |
|---|---|
| Questions per customer | 50 per day |
| Length of a question | 1,000 characters |
| Length of an answer | 4,000 characters |
| Questions at once | One per conversation. The next one waits for the answer. |
The chat also has a monthly usage limit. When it is reached, the chat tells customers the assistant is not available right now, and it works again next month.
Conversations
A conversation closes after 30 minutes without messages. The text of the conversations is deleted after 30 days. Your company sees metrics, not text: the Web chat step shows the number of questions this month and the active sessions with the user of your system, when it started and its last use. Owners and admins can Revoke a session, and that customer has to connect again.
The assistant uses Claude, by Anthropic. The customer's questions and the results of the tools are sent to Anthropic to answer them. Credentials are never sent.
Security
- The session lives in a partitioned,
HttpOnlyandSecurecookie, scoped to your site. The JavaScript of your website never sees it, and Connect stores only its hash. - The chat runs in an iframe served by Connect. Only the origins you list can embed it.
- Your page never sends text or context to the assistant. The only message between the page and the chat is "close".
- Links in the answers are only kept when they point to your verified domain.
- Every call to your API carries the customer's own credential, so the assistant sees only what that customer can already see. See Security and privacy.
Common problems
| Problem | What to do |
|---|---|
| The browser blocked the sign in window | Allow pop-ups for your site and click Open the window again in the chat. |
| The chat opens empty or does not open | The origin is not in the list, or the channel is not ready. Check the origin, that the integration is live, that the chat is on, that a tool is enabled in the Web channel and that Claude is configured on the server. |
| "Your session ended" | The session expired, you revoked it or the customer signed out. They connect their account again. |
| "You reached today's question limit" | The customer already asked 50 questions today. They come back tomorrow. |
| "The assistant isn't available right now" | The chat reached its monthly usage limit. It resets next month. Write to connect@grostify.com if you need more. |
| The customer is still connected after signing out of your site | Call GrostifyConnect.logout() and wait for it before redirecting. |
