Last week Whoop started rolling out in beta a new feature that allows external workouts to be synced into the Whoop platform, via Apple Health (on iOS). This means you can now complete a workout on any device that feeds into Apple Health. That includes basically everyone but Fitbit, so be it Garmin, Suunto, Polar, Wahoo, Peloton, Apple, and….Strava. And in the case of Strava, Fitbit does feed them, so technically you can even use a Fitbit here too.
Now first up – as noted, this is still a limited beta, thus roll-out is…well…limited. And also, it’s just Apple Health (meaning, just iOS).And it’s only one-way from Apple Health to Whoop (not the other way). But that’ll all change soon, which I detail down below.
There’s two main purposes of this feature today, they are:
A) Improve the automatic classification of workouts within the Whoop app/platform. Specifically, both the exact timing (start/end times), as well as the exact sports identified, and even GPS data (including distance)
B) Automatically import weight/height, date of birth (including updates to the weight)
However, one big item not pulled in today is heart rate data. Meaning, you must still wear the Whoop band in order for HR to be displayed. And without HR, Whoop won’t calculate any strain values. I had hoped we’d see Whoop import (and overwrite) the HR data, because that would fill in the accuracy gaps on the Whoop sensor. While the newer Whoop 4.0 sensor is massively improved over the Whoop 3.0 band, there’s still plenty of cases that could use love.
And further, this doesn’t address the issue of phantom strain, or imaginary workouts/strain (to which I’ve seen multiple cases of just in the past week alone). There continues to be no method to nullify those within the Whoop platform.
How it works:
The first step (aside from having an iPhone), is having the Whoop app invite you to the beta feature. I have no idea how Whoop decides on that. Mine just popped up randomly last Wednesday. It’ll pop-up a message like so:
Assuming this is what you want, you’ll then need to do the standard acceptance from Apple Health that the Whoop app can access your data. You’ll notice at at this time, Whoop is only readying from Apple Health, and hasn’t requested any permissions to write to Apple Health. Once successfully connected, the ‘Connect’ button will go away. I could see validity in making it a bit more clear that it’s actually connected at this point.
Once thing you’ll want to validate before you go to far down this road, is whether or not the device/app you use is configured to send the data to Apple Health. Again, each app does this differently, but I’m successfully pulling in data from Garmin, Wahoo, Polar, Peloton and Suunto data to Apple Health. Keep in mind that sometimes you have to open and close an app before it writes it to Apple Health.
If you want to double-check that a workout from a 3rd party is showing up in Apple Health, do this:
1) Open ‘Health’ App
2) Tap Browse tab
3) Then Activity
4) Then scroll down to ‘Workouts’
5) Then all the way down again to “Show All Data”
6) You’ll now see a list of recorded workouts sent to Apple Health, like this (or, if you go back one step and tap ‘Data Sources & Access’ you’ll see a list of apps):
In any case, assuming all that’s done, then it’s time to do a workout.
Now, in all my workout cases, I’m usually dual-recording. Meaning that Whoop is doing its thing, but I’m recording the workout on another device (Garmin/Wahoo/Polar/Peloton/etc…). So basically, I’ve got boatloads of examples. But ultimately, you probably won’t notice much difference. In fact, the best way to demonstrate this is actually a non-workout workout.
The reason I say that is that Whoop already auto-categorizes most of my workouts virtually spot-on. Largely because they’re more fast-reacting aerobic in nature, and thus easier to detect the start of. However, some strength, yoga, walking, etc… type workouts might not have immediate and sustained heart rates, and thus are harder to auto-detect the beginnings/endings of. And this ais to solve that, by allowing you to record it on your watch (or whatever app/device you have), and then have Whoop use that for the timings.
So to demonstrate that, I went out for a simple 14-minute e-cargo-bike loop, where I started my watch at the beginning. This is a great simple example because my heart rate never floats above 100bpm, in fact, it mostly floats from mid-70’s to mid-80’s.
After that loop, I saved the workout on my Garmin watch, and then it synced to Garmin Connect Mobile (the smartphone app) automatically. That happened instantly. However, the next piece varies a bit. Sometimes Garmin writes those workouts immediately to Apple Health, and then other times it takes a while. The fastest way to force it, is to simply close and re-open Garmin Connect Mobile. This is true of many other apps too, not just Garmin. You can see here, it shows in Garmin Connect, but not yet in Whoop:
But the other thing that needs to happen is that Whoop needs to be fully in sync. So if it’s backlogged (sync time shown at bottom of app only to 1:01PM, versus the 1:08PM of the current time), then it won’t merge everything yet. So ensure that happens.
Then I waited. Sometimes Whoop sees the Apple Health workout (from Garmin) immediately, and sometimes it too next to have itself closed/opened. Either way, once it finds it, you instantly get a push notification that a workout has been classified, and then you’ll see it on your days dashboard:
Obviously, with only 4.0 strain, this isn’t much of a workout with only 89BPM HR average. But you can see it’s classified here correctly for the exact start/end times. And this is a ride type that I do 3-10 times a day, as I bounce around the city, and almost never will it auto classify these (and frankly, I wouldn’t want it too). Point being, this isn’t Whoop automatically classifying this. This is being driven by the presence of a workout. You’ll also notice the HR is different than the Garmin one, side by side. Showing that it’s taking just its own HR data, not Garmin’s. Note Whoop slides in with a max at 105bpm while Garmin tops out at 96bpm. Obviously, this difference is irrelevant here, but just demonstrating it’s not the same values.
Again – the point here is mainly around automatic classification of activities. And in theory, it’ll also pull in GPS data as well as distance – similar to what you’d see if you manually recorded a workout using Strain Coach (within the app). But in practice, I haven’t gotten this to work even once with numerous GPS activities from either Garmin or Wahoo workouts. And these are activities that I’ve validated do have GPS data within Apple Health. So I presume that’s some bugs still to be worked out.
Similarly, it doesn’t seem to be updating my weight in my profile either. I tried a case of creating a weight point in Garmin Connect (e.g. from a WiFi Scale), and it writes it to Apple Health correctly, but Whoop never recognizes it or the change. My weight in the profile settings remains the same.
Finally, just put a finer point on the lack of heart rate coming through, below is an indoor cycling workout I did where I took the Whoop strap off entirely. You can see on the main page, it shows just the cycling icon with times, but no strain score for that workout. It also has a broken chart icon next to it. And then when I open that up, you’ll see the HR data is missing entirely. No strain is assigned here.
This workout was recorded externally and imported in, but despite having the heart rate data available to it, Whoop simply didn’t use it at all. And since I had purposefully taken the Whoop 4.0 band off and put it on the table next to me, it didn’t have any HR data of its own. Anyways, I just want to make that super clear, as even Whoop’s own FAQ page about this seems to kinda dance around this topic a bit.
That said, the rest of Whoop’s FAQ page about the feature is actually pretty detailed and lists plenty of scenarios and situations to keep in mind.
So, from a feature standpoint, this is a good first step – but it is indeed a baby step. I’d have loved to see them pulled in workout HR from those same workout files, because in most cases, that’s going to be more accurate than the Whoop band. It’s not that the Whoop 4.0 band is bad, but in most cases if you’re using another device, it’s probably an external HR strap/sensor – or, probably a wearable with an optical HR sensor. And most wearables tend to produce better results than Whoop does, at least on the wrist. Still, as I said in my written review and have seen over the past few months (and shown in many other reviews), in general, the Whoop 4.0 optical HR sensor for workouts is good enough to gauge training load/strain in most cases, only being more problematic in very high intensity short-duration intervals where it doesn’t usually capture the peaks quick/high enough.
Of course, as noted it’s currently iOS only – and only in beta/invite. Whoop says that they’re aiming to onboard all iOS people in the next few months. For Android folks, I did confirm with Whoop that they’re working on a similar integration for Android with Google Fit that they’re aiming to start rollout on “in the coming months”. Additionally, they confirmed also going to enable the reverse data direction flow – Whoop to Apple Health. Albeit, Whoop still hasn’t yet launched the previously promised data export option they talked about last summer when they launched Whoop 4.0. So, it remains to be seen how precise these timeline/plans are.
The other significant outstanding piece they really need to implement is allowing someone to zero-out a non-existent Whoop-created workout, meaning, getting rid of huge HR spikes that are simply sensor accuracies. For example, 45 minutes of 170bpm workouts when you’re simply doing the dishes. I’ve had two major ones in just the last 7 days alone, completely hosing up my metrics and strain scores (which in turn, can impact recovery score requirements). This is arguably the biggest blocker left to me recommending the Whoop platform, more so than any mid-workout optical HR inaccuracies.
When asked about that, Whoop said that “it’s definitely something that we took away from conversations with you and our members, and the product team is thinking internally about possible ways this can work within our system in the future.”
Whether or not that manifests itself as a feature, remains to be seen.
With that – thanks for reading!