Privacy Policy

Last updated: October 9, 2026 · Draft

1. Who this covers

Two kinds of people interact with ChitChat: bot owners (you, with an account) and end-users (visitors who chat with a bot on an owner's website, share page, or API integration). This policy covers both.

2. What we store about bot owners

  • Account data: name, email, and an argon2 hash of your password (never the password itself).
  • Provider API keys: encrypted at rest with AES-256-GCM. They are decrypted only in memory to call your chosen LLM provider, are never written to logs, and are never sent to your browser after entry.
  • Documents you add: uploaded files (PDF, Word, PowerPoint, Excel/CSV, images, text, HTML) and page images in object storage; extracted text, sections, and embedding vectors in our database. Confluence access tokens are stored encrypted like provider keys.
  • Web pages and websites you link: we fetch the pages from your servers on your instruction and store the same derived data as for a document (extracted text, sections, embedding vectors, the page URL and title). We store the fetched HTML only as a fingerprint used to tell whether a page changed. Only pages reachable without signing in are fetched, and a daily re-check keeps them current until you turn it off. On the free trial there is no daily re-check: pages are fetched only when you add the site or press Sync now, and at most 25 pages of one website are indexed.
  • Free-trial bots: the content you add (uploaded documents and the pages fetched from your website) and the questions you ask in the playground are processed by the AI provider behind ChitChat's built-in engine, under ChitChat's account rather than a key of yours. When you add your own key, the bot's content is re-processed with your provider instead.
  • Connected-system (MCP server) credentials: access tokens you supply are stored encrypted like provider keys, used only to call that system on your bots' behalf, and never shown to the AI model, your browser, or your visitors. Where a system signs you in instead of issuing a token (OAuth), the sign-in happens on that system's own site — we never see your password — and we store only the resulting access and refresh tokens (encrypted, scoped to that one system, renewed automatically) together with the client identifier that system issued us. Disconnecting the server, or pointing it at a different address, deletes them.
  • A session cookie (httpOnly, signed) to keep you logged in. No third-party trackers, no advertising cookies.

3. What we store about end-users

  • Conversation transcripts (messages and bot answers with their sources — including, since the verifiable-answers release, the quoted source passages a citation expands to, the answer-verification verdict, and a compact retrieval log per answer, ids and relevance scores only, visible to the bot owner and not to visitors).
  • A rate-limiting fingerprint: a salted hash derived from IP address and browser user-agent. The raw IP address is not stored.
  • A conversation id in the browser's localStorage so a returning visitor can continue their conversation, together with a conversation secret minted with it. Only a hash of that secret is kept here, and reading or continuing a conversation requires it — so the id alone, if it is ever copied out of a visitor's browser, opens nothing. No cross-site tracking.
  • Where the owner's website identifies signed-in visitors: a one-way, keyed hash of the identifier that website uses for the person (their user id), stored on the conversation and on the log of any lookup made for them. The hash is different for every bot, so the same person is not linkable across an owner's bots, and it cannot be reversed to the original identifier. The sign-in token their website issues is never stored and never written to logs, and neither is their name or email address — those are used only to phrase the answer within the conversation and are discarded with it.
  • Where the visitor signs in from the chat itself: the access token their own login issues, encrypted at rest, together with their identifier and display name — also encrypted — for as long as that one conversation lasts. This is the only place ChitChat holds a credential belonging to an end-user, and it is scoped to one conversation and to the single connected system the token was issued for. It is destroyed when they sign out, when the conversation is deleted, and in any case within twelve hours. Their password is never seen by ChitChat at any point: the sign-in happens on the owner's own login page.

End-user questions are sent to the bot owner's chosen LLM provider to generate answers — see that provider's privacy terms (owners: this is your provider, under your agreement). Where the owner has connected an external system, values from the conversation that a lookup or action needs (for example an order number the visitor typed) are sent to that system; each call is logged for the owner with secret-like values masked, and for data-changing actions the stored record includes what was proposed, whether it was confirmed or declined, and the outcome. One deliberate exception to the hashing above: when a signed-in visitor confirms a data-changing action, that record stores their identifier and display name in readable form, so the owner's audit trail can say who authorised it. Everything else about that visitor stays hashed. Where the owner has switched it on for a connected system, that system also receives a short-lived signed statement naming the visitor and stating that ChitChat is acting on their behalf, so it can scope its answer to that person; the token their website issued is never forwarded to it. Where instead the visitor signed in from the chat, the reverse holds: their own access token is what reaches that system — it was issued by that system's own login, for that system — and no statement about them is added.

4. How long we keep it, and deletion

  • Conversations: kept until the bot owner deletes them. Owners can delete a single conversation or all conversation data for a bot from the dashboard at any time.
  • Documents and derived data: deleted when the owner deletes the data source, the bot, or the account.
  • Account deletion removes everything: bots, documents, keys, conversations.

End-users: to have a conversation removed, contact the owner of the website you chatted on — they hold the deletion controls for their bots.

5. What we never do

  • We do not sell or share your data or your end-users' data with third parties.
  • We do not train models on your documents or conversations.
  • We do not add analytics or tracking scripts to the pages where you embed the widget.

6. Sub-processors

The service runs on self-hosted infrastructure (PostgreSQL, Redis, S3-compatible object storage). The only third parties that see your data are (a) the LLM provider(s) you configure, for the calls your bots make — or, for free-trial bots, the AI provider behind ChitChat's built-in engine, (b) the external systems you connect (MCP servers), which receive the tool calls your bots make on your behalf, and (c) our email delivery provider (Resend), which processes owner email addresses to deliver verification and password-reset messages.

7. Contact

Questions or deletion requests: contact the operator of this ChitChat instance via the email address on the account you registered with, or the site owner for end-user requests.