Overview
N+One integrates with Strava, Wahoo, WHOOP, and Garmin to bring ride files, health metrics, and device workout uploads into your adaptive training plan. Use the Device Integrations page to connect, disconnect, and check sync status.
This article explains what each integration shares, how planned workout uploads work for supported devices, how N+One handles duplicates and commute rides, and basic OAuth and troubleshooting steps.
Key takeaway: connect the sources you already use (power files, HR, sleep) and enable workout upload for Wahoo or Garmin if you want planned sessions on your device.
Where to manage integrations
Open the profile menu in the app header and go to Settings → Device Integrations, or go directly to /settings/integrations. The page title is "Device Integrations" and shows active connections with status, last sync, and connect / disconnect actions.
If you haven’t finished onboarding, you’ll be redirected to /onboarding before you can connect integrations.
What each integration syncs
-
Strava
- Connect Strava to sync activity files (rides) into N+One. Activities from Strava appear in your Training calendar and contribute to readiness and performance analytics.
- Commute rides can be excluded by the profile preference "exclude commute activities" (this preference is available in your profile and is default‑on). If you prefer commuter rides to count, toggle that option in /settings/profile.
- When N+One matches a completed Strava activity to a planned session, the UI deduplicates the entries so you primarily see the completed ride with planned context on the Training page (/training).
-
Wahoo
- Wahoo connects via OAuth to sync activities. When enabled, N+One can upload planned workouts to compatible Wahoo devices (ELEMNT, KICKR) or to the Wahoo ecosystem.
- Upload is an option you enable on the Device Integrations page — turning it on will push planned workouts so you can execute them on your Wahoo device.
-
WHOOP
- WHOOP syncs strain, recovery, and sleep data into N+One. That data feeds readiness calculations and helps the AI Coach recommend the right next session.
-
Garmin
- Garmin syncs activities and health metrics such as sleep, HRV, and resting heart rate. Those metrics are used by N+One readiness and performance models.
- You can enable planned workout upload to Garmin Connect / compatible Garmin devices from the Device Integrations page. When enabled, planned workouts are uploaded so you can ride them on-device.
-
Oura Ring (coming soon)
- Oura is listed on the integrations page with a note that full integration is coming soon. The card is inactive today and cannot be connected.
-
Zwift workout upload (coming soon)
Planned workout uploads: how they work
If you enable workout upload for Wahoo or Garmin on /settings/integrations:
- N+One uploads planned sessions so the workout appears on your device or in Garmin Connect / Wahoo device memory.
- Uploads are session-level planned workouts (interval structure) generated from the plan. The device executes the workout while you ride.
- If a planned session is later matched to a completed activity, N+One will deduplicate the calendar view so you see the completed activity with planned context.
Note: Zwift workout upload is a planned feature (coming soon). Do not expect in-app Zwift uploads today.
OAuth: connect, return, and messages you may see
Connections use OAuth. After you authorize a provider you’ll be redirected back to N+One and the return URL can include status messages.
Common query messages you might see on return:
- success — authorization completed and the integration is connected.
- oauth_failed — the OAuth flow failed. Try reconnecting (steps below).
- whoop_profile_failed — WHOOP profile lookup failed after auth. Try reconnecting; if the problem persists, contact support.
- unauthorized — the authorization was declined or expired.
If you see an error message in the URL after returning from a provider, go to /settings/integrations and try reconnecting for that provider.
Managing connections
- To connect: open Settings → Device Integrations (/settings/integrations), choose the provider, and follow the OAuth prompts.
- To reconnect: use the same flow from /settings/integrations. If a provider reports an OAuth error, try disconnecting and connecting again.
- To disconnect: open /settings/integrations and use the disconnect action for that provider. Disconnecting removes the active link between accounts; previously synced activities remain in your account unless explicitly deleted.
- Check the integration card for "last sync" and sync status after connecting. It may take a few minutes for recent activities to appear.
Duplicates, matching, and commute rides
- Training sessions come from synced integrations and planned workouts. N+One attempts to match planned sessions with completed rides; when matched, the UI deduplicates entries on the Training calendar (/training).
- If you see apparent duplicates, open the session detail (/training/[id]) to inspect whether one entry is a planned session and the other is a completed activity.
- Commute activities: Strava’s commute flag (or activity metadata) can be excluded when your profile preference "exclude commute activities" is enabled. That preference is default‑on in code paths; you can change it in /settings/profile.
Sync frequency and offline behavior
- Integrations use background sync via the provider’s API. The Device Integrations page shows last sync time.
- New synces and the AI Coach require network access. If you’re offline, previously viewed pages may work from cache; visit /offline for details about which pages are uncached or limited.
- The app runs as a PWA and may prompt you to install it; see /install-pwa for the install guide.
Troubleshooting checklist
If an integration isn’t behaving as expected, try these steps in order:
- Confirm your connection on /settings/integrations and check the card for errors or "last sync" time.
- Reconnect the service from /settings/integrations. Complete the OAuth flow and look for a success return.
- If an OAuth error appears (oauth_failed, unauthorized, whoop_profile_failed), try disconnecting and reconnecting. Check that you allowed the requested permissions on the provider’s side.
- Ensure your browser allows popups and third‑party cookies for the OAuth flow. Private/incognito windows sometimes block the flow.
- Check your network. Some features (AI Coach, new syncs) require a live connection.
- Verify the profile preference "exclude commute activities" in /settings/profile if rides appear missing.
- If planned workouts don’t appear on your device after enabling uploads, confirm you enabled the upload toggle on the Wahoo or Garmin integration card and wait a few minutes for the push to complete.
- If data still doesn’t appear, open /settings/support to report the issue and include the provider name, the error message shown, and the approximate timestamp of your last attempted sync.
Privacy and data notes
Integrations share data with N+One according to the permissions you grant during OAuth. See /settings/privacy or our public /privacy page for details on how we store and use integration data.
When to contact support
Use /settings/support if:
- An integration repeatedly fails to connect after retrying.
- You see unexplained OAuth error codes after reconnect attempts.
- Planned workout upload isn’t reaching your Wahoo or Garmin device after enabling the toggle.
Provide timestamps and screenshots when possible; it speeds diagnosis.
Quick first‑time connect flow
- Open the profile menu → Settings → Device Integrations (/settings/integrations).
- Choose Strava, Wahoo, WHOOP, or Garmin and follow the OAuth prompts.
- After returning, confirm the integration card shows a recent "last sync" and no error messages.
- If you want planned sessions on device, enable workout upload on the Wahoo or Garmin integration card.
- Check Training (/training) to see synced activities and how they match planned sessions.
Related reading
- If you use FTP-based plans, see the FTP article for context: /knowledge-base/ftp-is-a-snapshot-durability-is-the-real-story
- To learn how N+One analyzes rides automatically, see: /knowledge-base/automatic-workout-analysis-ai-insights
- For indoor training tips and Zwift context (Zwift upload is coming soon): /knowledge-base/winter-cycling-training-zwift-gear
If you’re stuck, open /settings/support — we’ll help connect the sources that keep your plan honest and adaptive.