Privacy Policy
Last updated: October 2026 (email sign-in and sign-in emails)
1. Information We Collect
When you use ZenMotion, we collect the following information:
- Account information: Depending on how you sign in, your Apple ID identifier, your Google account identifier + email, or the email address you sign in with, plus a display name (provided during onboarding). You can add another sign-in method later so the same account works with each of them.
- Email sign-in: When you ask for a sign-in code, we store a one-way hash of your email address and of your network address, never the plain values, together with a hashed code that expires after 10 minutes. We use these to check the code and to limit how many codes can be requested.
- 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 use the daily readiness check-in (currently not shown in the app), we save the score you picked (1–5), the date, and whether the score was suggested from your HRV or entered by you. This drives the adaptive training modifier that scales your workout targets.
- Effort ratings and gear: The optional effort rating you tap after an exercise (easy, hard, max effort) and the equipment you tell us you have. These tune your targets and which exercise variants you are offered.
- 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 email you a sign-in code and link when you sign in with email, and a security notice when a new way to sign in is added to your account. We don't send marketing email.
- 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. While Coach analyzes it, the app works on a temporary copy on your phone, which iOS clears automatically. 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 (with their targets and the coaching cue shown), 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.
- No images from your video. The app does not save preview images or frames from your video to our servers. No pixels of your video are transmitted or stored by us.
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. Sharing images and clips
You can share a milestone or an achievement as an image, or one of your saved skill clips as a short video, to Instagram Stories, to other apps through the iOS share sheet, or to your Photos library.
- Images you share are created on your device. We never receive or store your photos. The share image or video, including any photo or selfie you take for it, is put together on your phone. It goes only where you send it: we don't upload it to our servers or anywhere else.
- The camera opens only when you ask. iOS asks for camera access the first time you tap Camera or Selfie in the share screen.
- The app you share to has its own policy. Once you share to Instagram or another app, what happens to it there is covered by that app's privacy policy.
- What we count: Firebase Analytics records when a share is opened, completed or cancelled: what kind of moment it was, the format, where it went and whether numbers were shown. The image or video itself is never part of these events.
9. 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.
- Resend: Email delivery (Resend, EU region). Resend processes your email address and the content of the sign-in and security emails on our behalf, only to deliver them.
- 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.
10. 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.
11. 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.
12. Contact
If you have any questions about this privacy policy, contact us at support@zenmotion.app.