Privacy Policy

Effective date: 14 May 2026 · Version 1.0

This policy explains what personal data the Therapybook platform collects, why we collect it, who else processes it on our behalf, how long we keep it, and what your rights are. It is written to comply with the UK GDPR and the EU GDPR.

Two kinds of people are covered by this policy. Practitioners hold accounts on the platform. Clients are the end-users who book sessions with those practitioners. The data flows are different, and we've called out which one each section applies to.

1. Who we are

Data controller: Puresoft Ltd, registered in England and Wales, operating the Therapybook platform.

Contact: support@clientbooking.pages.dev.

Data Protection Officer (DPO): a formal DPO has not yet been appointed; until one is, all data-protection requests are handled by the founder via the support email above. A real DPO will be in place before we begin processing data for paying customers at scale. We'll update this section when that happens.

For client bookings on a practitioner's page, the practitioner is the controller of their clients' data and we are the processor. The relationship is set out in the Data Processing Agreement.

2. What data we collect

2.1 Practitioner data (when you sign up)

2.2 Client data (when someone books a session with you)

When a client books through your booking page or a connected custom domain, we store, on your behalf:

2.3 Private practitioner notes

Free-text notes you write about your sessions or your clients, optionally linked to a specific session. The note body is envelope-encrypted at rest. We can't read these notes from a database dump; they decrypt only when your signed-in dashboard loads them.

2.4 Scheduled SMS reminders

2.5 Sent-email metadata

For each transactional email we send, the recipient, subject, and timestamp are written to a `sent_emails` audit table. We do not retain email bodies in the audit table.

2.6 Technical / operational data

3. How we use it (purposes)

4. Legal basis for processing

DataLegal basis (UK / EU GDPR)
Practitioner account dataContract (Art. 6(1)(b)) — necessary to deliver the platform.
Client booking + payment dataContract (Art. 6(1)(b)) — necessary to fulfil the booking the client made with the practitioner.
Intake-form answers (health-related)Explicit consent (Art. 9(2)(a)) collected by the practitioner at intake time, with healthcare-purpose backstop (Art. 9(2)(h)) where appropriate.
Private practitioner notes (if client-identifiable)The practitioner's legitimate interest in record-keeping and clinical safety (Art. 6(1)(f)), supported by Art. 9(2)(h) for healthcare.
SMS reminders to clientsContract (Art. 6(1)(b)) — the client consented to a reminder when they ticked the optional phone field at booking.
Security / abuse preventionLegitimate interest (Art. 6(1)(f)).
Marketing to practitionersConsent (Art. 6(1)(a)) — opt-in only. We currently do not run a marketing list.

5. Encryption at rest

The platform implements envelope encryption for the most sensitive fields:

Fields encrypted at rest:

Fields not encrypted at rest: client names, client email addresses, service names, practitioner brand fields, booking start/end times. These are the fields the platform reads on every page load and that are needed by Stripe / iCal / email rendering, so encrypting them would slow normal operation without materially improving privacy.

What this protects against: a database snapshot or backup file leaking. Without the master key, the ciphertext fields are unreadable.

What this doesn't protect against: a compromise of the live Worker runtime (which holds the master key in memory to do its job). For that we rely on Cloudflare's platform isolation and our own engineering hygiene.

6. Sub-processors

We rely on the following sub-processors to deliver the platform. Each one operates under its own terms and privacy notice, linked below. Sub-processor changes will be announced in this policy with at least 30 days' notice.

Sub-processorRolePrivacy notice
Cloudflare Inc. Hosting (Pages, Workers, D1, R2, KV), DNS, TLS, transactional email delivery via the Cloudflare Email Service. Edge nodes located globally (incl. UK, EEA, US). cloudflare.com/privacypolicy
Stripe Inc. / Stripe Payments Europe Payment processing via Stripe Connect (Standard). Each practitioner has their own Stripe account; we route charges via Stripe-Account headers. We do not see card data and do not hold practitioner funds. stripe.com/privacy
Twilio Inc. / Twilio Ireland Outbound SMS reminders (24h-before for clients, 30-min-before for practitioners). Phone numbers + message bodies are shared with Twilio for delivery only. twilio.com/legal/privacy
WordPress hosts (optional) If a practitioner chooses to embed their booking page on a WordPress site using our embed plugin, the plugin runs inside their WordPress install. We do not control or share data with that environment; it loads an iframe and the data flows are otherwise the same as the public booking surface. Per the WordPress host the practitioner chooses.

7. Cookies

The platform sets exactly one cookie: __session, a HttpOnly, Secure, SameSite=Lax cookie issued when a practitioner signs in or completes signup. It identifies the dashboard session for 7 days on a sliding window. We set no tracking cookies, no analytics cookies, and no advertising cookies. Clients browsing a practitioner's booking page do not receive any cookies from us. See the Cookie Policy for the full details.

8. International transfers

Cloudflare, Stripe, and Twilio all operate globally and may process data outside the UK and EEA. We rely on the following transfer mechanisms:

Cloudflare, Stripe, and Twilio each publish their own transfer impact assessments; we link to them in section 6.

9. Retention

DataRetention
Practitioner account + services + working hoursFor the lifetime of the account, plus 30 days after closure for restore. Then permanently deleted (this 30-day window is a draft policy and may be adjusted before launch).
Active bookingsIndefinitely while the practitioner's account is active.
Cancelled bookingsRetained for audit and reconciliation with Stripe; refund records survive.
Intake-form answersSame as the associated booking.
Private practitioner notesIndefinitely while the practitioner's account is active.
Sent SMS rowsIndefinitely as an audit log.
Sent-email metadataIndefinitely on our side; Cloudflare's own retention for email delivery is set by their service.
Magic-link tokens15 minutes from issue (KV TTL).
Session cookies7-day sliding window from last request.

10. Your rights

Under UK / EU GDPR you have the right to:

To exercise any of these rights, email support@clientbooking.pages.dev. We will respond within 30 days. If your request is about data held by us on behalf of a practitioner (e.g. you are a client and you want your booking deleted), we will forward the request to the practitioner, who is the data controller for that data, and assist them in responding.

11. Children's data

The platform is not designed for people under 16. Practitioners must not enrol clients under 16 without first obtaining verifiable parental or guardian consent and recording that consent in their own records. If we become aware that a child under 16 has booked a session without such consent, we will delete the booking on request.

12. Data breaches

If we become aware of a personal data breach that is likely to result in a risk to data subjects, we will notify the relevant supervisory authority within 72 hours of becoming aware, and notify affected practitioners and (where appropriate) their clients without undue delay.

13. Changes to this policy

For non-material changes (clarifying wording, fixing typos) we may publish the updated policy without prior notice. For material changes (new sub-processors, new categories of data, new purposes) we will give you at least 30 days' notice by email and update the “Effective date” above.

14. Contact

Questions about this policy or about how we handle your data? Email support@clientbooking.pages.dev.