Privacy Policy
1. Scope and our roles
This Privacy Policy explains how we handle personal information in the PlanFlow Trainer service ("Service"). It covers two different relationships, and our legal role differs in each:
- Trainer account and usage data. For information about Trainers (the people who hold accounts) and for data we use to operate, secure, and improve the Service, we are the controller (a "business" under the California Consumer Privacy Act). This Policy is our notice to Trainers.
- Client Data entered by Trainers. For information a Trainer enters about their Clients, the Trainer decides what is collected and why. As between us and the Trainer, the Trainer acts as the controller/business and we act as a service provider/processor, handling that data on the Trainer's instructions. We do not use Client Data for our own independent purposes, and we do not sell it.
If you are a Client and have questions about your information in the Service, please contact the Trainer who manages your record; we will support Trainers in responding to such requests as required by law.
2. Information we collect
From and about Trainers (we are the controller):
- Account and identity data: name, email address, password (stored hashed by our authentication provider), and account settings.
- Usage data: feature usage, AI Advisor request counts and rate-limit state, and technical logs needed to operate and secure the Service.
Client Data entered by Trainers (we act as processor):
- Client identifiers: name, phone number, email address.
- Training data: packages, sessions, exercises, sets, weights, reps, and session dates.
- Goals and injury notes — free-text fields describing a Client's training goals and injuries. These can reveal information about a person's physical or mental health condition and are treated as sensitive information (see Section 4).
- Consent records: each consent event for a Client (see Section 6).
- AI Advisor conversation records, stored in de-identified (tokenized) form (see Section 5).
Voice data: see Section 7. In production, we do not receive, store, or transmit raw audio.
3. How we use information
- To provide and operate the Service (manage clients, sessions, and the AI Advisor).
- To authenticate Trainers and secure accounts.
- To enforce rate limits, consent checks, and our safeguards.
- To maintain audit and consent records required for accountability and legal compliance.
- To operate, maintain, troubleshoot, and improve the Service, using Trainer account and usage data. We operate no AI models of our own and do not train any AI model on your data; the third-party provider's role is described in Section 5.
- To communicate with Trainers about the Service.
- To comply with law and enforce our Terms.
4. Sensitive / health information and our lawful basis
A Client's goals and injury notes can describe a physical or mental health condition. When a Trainer asks the AI Advisor a question about a Client who has granted consent, the content of that Client's goals, injury notes, and training history is sent to the third-party AI provider in de-identified form (direct identifiers removed; names replaced with placeholders; exact dates replaced with relative labels). The clinical/training substance of the notes is retained because the AI needs it to respond.
We treat this category as sensitive information. The lawful basis for processing it through the AI Advisor is the Client's opt-in consent, captured through the two-step consent flow described in Section 6. If consent has not been granted, the Client's name and data are not sent to the AI provider; the Client is represented to the AI by a neutral placeholder label only. Removing direct identifiers reduces what the provider receives, but is not the same as full anonymization — information a Trainer types may still describe a Client indirectly.
We are not a HIPAA-covered entity by virtue of this Service, and using the Service does not make a Trainer's records exempt from generally applicable privacy laws. Trainers must not enter information they are not permitted to process through a third-party AI service, and must keep HIPAA-protected information out of the Service unless and until an appropriate agreement is in place.
5. The AI Advisor — what is shared with the AI provider
When a Trainer uses the AI Advisor, the request passes through a fixed, server-side sequence before anything reaches the AI provider:
- Authentication — the Trainer's identity is verified.
- Consent check (fail-closed) — if the relevant Client has not granted consent, or the Client cannot be verified, identifiable context is blocked from being sent.
- PII scrubbing — on our servers, before the request
leaves our infrastructure, the system replaces:
- email addresses with placeholder tokens;
- U.S.-format phone numbers with placeholder tokens;
- the names of the Trainer's Clients (the full client roster, not just
the selected Client) with placeholder tokens such as
[[C1]]; - ISO/
YYYY-MM-DDdates with relative labels (for example, "3 days ago," "last week"). Date conversion is one-way and is not reversed.
- Verification gate — the system re-scans the scrubbed request for any remaining raw identifiers. If any are detected, the request is blocked and not sent to the provider. Blocked requests are recorded as category counts only (not the underlying text).
- AI provider — only the de-identified request is sent.
- Restoration for the Trainer — when the response returns, name placeholders are restored to real names for the Trainer's view only, using a map that exists only in memory for that single request and is then discarded. It is not persisted, logged, or written to any database.
What is sent to the AI provider: the static system instructions, the (de-identified) prior conversation turns, the current (de-identified) question, and de-identified Client context (name as a placeholder, dates as relative labels, training numbers such as weights and reps intact).
What is designed not to be sent: real names, phone numbers, email addresses, and exact dates. The system is designed so that the AI provider does not receive these direct identifiers.
Audit records: AI questions and responses are stored in their de-identified, tokenized form. The map needed to restore the placeholders is destroyed at the end of each request, so identifiers in stored AI records are not reversible. Each Trainer can read only their own records.
Model training. We operate no AI models of our own and do not train any model on Client Data. Data sent to the third-party AI provider is processed on its infrastructure under its own terms and data processing agreement. We do not represent how that provider retains or uses submitted data beyond those terms; we state only that we ourselves neither retain it in identifiable form nor use it to train models.
Known limits of the de-identification (please read)
The de-identification is strong for the cases it covers, but it is not absolute. In particular:
- Third-party names are not removed. The system only removes the names of a Trainer's own registered Clients. If a Trainer types the name of someone who is not a registered Client (for example, "his wife Sarah…"), that name is not detected and would be sent to the AI provider. Trainers are instructed not to include third parties' names or details in AI questions.
- Non-U.S. phone formats may not be removed. Phone-number detection covers U.S. formats. Phone numbers in other formats may not be detected and could pass through to the AI provider.
- Model behavior is not output-validated. The AI's instructions to stay on training topics and to be conservative about injuries are enforced at the instruction level, not guaranteed at the model-output level, and the Service does not filter AI responses before showing them to the Trainer. (An injury disclaimer is reliably added by our servers and cannot be suppressed by the model.)
- Voice dictation is outside this de-identification. Identifiers spoken aloud during voice input may reach your browser vendor before any scrubbing occurs (see Section 7).
6. Client consent system
Before a Client's identifiable information or training data is used with the AI Advisor, the Trainer must record that Client's consent through a two-step flow: the Trainer reads a scripted disclosure to the Client, then confirms the Client's answer.
- Consent is opt-in. A Client who has never been asked is treated the same as a Client who declined — "pending" means the AI receives a neutral placeholder label in place of the Client's name and contact details. There is no default that allows AI access before consent is recorded.
- Enforced in two places. The app withholds identifiable context for non-consenting Clients before sending a request, and our servers independently block any request that would carry a non-consenting Client's identity.
- Consent records are append-only. Each consent event (who, when, granted or declined, and the version of the wording used) is written to a consent log that the application can add to and read, but cannot modify or delete. A Trainer can change or withdraw a Client's consent at any time; doing so adds a new event and updates the Client's current status, without altering past records.
- What this consent does and does not cover. The consent governs what our servers send to the AI provider after de-identification. It does not cover audio that your browser may send to its vendor during voice dictation (Section 7); trainers should manage that separately.
7. Voice features
- Voice output (text-to-speech). When enabled, the app reads AI responses aloud using your device's built-in speech engine. This happens on your device; no audio is recorded, transmitted, or sent to any server for this purpose.
- Voice input (speech-to-text) in production. Dictating a question uses your browser's built-in speech recognition. On some browsers (for example, Chrome), the browser sends your spoken audio to the browser vendor's servers (for example, Google) to convert it to text. This is outside our infrastructure and control. We do not receive, store, or transmit that audio — only the resulting text — but your voice (which may include names you speak aloud) may pass through your browser vendor's network under that vendor's own terms. This routing is separate from, and not covered by, the consent a Client gives for the AI Advisor (Section 6). Trainers who want to keep a Client's spoken identifiers out of the browser vendor's systems should type those questions rather than dictate them. If you do not want this behavior at all, do not use voice input; type your question instead.
- Demo/sandbox transcription — not in production. Our demo/sandbox environment, which uses synthetic data only, can use a third-party transcription service (Groq Whisper) for voice input. In that environment, a short audio clip is sent to Groq for transcription under Groq's terms. This path does not run in the production Service and is never used with real Client data.
8. Third parties and sub-processors
We use the following service providers. They process data to provide infrastructure and features to us, under their own terms and our agreements with them:
| Provider | Role | Notes |
|---|---|---|
| Supabase | Database, authentication, and server (Edge Function) hosting | Managed PostgreSQL on AWS, U.S. region; provider reports SOC 2 Type II compliance and AES-256 encryption at rest |
| Third-party, U.S.-hosted AI provider | Powers the AI Advisor | Receives de-identified questions/context via an OpenAI-compatible API; processes under its own terms and data processing agreement |
| DeepSeek (demo/sandbox only) | Powers the AI Advisor's free lane in the demo environment | Not used in production; a non-U.S. provider, so it is confined to the demo/sandbox environment and receives only de-identified questions under its own terms; synthetic data only |
| Cloudflare | Frontend hosting / content delivery and TLS | Serves the static application; no personal data is logged by this layer |
| Groq (demo/sandbox only) | Voice-to-text transcription in the demo environment | Not used in production; synthetic data only |
In addition, when you use voice dictation in production, your browser vendor (for example, Google) may receive the audio you speak in order to transcribe it (Section 7). That vendor is not engaged by us; its processing is governed by its own terms.
We do not sell personal information, and we do not "share" it for cross-context behavioral advertising.
9. Data retention
- Trainer account data is retained while the account is active and for a reasonable period afterward as needed for legal, security, and operational purposes.
- Client Data is retained on the Trainer's instructions for as long as the Trainer maintains it in the Service, and is deleted or returned as described in our agreement with the Trainer on account closure.
- AI Advisor records are retained in de-identified form for accountability; the information needed to reverse the de-identification is discarded at the end of each request.
- Consent records are retained as an append-only log for accountability and cannot be edited or deleted by the application.
10. Security
We use technical and organizational measures including:
- Row-level security so each Trainer can access only their own data;
- a server-side PII scrubbing and verification gate that blocks AI requests containing detected raw identifiers;
- an append-only consent log whose modify/delete privileges are revoked at the database level;
- server-side handling of provider keys (not exposed to the browser);
- rate limiting enforced server-side to limit bulk extraction;
- encryption in transit (TLS) for data moving between systems, including to the AI provider; and
- encryption at rest using AES-256. Our database provider encrypts all project storage and database backups at rest by default; this is provided by the underlying cloud infrastructure and cannot be disabled.
No method of storage or transmission is completely secure, and we cannot promise absolute security.
11. Data breach notification
If we become aware of a breach of security that leads to the unauthorized access, disclosure, or loss of personal information we process, we will:
- notify affected Trainers without undue delay; and
- where we act as a service provider/processor, promptly inform the relevant Trainer (as controller) and provide the information reasonably needed for that Trainer to meet its own notification obligations,
in each case as, and within the timeframes, required by applicable law.
12. Your privacy rights
Depending on where you live, you may have rights to:
- know/access the personal information we hold about you;
- correct inaccurate information;
- delete your information;
- obtain a portable copy;
- opt out of sale or of "sharing" for cross-context behavioral advertising (we do not sell or share in this sense);
- for sensitive information, limit its use, and (where required) provide or withdraw opt-in consent;
- not receive discrimination for exercising your rights.
How to exercise them. Trainers may exercise rights regarding their own account data by contacting us at support@planflowai.com. Because we act as a service provider/processor for Client Data, Clients should contact the Trainer who manages their record; we will assist the Trainer as required by law. We will verify requests as the law requires and respond within the timeframes applicable to your jurisdiction. You may also have the right to appeal a decision and to contact your state attorney general.
13. State privacy laws
This Policy is intended to provide the disclosures required by U.S. state privacy laws, including the California Consumer Privacy Act (as amended) and the Virginia/Colorado-model state laws, among others. Several of these laws treat health-related information and other categories as sensitive data requiring opt-in consent to process; we rely on the Client consent flow (Section 6) for that basis. Note that some states (for example, Texas, Nebraska, and Colorado) do not apply a minimum revenue or volume threshold in the same way, so the Service may be in scope regardless of size. We apply our protections to all users on a single standard rather than varying them by state.
14. Children's information
The Service is intended for adult Trainers and is not directed to children. We do not knowingly collect personal information directly from children. However, a Trainer may enter information about a Client who is a minor (for example, a youth athlete). Where a Client is under 13, additional protections under the Children's Online Privacy Protection Act (COPPA) may apply, and several states require opt-in consent to process the data of consumers aged 13–17. Trainers are responsible for obtaining any parental/guardian consent the law requires before entering a minor Client's information and before enabling AI processing of that data. If we learn that a child's information was provided in violation of applicable law, we may delete it.
15. Where data is processed
The Service and its providers are hosted in the United States. If you access the Service from outside the United States, your information will be processed in the United States.
16. Changes to this Policy
We may update this Policy. If we make material changes, we will provide reasonable notice (for example, in-app or by email) before they take effect, and we will update the effective date above.
17. Contact
Privacy questions or requests: support@planflowai.com
Operator: PlanFlow Trainer LLC, a PlanFlow AI product.
The privacy protections described here — de-identification before AI calls, consent-gated identity, append-only consent records, server-side enforcement, and full data export — are implemented in the product today, not just promised on this page. Where this page and the application code ever differ, the code governs and this page will be corrected.