Privacy Policy

Last updated: September 2026

1. Information We Collect

When you use ZenMotion, we collect the following information:

  • Account information: Depending on how you sign in, either your Apple ID identifier or your Google account identifier + email, plus a display name (provided during onboarding). You can add a second sign-in method later so the same account works across both Apple and Google.
  • Workout data: Programs started, exercises completed, reps, sets, and performance metrics.
  • Coach measurements: When you use the Coach feature (handstand or planche), the analyzed form angles, hold duration, and form score are saved so you can track progress across sessions. The video itself is never uploaded — see section 5.
  • Readiness check-ins: If you tap the daily readiness card, we save the score you picked (1–5) and the tag you chose (e.g. "energised", "sore", "tired") along with the timestamp. This drives the adaptive training modifier that scales your workout targets.
  • Device information: Device type, operating system version, and push notification tokens.
  • Preferences: Your fitness goal, training days, and notification settings.
  • Challenge invitation data: When you first open ZenMotion after installing from a Challenge invite link, the app briefly reads your device clipboard to detect the invitation code so it can route you straight to that Challenge. See section 7 for details.

2. How We Use Your Information

  • To provide and personalise the app experience
  • To track your workout progress and streaks
  • To send push notifications (if enabled)
  • To improve the app through anonymised analytics

3. Data Storage & Security

Your data is stored securely on our servers. Authentication tokens are stored in your device's Keychain. We use HTTPS for all data transmission.

4. Apple Health (HealthKit)

If you grant permission, ZenMotion uses Apple's HealthKit framework to:

  • Write workouts to Apple Health when you complete a session, so they count toward your Activity rings.
  • Read your most recent body weight (only when needed) to calculate calorie estimates for workouts.
  • Read heart rate variability (HRV) — most recent overnight sample and a 30-day baseline — used only on-device to suggest a readiness score on the daily check-in card. The raw HRV values never leave your phone; we only receive the resulting readiness score if you tap to confirm it.

HealthKit data exchanged with ZenMotion stays between the app and Apple Health on your device. We do not transmit, store, or share your Apple Health data with our servers, with third parties, or for advertising. You can revoke HealthKit access at any time in iOS Settings → Privacy & Security → Health → ZenMotion.

If you use ZenMotion on Apple Watch, the Watch app mirrors the same workout and hold-timer state from your paired iPhone via Apple's WatchConnectivity framework. HealthKit permissions on the Watch are granted separately and can be revoked from the Settings app on the Watch itself under Privacy & Security → Health → ZenMotion.

5. Coach (video analysis)

ZenMotion's Coach feature analyzes short videos of static holds (handstand, planche, and other supported movements) to give you form feedback across five angles per skill (shoulder stack / protraction, hip stack / hip angle, spine or torso lean, elbow lockout, and head position or knee angle depending on the skill). Because the videos involve footage of your body, we designed the feature to keep them on your device:

  • On-device processing. Pose detection runs locally on your iPhone using Apple's Vision framework. Nothing is sent to a server for analysis.
  • Your video never leaves your phone. The clip you pick from Photos stays where it is. When you export a Coach-annotated video with the pose overlay burned in, that copy is rendered locally on your device and saved back to your own Photos library — we don't upload it anywhere.
  • What we save to our servers. Only the measurements: hold duration, the five form-angle readings for the session, an overall form score, the date, and the movement name (e.g. "Wall Handstand Hold" or "Tuck Planche Hold"). These power progress tracking so future analyses can compare against your history.
  • Thumbnails are opt-in. A small preview image can optionally be saved alongside a Coach session so you have a visual reference in your history. This is off by default. If you never turn it on, no pixels of your video are ever transmitted or stored on our servers.

You can delete individual Coach sessions from the app's Coach history, or delete your entire account (which cascades to all Coach data) from the Account screen.

6. Coach AI narrative (opt-in)

An optional feature that follows a Coach analysis and generates a short coaching narrative — one headline, one observation, one imperative — as text you can read alongside the numeric feedback.

  • Runs entirely on your device. The narrative is generated by Apple's on-device Foundation Models framework (Apple Intelligence). No prompt, no response, and no session data is transmitted to Apple, to us, or to any third-party AI service.
  • Off by default. The feature ships opt-in. You enable it explicitly from a toggle in Profile, or by tapping "Try it" on the inline hint that appears on saved analyses.
  • No new data is stored. The generated narrative is displayed inline for the current session. Latency metrics (how long the model took to respond) are logged anonymously via Firebase Analytics to help us measure feature health.
  • Requires iOS 26 and an Apple Intelligence-eligible device (iPhone 15 Pro and up). On older devices, the same card renders a rule-based fallback template — no AI is involved.

7. Challenge invitation links

ZenMotion supports sharing a Challenge with a friend by sending them a link (for example https://zenmotion.app/c/abc123). When someone taps that link before they have the app installed, the invitation page copies just the Challenge's invitation code to their device clipboard. After they install and open ZenMotion for the first time, the app reads the clipboard once — only during that first launch — to detect the code and route them straight into the Challenge they were invited to. Without this step, the invitation would be lost after install and they would have to find the original link again.

  • Read once, then never again. The clipboard is checked only on the very first cold start after install. Subsequent launches never touch it.
  • Nothing else is inspected. The app only looks for text matching our Challenge invitation format. Anything else on the clipboard is ignored and immediately discarded.
  • Nothing is transmitted or stored. The invitation code is used locally to open the correct screen. Your clipboard contents are never sent to our servers or to any third party.
  • You will see an iOS banner. Starting in iOS 14, the system displays a small "ZenMotion pasted from another app" banner whenever any app reads the clipboard. That banner appearing on your first launch is this feature working — not a background process listening for other content.

8. Third-Party Services

  • Sentry: Crash reporting and error tracking.
  • Firebase Cloud Messaging: Push notification delivery.
  • Firebase Analytics: Anonymous usage events (onboarding completion, workout completion, feature engagement) to help us understand retention and improve the app. No training numbers (reps, weights, rungs) or personally identifiable information is sent. Disabled in development builds.
  • Firebase Crashlytics: Crash symbolication and stack-trace collection when the app terminates unexpectedly.
  • Sign in with Apple: Authentication provider. Apple returns a stable identifier ("sub") and, if you opt in, a display name and relay email.
  • Sign in with Google: Authentication provider. Google returns a stable identifier ("sub"), your email address, and display name. Only used to establish and identify your account — we do not read your Google contacts, calendar, or any other Google data.
  • Cloudflare Web Analytics: Anonymous pageview counting on the zenmotion.app website. No cookies are set, no personal data is collected, and no data is shared with third parties for advertising. This runs only on the website — not inside the iOS app.

9. Your Rights

You can request deletion of your account and all associated data at any time from the Account screen in the app. You can also contact us directly.

10. Children's Privacy

ZenMotion is not intended for children under 13. We do not knowingly collect personal information from anyone under 13. If you believe a child under 13 has provided us with information, please contact us at support@zenmotion.app and we will delete the account and its data promptly.

11. Contact

If you have any questions about this privacy policy, contact us at support@zenmotion.app.