The short version
Your messages build your companion's memory of you. Nothing else. You can download what we have noted about you, make your companions forget what you have told them, or delete the account outright, from your settings page.
Who is responsible
The controller of your data is Rodrigo Sommacal, Junker-Jörg-Straße 32A, 10318 Berlin, Germany, rodrigo@parlaapp.io. Write to that address about anything on this page.
What we store
- Your account: your phone number, your chosen name, the interests you typed, your timezone and the hours you allow a companion to write in. It also holds the id of your chat with us, your Telegram username and the first name Telegram passes us, the language you read the pages in, and the dates your subscription started, paused or ends. There is no email address on it: the one we hold comes from the checkout, below.
- Your conversations: the messages you send and the replies you get, plus what a companion has inferred about you: your level, the error patterns that recur, and the words you have used.
- Your weekly reports: one document per language, kept so you can read it again.
- Your subscription: whether it is active, paused or cancelled.
- Your checkout: when you pay, Stripe passes us the email address you paid with, and we keep it with the Stripe customer and subscription ids and the one-time link that turns the payment into your account.
- Your free-week link: when you start a free week we mint a one-time code and store which companion you chose, which language the pages were in, when the code expires and when it was used. Once you open it in Telegram, the row holds the id Telegram gives your chat with us as well. A daily sweep deletes the row seven days after the code was used, or seven days after an unused code expired. A used code cannot be redeemed again while it waits; it is kept that week so the anonymous usage counts below can tell which link a first message came from.
What we do not store
We do not store card details. Payment happens on Stripe's pages, and we never see the number.
If you left your address on the blog
We store the address and which post you left it on, so we can write to you when the letters start. It is not connected to any account, it is not used for anything else, and we do not pass it on. Ask us to remove it and we will.
If you asked us for a language we do not have yet
We store the address you typed and the language you asked for, so we can write to you when it opens. It is not connected to any account, it is not used for anything else, and we do not pass it on. Ask us to remove it and we will.
Who else processes it
| Who | What they do | Where |
|---|---|---|
| Telegram | Carries the messages between you and your companion | Ireland and the United States |
| Stripe | Takes the payment and holds the card details | Ireland and the United States |
| OpenRouter | Routes our requests to the model that answers them | United States |
| The makers of the GLM, Qwen and DeepSeek models (Z.ai, Alibaba Cloud and DeepSeek), and the hosting providers OpenRouter picks to run them | Generate the replies from the conversation we send them, and describe the photos you send | China, Singapore, the United States or elsewhere |
| DeepSeek, directly | Generates the replies when the routes above fail | China |
| Anthropic | Generates the replies when we switch to it | United States |
| Groq | Turns your voice notes into text | United States |
| Hetzner | Runs the servers, the database and its backups | Germany |
| Resend | Sends our emails, such as the confirmation of a cancellation | Data stored in the European Union (Ireland); a company in the United States |
A conversation sent to a model provider carries the messages, the name you asked to be called, what you have told a companion about yourself, your timezone, the topics you asked to keep off the table, and the notes that let her pitch her language at you. It does not carry your phone number.
OpenRouter decides which hosting provider runs a model for each request, unless we name one, so we cannot say in advance in which country a given reply is written. We ask it to use only providers that do not collect the data they are sent.
Several of these providers are outside the European Union. Where that is the case, the transfer rests on an adequacy decision of the European Commission (for the United States, the EU-US Data Privacy Framework, where the provider is certified under it) or on the standard contractual clauses approved by the Commission. Write to us for a copy of the safeguards that apply.
Anonymous usage counts
When you walk through the pages that start a free week, we store a row saying which step was reached, when you reached it, which language you want to learn, which language the pages were in, which companion was chosen and, when you came from one, which of our pages you started from (the blog, for instance). With Analytics on (see the cookies below), the row also holds the one-time code we minted for it and, for each step that happens in the browser, a random number for your browser session. It is drawn at random and nothing about you goes into it (not your address, not your browser, no fingerprint), so it names a browser and not a person. When the session cookie goes, your browser stops sending it, and the counts already stored keep it. Without Analytics there is no session number: the rows from these pages hold neither that number nor the code, and each counts on its own. Your first message in the chat is counted as the last step either way, by the code alone, with no session number.
There is no name, no phone number, no account and nothing you wrote in any of these rows, and we do not pass them on. They exist so we can see where the sign-up gets stuck, and we keep them: nothing deletes them later. The code is the only thing that ties such a row to a chat, and it stays in the row above for a week after it is used, so from then on the counts stand alone.
Cookies and what your browser keeps
| Name | Group | What it is for | How long |
|---|---|---|---|
_whatsapp_lang_bot_key |
Necessary | Keeps you logged in, protects forms, remembers the companion whose settings you are on, keeps your language and theme for this visit until you allow Preferences, and with Analytics holds the random session number | Until you close the browser |
consent |
Necessary | Your answer here | 6 months |
locale |
Preferences | The page language you chose | 1 year |
theme |
Preferences | Light, dark or your system's setting | 1 year |
parla:login-draft, parla:other-language-draft (in the tab's session storage) |
Necessary | What you typed in the login or language request form, across a reload | Until you close the tab |
We write nothing optional before you answer. You can change your answer at any
time under Cookie settings, at the foot of the site's pages. Turning Preferences
off deletes the locale and theme cookies, and turning Analytics off removes
the session number from your browser at once; the counts already stored keep
theirs. There are no third-party cookies, scripts or trackers: everything in the
table comes from Parla itself.
If you cancel on the cancellation page
The page asks for the email address you paid with, and optionally your name and a reason. We use the address to find your subscription at Stripe, send what you entered and the result to the owner's own Telegram chat so a person reads it, and note in the server log that a cancellation arrived, without the address. We store the cancellation in our database as the record that it arrived. When the address belongs to a Stripe customer, we email it a confirmation through Resend, which does not repeat the name or the reason. If the address belongs to an account with a Telegram chat, we confirm the cancellation in that chat too.
Why we use it, and on what legal basis
- To run the service you signed up for: your account, your conversations, the replies, voice notes, photos, weekly reports, the payment and your cancellation. The basis is the contract with you (Art. 6(1)(b) GDPR).
- To keep invoices and payment records, which tax law requires. The basis is a legal obligation (Art. 6(1)(c) GDPR).
- To see where the sign-up gets stuck (the anonymous counts above), and to keep the service safe: for an hour, and only in memory, we count how often one connection asks for a login code or sends a form, to slow down abuse. The basis is our legitimate interest in a working, safe service (Art. 6(1)(f) GDPR).
- To write to you about the letters or a new language, when you left your address for that, and for the optional cookies and the session number you allow under Cookie settings. The basis is your consent (Art. 6(1)(a) GDPR), which you can withdraw at any time.
How long we keep it
- Your account and everything in it stay until you delete the account. Then they are deleted at once.
- A login on this website is deleted once it has not been used for 60 days.
- Free-week links and the anonymous counts: as described above.
- An address left on the blog or for a language: until you ask us to remove it.
- Invoices and payment records: Stripe keeps them for us for ten years, because German tax law requires it (§ 147 AO, § 14b UStG). Deleting your account does not delete them.
- A cancellation sent from the cancellation page: we keep a record of it in our database as proof that it arrived, until the end of the third year after the contract ended (or, when it ended no contract, after it arrived); a nightly job then deletes it.
Reading, exporting and deleting
From your settings page you can download a text file: the name, interests, timezone and contact hours you gave us, the settings you chose for your companions, your level in each language, how many words we have counted in your vocabulary, the notes your companions keep about you, and the status of your account. The messages themselves and your weekly reports are not in that file. On the same page you can make your companions forget what you have told them, or delete the account and everything in it. Deletion is immediate and it is not reversible.
Your rights
You can ask us for a copy of your data, ask us to correct it, ask us to delete it, ask us to restrict how we use it, ask for it in a machine-readable form to take elsewhere, or object to a use that rests on our legitimate interest. A consent you gave you can withdraw at any time, for the future. Write to the address above and we will answer within a month.
You can also complain to a data protection authority. Ours is the Berliner Beauftragte für Datenschutz und Informationsfreiheit, Alt-Moabit 59-61, 10555 Berlin, Germany.
What you have to give us
No law obliges you to give us any of this. Without your messages a companion has nothing to answer, and without a payment the subscription cannot run, so the service needs them; everything else is up to you.
No automated decisions
Nothing here makes a decision about you with a legal effect, or a similarly significant one, by automated means. A companion does estimate your level and notice the mistakes you repeat, and that only shapes how she writes to you.