Privacy policy
Version of 2026-08-26
This page explains what data Keepslot stores, why, for how long and who else touches it. Written for trainers and for their clients. Questions: info@keepslot.app.
Contents
1. Who we are
Keepslot is operated by PAVEL BELOV, a sole trader registered in Portugal, tax number (NIF) 324091443, RUA MONSENHOR FERREIRA NÚMERO 299/305 1 DRT, 4710-407 BRAGA, PORTUGAL. Email for privacy matters: info@keepslot.app. We are a small company and have not appointed a data protection officer (DPO); the contact above answers everything.
We wear two hats:
- For the trainer's data (account, billing, website use) we are the controller.
- For the data of the trainer's clients (names, phones, bookings, balances) the trainer is the controller; we process that data on the trainer's behalf, as a processor, under the DPA.
Are you a trainer's client with questions about your data? Your first contact is your trainer. You can also write to us — we forward and help.
2. What we store and why
Trainer data:
Swipe sideways to see more →
| Data | Why | Legal basis |
|---|---|---|
| Name, phone, email, language, time zone, working hours | Create and run your account, contact you | Contract |
| WhatsApp Business number and Meta identifiers | Send and receive messages on your number | Contract |
| Text of the commands you send us («Ana 10 sessions») | Turn the command into a draft you approve | Contract |
| Busy/free times from Google Calendar and bookings in the separate «Keepslot» calendar (only if you connect it) | Avoid conflicts and keep Keepslot bookings in your calendar | Contract (optional connection) |
| Subscription status and invoices (Stripe holds the card, we do not) | Charge you, issue invoices | Contract; legal obligation (tax) |
| Technical logs (timestamps, errors, deliveries) | Keep the service running and fix problems | Legitimate interest |
Data of the trainer's clients (processed on the trainer's behalf):
Swipe sideways to see more →
| Data | Why |
|---|---|
| Name, phone, language | Know whom to remind and in which language |
| Bookings, recurring series, pauses | Remind, confirm, reschedule |
| Packages: bought, used, restored, expired | Count what is left |
| Debts and partial payments (amounts only, never card data) | Show the trainer what is outstanding |
| Separate payer: name, phone, language and linked family/individual account | Send financial information to the right person, never by assumption |
| Consents: date of the «yes» to reminders, slot offers and financial messages; date of «STOP» | Prove the person agreed and honour «STOP» |
| Messages sent and received by Keepslot | Record of what was said and when |
| Copy of messages the trainer sends manually in WhatsApp (single-number mode) | Know there was a recent conversation (Meta's 24-hour window) — we do not read or analyse them |
| Trainer's notes: «what we did / what to do next» | Training memory. Health data is forbidden by the service rules |
| Contact number of a parent/guardian if the client is a minor | Messages go to the responsible adult |
Website visitors: statistics are aggregated (pages viewed, country), with no cookies and nobody identified. If you submit an application or support request, we process the name, contact details, profession, message, consent and minimum technical submission data only to reply and prevent abuse — see «Cookies».
3. Legal bases
- Contract (art. 6(1)(b) GDPR): everything needed to provide the service to the trainer.
- Legal obligation (art. 6(1)(c)): keeping invoices for as long as tax law requires.
- Legitimate interest (art. 6(1)(f)): technical logs, security, abuse prevention. For the trainer's clients, the reminder of a session already booked relies on the trainer's legitimate interest in keeping the appointment you made together; the first message says who is writing, what you will receive and how to stop («STOP»).
- Consent (art. 6(1)(a)): offers of free slots, the waiting list and financial messages to a separate payer — only after an explicit «yes», which you can withdraw at any time.
We make no automated decisions with legal effects on anyone, build no profiles and never sell data.
4. Who else touches the data (sub-processors)
We use few providers, each for one thing. All have a data processing agreement with us. For those outside the EU we rely on the European Commission's standard contractual clauses and, where available, EU-US Data Privacy Framework certification.
Swipe sideways to see more →
| Provider | Role | What data | Region |
|---|---|---|---|
| Supabase | Database | Everything listed above | EU — Frankfurt, Germany |
| Vercel | Application hosting | Data in transit while handling requests | Functions in the EU (Frankfurt); company in the USA |
| YCloud | Connection to the WhatsApp Business API | Phone numbers, messages, delivery statuses | As specified by the applicable YCloud DPA and account configuration |
| Meta (WhatsApp) | Messaging network | Numbers, messages, metadata — see «WhatsApp» | Meta Platforms Ireland (EU); transfers to the USA under the DPF |
| Stripe | Trainer payments | Name, email, card data (only Stripe sees it) | Stripe Payments Europe, Ireland |
| Calendar (only if the trainer connects it) | Busy/free intervals | Google Ireland; USA under the DPF | |
| Anthropic | Interpreting the trainer's commands | Only the text of the trainer's command (e.g. «Pedro Friday 6pm»). Never client messages. Not used to train models; logs deleted within days | USA |
| Plausible | Website statistics, no cookies | Aggregated data, no IP stored | EU |
| Resend | Delivering applications and support requests by email | Name, contact details, profession, message and delivery metadata | Data and logs in the USA; transfers under SCCs and the DPF |
| Cloudflare Turnstile | Protecting public forms against abuse | Technical browser and network signals; it does not receive form-field contents | Global network; transfers under SCCs and the DPF |
If we change or add a provider, we update this table and notify trainers 30 days in advance (see DPA).
5. For how long
Swipe sideways to see more →
| What | Period |
|---|---|
| A trainer's client, after «delete» or the person's own request | 30 days, then permanently erased |
| Trainer account, after cancellation | 30 days, then permanently erased (clients included) |
| Technical logs | 90 days |
| Invoices and payment records | As long as Portuguese tax law requires (currently 10 years) |
| Google Calendar access | Only while connected; on disconnect we delete the token. The «Keepslot» calendar and events already created remain in your Google account until you delete them |
| Applications and support requests submitted on the website | No copy is stored in our database. The message delivered to the inbox is deleted after the period shown on the form, unless there is a commercial relationship or legal duty |
| Production backups | No live data is accepted until backup, restore and deletion policies are configured and tested |
6. Your rights
At any time you can ask to:
- Access your data and know what we hold.
- Correct anything that is wrong.
- Erase («be forgotten»), except what the law obliges us to keep.
- Receive your data in a file to take elsewhere (portability).
- Object to processing based on legitimate interest — for example, say «STOP» to receive no more messages.
- Restrict processing while a question is being resolved.
- Withdraw a consent, without affecting what was done before.
How: a message to info@keepslot.app (trainers and clients) or «STOP» / «delete» in WhatsApp (clients). We answer within 30 days at most. If you are a trainer's client we may ask the trainer to confirm the request, because the trainer is the controller.
If you believe we handled your data badly, you can complain to the authority in your country: Portugal — CNPD (cnpd.pt); Spain — AEPD (aepd.es); United Kingdom — ICO (ico.org.uk). We would rather solve it with you first.
8. Google Calendar
If you connect Google Calendar, we use two separate, limited permissions. On your other calendars we query only «busy/free» and never read event titles, descriptions or guests. Keepslot creates a separate calendar named «Keepslot» and only creates, updates or deletes its own bookings there. An event contains only the client's name, date, time and duration — never a phone number, notes, payments or a client invitation.
If you move, resize or delete one of those events in Google, Keepslot shows a question under «Needs you». The booking, package and client messages change only after you confirm. You can disconnect on the «Today» page or at myaccount.google.com/permissions; we delete the access token. The «Keepslot» calendar and events already created remain in your Google account until you delete them.
Keepslot's use and transfer to any other app of information received from Google APIs will adhere to Google API Services User Data Policy, including the Limited Use requirements.
9. WhatsApp — what Meta sees
Keepslot uses Meta's WhatsApp through YCloud to send and receive messages about bookings and reminders.
Messages travel through Meta's WhatsApp Business API. Meta sees the phone numbers, the content of messages sent and received through the API, and metadata (timestamps, delivery statuses). Meta handles that data under its own WhatsApp Business terms and privacy policy. The trainer has a data processing agreement with Meta through the WhatsApp Business terms.
Booking-form service consent is unchecked by default and uses this wording: “I agree to receive WhatsApp messages from Keepslot about my bookings and reminders. I can opt out at any time.” Marketing messages require a separate, optional and unchecked consent.
The trainer's number is a WhatsApp Business account. In single-number mode the trainer keeps writing manually from the phone; Keepslot receives a copy of those messages only to know there was a recent conversation. It does not analyse them or answer on the trainer's behalf.
A separate payer first receives a request with no amounts. Only after replying «yes» can they receive a package balance, renewal proposal, payment confirmation and pause receipt. «STOP» disables that entire financial flow.
Keepslot never chats freely with clients: it only sends templates approved by Meta and by the trainer, plus buttons. A client's question goes to the trainer.
10. Children
Keepslot does not message minors. When the student is a minor, the contact number is a parent's or guardian's, and that adult receives the reminders and summaries. The minor's data (name, bookings, balance) is entered by the trainer, who is responsible for having the adult's permission. If we find we are messaging a minor directly, we stop and tell the trainer.
11. Security
- Data encrypted in transit (TLS) and at rest in the database.
- Database in the EU (Frankfurt).
- Trainer access via a private tokenised link; internal access kept to a minimum and logged.
- We do not accept live client data until production backup and restore are configured and tested.
- If a data breach puts you at risk, we notify the trainer within 48 hours and, where the law requires, the authority and the people affected.
12. Changes
When we change this policy we publish the new version here with its date. If the change matters, we notify trainers by message or email.
13. Contact
PAVEL BELOV, a sole trader registered in Portugal, tax number (NIF) 324091443, RUA MONSENHOR FERREIRA NÚMERO 299/305 1 DRT, 4710-407 BRAGA, PORTUGAL · info@keepslot.app