Keepslot

Privacy policy

Version of 2026-09-17

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
  2. What we store and why
  3. Legal bases
  4. Who else touches the data (sub-processors)
  5. For how long
  6. Your rights
  7. Cookies
  8. Google Calendar
  9. SMS and legacy WhatsApp
  10. Children
  11. Security
  12. Changes
  13. Contact

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:

Are you a client with questions about the text messages — consent, STOP, or what we hold? Write to us at info@keepslot.app. For questions about your bookings or payments with your trainer, your trainer answers; we help either way.

2. What we store and why

Model use: when you ask the assistant to read a screenshot of a client's texts, to transcribe a photo of a schedule, or for exercise alternatives, the picture, your client names and your own words go to our model provider (OpenAI) to work out the request. Under OpenAI's API terms this data is not used to train its models unless the customer opts in; Keepslot does not opt in. OpenAI keeps API requests for up to 30 days for abuse monitoring, longer only where the law requires it or to protect against harm. Exercise alternatives never carry a client's name.

Trainer data:

Swipe sideways to see more →

DataWhyLegal basis
Name, phone, email, language, time zone, working hoursCreate and run your account, contact youContract
Dedicated Keepslot SMS number and messaging-provider identifiersSend and receive operational texts for your accountContract
Text of the commands you send us («Ana 10 sessions»)Turn the command into a draft you approveContract
Trainer command audio and transcript, if the feature is enabledConvert voice to text for the same processing as written commands; Keepslot does not store the audio fileContract (optional feature)
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 calendarContract (optional connection)
Subscription status and invoices (Stripe holds the card, we do not)Charge you, issue invoicesContract; legal obligation (tax)
Technical logs (timestamps, errors, deliveries)Keep the service running and fix problemsLegitimate interest

Data of the trainer's clients (processed on the trainer's behalf):

Swipe sideways to see more →

DataWhy
Name, phone, languageKnow whom to remind and in which language
Bookings, recurring series, pausesRemind, confirm, reschedule
Packages: bought, used, restored, expiredCount 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 accountSend 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 KeepslotRecord of what was said and when
Legacy WhatsApp messages, only for accounts that still have that channel enabledDeliver the legacy service without mixing it into the SMS channel
Trainer's notes: «what we did / what to do next»Training memory. A note can contain a short physical limitation the client agreed to share, such as «left knee sore, no lunges» — only what the session needs, never diagnoses, medication or medical records
Contact number of a parent/guardian if the client is a minorMessages go to the responsible adult
Public Trial Link request: first name, email, requested time or broad availability, optional goal, referral source and optional mobile numberVerify and route a first-session request, prevent duplicate or abusive submissions, let the trainer decide, and create a client and booking only after acceptance

Website visitors: statistics are aggregated (pages viewed, country), with no cookies and nobody identified. If you submit an application, support request or public Trial Link request, we process the fields shown on that form and minimum technical submission data only to deliver the requested flow and prevent abuse — see «Cookies».

3. Legal bases

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)

The providers below are used according to enabled features and connections. The integration in preparation is identified separately. Before a provider receives live data, we verify the applicable data processing agreement, region and transfer safeguards, including standard contractual clauses or, where applicable, the EU-US Data Privacy Framework. This list does not mean every provider receives data from every account.

Swipe sideways to see more →

ProviderRoleWhat dataRegion
SupabaseDatabaseEverything listed aboveEU — Frankfurt, Germany
VercelApplication hostingData in transit while handling requestsFunctions in the EU (Frankfurt); company in the USA
TwilioUS SMS delivery for enabled workspacesPhone numbers, operational message content, consent keywords and delivery statusProcessing and transfers under the applicable Twilio agreement and account configuration
YCloudLegacy WhatsApp Business API connectionPhone numbers, messages, delivery statuses for legacy accountsAs specified by the applicable YCloud DPA and account configuration
Alibaba Cloud — Chat App Message Service (in preparation)Alternative legacy WhatsApp Business API connection, not enabledIf enabled: phone numbers, WABA identifiers, messages and delivery statuses for the connected channelRegion and transfers to be confirmed before activation
Meta (WhatsApp)Legacy messaging networkNumbers, messages and metadata for legacy WhatsApp accountsMeta Platforms Ireland (EU); transfers to the USA under the DPF
StripeTrainer paymentsName, email, card data (only Stripe sees it)Stripe Payments Europe, Ireland
GoogleCalendar (only if the trainer connects it)Busy/free intervalsGoogle Ireland; USA under the DPF
Anthropic (Claude)Interpreting trainer commands, if enabledRedacted text of commands and notes typed in the assistant, and language; known client names are replaced with placeholders before sending. A note can contain a short physical limitation the client agreed to share, such as «left knee sore». Client conversations are not automatically sentUSA; not used for training; inputs and outputs deleted within 30 days, kept up to 2 years only if flagged as a Usage Policy violation or longer where the law requires it
OpenAI (GPT and transcription)Interpreting commands, transcribing trainer voice notes, reading screenshots and suggesting exercise alternatives, if enabledFor commands and notes typed in the assistant: redacted text and language; known client names are replaced with placeholders, and a note can contain a short physical limitation the client agreed to share, such as «left knee sore». For transcription: audio sent by the trainer. For screenshots: the picture, client names and the trainer's noteInternational processing; not used for training; requests kept up to 30 days for abuse monitoring, longer only where the law requires it or to protect against harm
PlausibleWebsite statistics, no cookiesAggregated data, no IP storedEU
ResendDelivering applications and support requests by emailName, contact details, profession, message and delivery metadataData and logs in the USA; transfers under SCCs and the DPF
Cloudflare TurnstileProtecting public forms against abuseTechnical browser and network signals; it does not receive form-field contentsGlobal network; transfers under SCCs and the DPF

Twilio receives live client data only for an enabled SMS workspace after the required messaging registration, sender number and production setup are complete. YCloud remains listed only for existing legacy WhatsApp connections. The Alibaba Cloud integration is in preparation and is not active. Each account uses only its enabled provider connection.

When AI interpretation is enabled, the trainer's commands, including notes typed in the assistant, and language may be sent to Anthropic or OpenAI, depending on the configuration. Keepslot replaces known client names with placeholders first and does not send the workspace's client list. A note can contain a short physical limitation the trainer writes with the client's agreement, such as «left knee sore, no lunges»: only what the session needs, never diagnoses, medication or medical records. If transcription is enabled, trainer audio is sent to OpenAI; the transcript follows the same processing as written commands. Messages and audio sent by clients themselves are not automatically sent to these AI services.

Under each provider's API terms, this data is not used to train its models unless the customer opts in; Keepslot does not opt in. OpenAI keeps API requests for up to 30 days for abuse monitoring, longer only where the law requires it or to protect against harm. Anthropic deletes API inputs and outputs within 30 days; a request its automated safety systems flag as a Usage Policy violation may be kept for up to 2 years, and either provider may keep data longer where the law requires it.

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 →

WhatPeriod
A trainer's client, after «delete» or the person's own request30 days, then permanently erased
Trainer account, after cancellation30 days, then permanently erased (clients included)
Technical logs90 days
Invoices and payment recordsAs long as Portuguese tax law requires (currently 10 years)
Google Calendar accessOnly 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 websiteNo 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
Public Trial Link requestWhile the request is open. If accepted, it becomes part of the trainer's client and booking record; if declined, expired or withdrawn, it is deleted after 90 days
Production backupsNo live data is accepted until backup, restore and deletion policies are configured and tested

6. Your rights

At any time you can ask to:

How: email info@keepslot.app (trainers and clients), or reply «STOP» to an operational SMS. 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.

7. Cookies

The website uses no tracking or advertising cookies. For statistics we use Plausible, which works without cookies and without storing your IP — hence no cookie banner.

When a public form is enabled, Cloudflare Turnstile performs a technical abuse check. It does not receive the contents of form fields and is not used for advertising or behavioural analytics.

The trainer's «Today» page opens from a private link. It may use one strictly technical cookie for the session; it is not used for tracking.

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. SMS and legacy WhatsApp

The US service uses a dedicated Keepslot number for operational SMS through Twilio. A workspace is enabled only after the required messaging registration, sender number, webhooks and live tests are complete.

Keepslot does not send a text asking for permission. Before any recurring SMS, the client opts in by sending the prepared START keyword from a trainer-specific QR code, by using a private invitation page with an unchecked consent box, or by separately selecting the unchecked SMS box on a coach's public Trial Link. A Trial Link request works by email without SMS. The disclosure covers reminders, available openings, package balances and payment updates. Keepslot records the date, source, disclosure version, phone and provider evidence.

Operational texts identify Keepslot and the trainer, explain their purpose and provide STOP. Message frequency varies. Message and data rates may apply. Marketing requires separate consent and is not part of the service.

The messaging provider and mobile carriers process the phone number, message content, timestamps and delivery status needed to deliver the SMS. Keepslot records consent, STOP and delivery outcomes.

Mobile information is not sold or shared with third parties or affiliates for marketing or promotional purposes. Text-message opt-in data and consent are not shared with third parties for their marketing.

Legacy WhatsApp code remains available only for accounts that already use that channel. Those messages are handled by the enabled legacy provider and Meta under their applicable terms; legacy data is not silently moved into SMS.

A separate payer opts in the same way a client does — by sending START or ticking the consent box on our form — and only then receives a package balance, renewal proposal, payment confirmation and pause receipt. «STOP» disables that entire financial flow.

Keepslot never chats freely with clients. It sends fixed operational messages and short reply choices. A client's free-text 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

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