Privacy Policy
Haptics collects the minimum data needed to provide its features. Your ride data and AI Coach conversations are synced to Google Firebase so they work across your devices. We do not sell your data, show ads, or share your data with third parties except as described below.
What we collect and why
Account information
Haptics offers two sign-in options:
Sign in with Apple — Apple provides a one-time name and an optional private relay email address. Your name is displayed within the app but is never transmitted to our servers or stored in our database. If you choose to hide your email, Apple provides a private relay address instead — we never see your real email.
Sign in with Google — Google provides your name and email address to Firebase Authentication (Google's own infrastructure). Your name is displayed within the app but is never written to our database. Your email is held by Firebase Authentication for account management purposes only.
In both cases, your account is identified in our database solely by an opaque Firebase-generated UID (e.g. vK9mX3pQr2...) — never by your name or email.
You may also use the app without signing in (anonymous mode), in which case no identifying information is collected.
Ride and training data
Completed rides, imported routes, indoor workout records, and app settings (FTP, power zones, heart rate zones, weight, emergency contact) are stored in Google Firestore under your account. This enables cross-device sync and powers AI Coach analysis.
AI Coach conversations
Messages you send to the AI Coach are transmitted to our Firebase Cloud Functions backend, which forwards them to Anthropic's Claude API for processing. Your conversation history is stored in Firestore under your account so the AI Coach can maintain context across sessions.
Anthropic does not use API inputs or outputs to train its models. See Anthropic's privacy policy.
Rider memory
The AI Coach extracts a short summary of your training profile (fitness level, goals, preferences across cycling, running, and swimming) from your conversations and stores it in Firestore. This is used to personalise future coaching responses. You can view and delete this in Settings.
Where your data lives
| Data | Where |
|---|---|
| Live location during a ride | On-device only — never transmitted |
| Heart rate (Apple Watch) | On-device during the ride; saved into completed ride records in Firestore |
| Strava / Ride with GPS OAuth tokens | Stored securely server-side in Firestore (never your password) |
Third-party services
Google Firebase (Auth + Firestore + Cloud Functions)
Your account data, ride history, AI Coach conversations, and rider memory are stored in Google Firebase. Google's privacy policy.
Anthropic (AI Coach)
AI Coach messages are processed by Anthropic's Claude API. Anthropic does not use your messages to train AI models. Anthropic's privacy policy.
RevenueCat (Subscriptions)
Subscription purchases are managed by RevenueCat. RevenueCat receives your App Store transaction data (product ID, purchase date, expiry) to verify entitlements. We never see your payment information. RevenueCat's privacy policy.
Meta (Advertising measurement)
To understand which of our advertising campaigns are effective, we use Meta's advertising tools:
- Marketing website: our website uses the Meta Pixel to record page views and clicks on the App Store / Google Play download buttons.
- Subscriptions: when you start or renew a subscription, RevenueCat forwards limited purchase information (such as product and date) to Meta on our behalf, so we can measure at an aggregate level how many subscriptions our campaigns generate. No payment information is shared.
The Haptics app itself does not use the advertising identifier (IDFA) and does not track you across other apps or websites. The subscription measurement above is performed server-to-server and is not tied to a device identifier, and we do not show ads inside the app.
Our marketing website uses cookies for the Meta Pixel. Where required by law (for example, for visitors in the EEA and UK), we ask for your consent before these cookies are set. Meta's privacy policy.
Apple StoreKit (In-App Purchases)
All payment processing is handled by Apple. Apple's privacy policy.
Strava (optional, user-initiated)
If you connect Strava to upload completed rides, Haptics exchanges the OAuth authorization for an access token, which is stored securely server-side in Firestore under your account and used to post activity data to Strava's API. We never see or store your Strava password. Strava's privacy policy.
Ride with GPS (optional, user-initiated)
If you connect Ride with GPS to import routes, the OAuth access token is stored securely server-side in Firestore under your account and used to make API requests to api.ridewithgps.com on your behalf. Imported route data is stored under your account. We never see or store your Ride with GPS password. Ride with GPS's privacy policy.
PostHog (Product analytics)
We use PostHog to understand how the app is used — for example, which features are opened — so we can improve it. PostHog records pseudonymous in-app usage events along with basic device and app-version information, identified by a random analytics ID rather than your name or email. We do not use PostHog for advertising, and we do not sell this data. PostHog's privacy policy.
Google Analytics (Website analytics)
Our marketing website uses Google Analytics 4 to understand aggregate visitor traffic — for example, how many people visit, which pages they view, and which countries and referral sources they come from. Google Analytics uses cookies and records pseudonymous usage data; we do not use it to identify you by name or email, and we do not use it for advertising. Where required by law (for example, for visitors in the EEA and UK), we ask for your consent before these cookies are set. Google's privacy policy.
Location data
Haptics requests "When In Use" location access to track your position along a route during a ride. Your location data is used solely on-device for navigation and haptic cues. Location is never transmitted to us or any third party.
HealthKit data (Apple Watch)
The Haptics Watch app reads heart rate from HealthKit during rides. Heart rate data is used on-device to display real-time metrics and is included in completed ride records saved to Firestore. We do not share HealthKit data with any third party.
Firebase Crashlytics (Crash reporting)
We use Firebase Crashlytics to collect anonymous crash reports when the app unexpectedly quits. Crashlytics captures the stack trace, device model, iOS version, and app version at the time of the crash. This data is used solely to identify and fix bugs. Crashlytics does not collect your name, email, location, or any personal identifiers. Firebase privacy policy.
Analytics and advertising
We use PostHog for product analytics to understand in-app usage (see the PostHog section above), Google Analytics to understand aggregate visitor traffic on our marketing website (see the Google Analytics section above), and Meta's advertising tools to measure how well our marketing campaigns perform (see the Meta section above). We do not show ads inside the app, we do not sell your personal data, and aside from the advertising measurement described above we do not track you across unrelated apps or websites. Crash data collected by Crashlytics is used solely for debugging and is not used for advertising or profiling.
Data retention
Your Firestore data (rides, conversations, settings) is retained as long as your account exists. You can delete your account and all associated data by contacting us at the address below.
Children's privacy
Haptics is not directed at children under 13. We do not knowingly collect data from children.
Your rights
You may request access to, correction of, or deletion of your personal data at any time by contacting us. If you are in the EEA or UK, you have additional rights under GDPR, including the right to data portability and the right to lodge a complaint with your local supervisory authority.
Changes to this policy
We will update this page if our data practices change. The "Last updated" date at the top reflects the most recent revision.
Contact
Questions or data requests: [email protected]