Privacy policy
Last updated 26 October 2026
This policy explains what personal data ChatFrom processes, why, which services help us do it, how long we keep it, and what rights you have. It covers three groups of people: visitors of chatfrom.io, customers who sign in and build chatbots, and people who talk to a chatbot that a customer has built with ChatFrom.
Who is responsible
ChatFrom is run by DeadPixel Studio UG (haftungsbeschränkt), Zeltinger Str. 77, 13465 Berlin, Germany, represented by its managing director Rouzbeh Abadi. You can reach us at rouzbeh@deadpixelstudio.io, or through the contact form. We are the controller under the GDPR for the data described in this policy, except for the chats described in the section on visitors of our customers' chatbots, where the customer is.
Visiting chatfrom.io
Server logs
The site runs on a server of Hostinger in Frankfurt, Germany. To deliver a page, the server receives your IP address, the page you asked for, the time, and what your browser sends about itself. We use this only to deliver the site and keep it secure, and do not combine it with other data. The legal basis is our legitimate interest in running a secure website (Art. 6 (1) (f) GDPR).
Analytics without cookies
We count page views with DataFast in its cookieless mode. It sets no cookies. While a tab is open, it keeps an anonymous visitor id and session id in that tab's storage, which the browser deletes when the tab closes. It tells us which pages are viewed, where visitors came from, and their country and type of device, so we can see how the site is used. When you buy a plan, those ids go with the checkout to Stripe, and DataFast reads from Stripe which visit led to the purchase and its amount, so we can see which sources bring paying customers. The legal basis is our legitimate interest in understanding how the site is used (Art. 6 (1) (f) GDPR). Analytics is never loaded in the chat that runs on our customers' websites, nor on the sign-in page and the dashboard, apart from the short page you return to after paying. We also count visits from AI crawlers, such as GPTBot, with DataFast, with the crawler's own address; a person's visit is never counted this way.
Error reports
When something breaks on the site or in the dashboard, an error report goes to Sentry, in its region in Germany. The report describes the error and the page it happened on. We configured it not to send personal data such as IP addresses or form contents, and it is not loaded in the chat on our customers' websites. The legal basis is our legitimate interest in a working service (Art. 6 (1) (f) GDPR).
The contact form
When you write to us through the contact form, we receive your email address, the subject and your message, and they reach us as an email sent through Resend. We use them to answer you and keep them as long as the conversation needs it. A message shorter than 100 characters is discarded without being stored or sent. The legal basis is our legitimate interest in answering your inquiry, or steps before a contract when you ask about using ChatFrom (Art. 6 (1) (b) and (f) GDPR).
Your account, as a customer
When you sign in and build chatbots, we process the following to provide the service you signed up for (Art. 6 (1) (b) GDPR):
- Your email address. You sign in with a link we send to it, through Supabase and Resend. Asking for a link sets two cookies in your browser for an hour: one with the page you were going to, and one noting that this browser asked, so the link's page can warn you if it did not. Signing in sets cookies that keep your session. All of them are necessary for signing in to work. If you name another address to receive hand-offs, we send it one email asking it to confirm, and send hand-offs there only once it has.
- What you put into ChatFrom. Your chatbots and their settings, the documents, websites and questions and answers they learn from, workflows, custom actions and MCP servers with any credentials you add, and your OpenRouter key if you add one. When you ask ChatFrom to write your chatbot's instructions or to choose how your documents are split, your description goes to an AI model through OpenRouter (currently from OpenAI, or Anthropic when that one is unavailable).
- The browser extension. If you use ChatFrom's browser extension, it keeps your API key and the chatbot you last chose in your browser until you press Disconnect or remove the extension. When you click it, it reads the address and title of the tab you are on to show them. When you press Add this page, it sends us that address with your key, and we read the page as we read any website you add. It reads no other tab and sends nothing else.
- Usage. How many tokens each answer used and what it cost, so we can show your usage and apply the limits of your plan.
- Payments. If you buy a paid plan, Stripe handles the payment. We never see your card details; we receive your customer number, your subscription status and your invoices.
We keep this while your account exists. Deleting a chatbot in the dashboard deletes its documents, conversations, notes about visitors and callback requests at once. You can delete your whole account yourself under Account in the dashboard, or write to us and we will do it within 30 days. If a paid subscription cannot be cancelled at that moment, the account is not deleted and you are told so, so that you are not charged for an account that no longer exists. Invoices are kept for ten years, as German tax law requires (§ 147 AO). An address that asked for a sign-in link but never signed in is deleted after a week.
Talking to a chatbot built with ChatFrom
When you chat with a chatbot on a company's website, that company is responsible for your data, and we process it on its behalf and under its instructions (Art. 28 GDPR). Its own privacy policy applies, and questions or requests about your data should go to that company first. We forward any that reach us.
What is processed for such a chat:
- Your messages and the chatbot's answers, stored so the company can read the conversation.
- A random visitor id, kept in your browser under
chatfrom_visitor:and the chatbot's id, one for each chatbot, so the conversation holds together. It contains nothing about you. Beside it, underchatfrom_chat:and the chatbot's id, the chat keeps a copy of the last messages of your conversation (up to 60), so a reload or the next page opens it where it was. By default both are kept only until you close the tab. If the company has turned on recognising returning visitors, which it may only do with your consent, they stay in your browser's local storage until you clear your site data, and the conversation is shown again for up to 30 days. On the company's website, the chat also keeps a note in your browser tab's session storage, underchatfrom:and the chatbot's id: how its chat button looks and whether you closed the chat. It contains nothing about you and is gone when you close the tab. - Your id in the chat app, if you write to the chatbot on WhatsApp, Telegram, Slack, Discord or by email, and your display name there: on WhatsApp that id is your phone number, by email your email address. It is stored with the conversation, with any notes the chatbot keeps, and with an account link you make, and goes to the company's own tools only as part of your question.
- Notes about you, if the company switched on memory: short facts from earlier chats that help the chatbot answer, which the company can read and delete.
- Contact details you choose to give, such as your name, email address or phone number, when you ask for a person to follow up or book a call.
- Ratings and comments you leave on an answer.
- What you give the company's connected tools, such as an order number and email address to look up an order in its Shopify store, or details the chatbot adds to its Google Sheet or saves as a contact in its HubSpot, passed to that service on the company's behalf.
- Files you attach, if the company turned that on: the text of a document (its first 30,000 characters), or for a picture what an AI model read in it and saw, is kept with the conversation, with the file's name, size and page count; the file's name and that text are sent to the AI model with your later messages in it. The picture itself is not kept. A file you attach but never send can no longer be sent after an hour; once it is a day old it is deleted the next time anyone attaches a file to a chatbot, or when the company deletes the chatbot, whichever comes first.
- The email address you give to prove a subscription is yours, if the company connected its Stripe account: it is looked up in the company's own Stripe account and, if an account uses it, sent a one-time code. The address and a scrambled form of the code are kept with the conversation, whether or not an account uses it, while they can be of use (about an hour). After that they are deleted the next time anyone asks a chatbot for a code, with the conversation, or when the company disconnects Stripe, whichever comes first.
- Your time zone, as your browser reports it, if the company connected a calendar: used to show free times in your own time, and passed with a booking to the company's calendar (Cal.com or Calendly), together with your name, email address and anything you tell it about the meeting.
To write an answer, your message and the relevant parts of the company's documents are sent, through OpenRouter, to the AI model the company chose, or, if that model cannot be used at that moment, to another model from the same provider where it offers one, so that you still get an answer. OpenRouter is told to use only that provider's own servers, never another company's that also runs the model. Smaller steps around an answer, such as turning a follow-up into a search, searching the company's documents, keeping notes about you when the company switched on memory, and reading a picture you send, use ChatFrom's own models, currently from OpenAI. We do not use these chats for anything else, and no analytics runs in the chat. The company can delete a conversation, or everything kept about one person, in its dashboard at any time, and can have conversations deleted automatically 30 days, 90 days or a year after their last message. If the company uses ChatFrom's free Hobby plan, conversations are deleted 14 days after their last message. Otherwise the data is kept until the company deletes the chatbot or ends its account. Deleted data can stay a short time longer in backups: up to seven days in the nightly copies of each chatbot's knowledge and files, and in our host's and database provider's backups until they are replaced.
Services that process data for us
These providers process personal data on our behalf, and only for the purpose named.
| Provider | What for |
|---|---|
| Hostinger | Hosting the site, the app and the engine that writes answers, in Frankfurt, Germany |
| Supabase | The database and signing in, in Frankfurt, Germany |
| Resend | Sending sign-in links, hand-off notices, contact form messages and one-time verification codes, and receiving and storing the email sent to a chatbot's address |
| OpenRouter, and the model provider the chatbot's owner chose | Writing chatbot answers |
| Stripe | Payments, invoices and VAT |
| Sentry | Error reports, in its region in Germany |
| Axiom | Our server's technical log, which records events such as a failed request, with internal ids but not the content of chats |
| DataFast | Counting page views on chatfrom.io without cookies, and which visits led to a purchase |
| Telegram | Alerts to our team when something breaks, with internal ids, not the content of chats |
For the chats on our customers' websites, the same providers act as our sub-processors under our data processing agreement, which lists them with where each handles data.
Some of these providers are based in the United States or may process data there. Where data leaves the European Economic Area, the transfer rests on an adequacy decision of the European Commission, such as the EU-U.S. Data Privacy Framework for certified companies, or on the Commission's standard contractual clauses.
A customer can also put their chatbot on WhatsApp, Telegram, Slack, Discord or their Crisp chatbox, with a bot, app, number or workspace of their own. Messages there pass through that service under the customer's own account with that service, and the customer's privacy policy covers them. Email is the exception: the address a chatbot answers from is ours, so email you send to it is received and stored by Resend on our behalf and processed by us for the company, under this policy.
A customer can also connect their own Langfuse or LangSmith account to see how their chatbot answers. That data then goes to the customer's account with that service, under the customer's own responsibility.
Your rights
You have the right to access your personal data, to have it corrected or deleted, to restrict how it is processed, to receive it in a portable format, and to object to processing that rests on our legitimate interest (Art. 15 to 21 GDPR). Where you gave consent, you can withdraw it at any time. Write to rouzbeh@deadpixelstudio.io to use any of these rights.
You also have the right to complain to a data protection authority. The one responsible for us is the Berlin Commissioner for Data Protection and Freedom of Information (Berliner Beauftragte für Datenschutz und Informationsfreiheit).
Changes to this policy
We update this policy when what we process changes, for example when we start using a new service. The date at the top shows the latest version. When a change affects customers in a significant way, we also tell them by email.