Syncing FitBit heart rate data with Zwift AFTER a ride?

Is there a way to sync heart rate data from a FitBit with a Zwift ride AFTER I’ve finished the ride?

I realise there’s no way for FitBit heart rate data to be sent instantaneously to Zwift as you’re riding, but is there a way to sync the heart rate data up afterwards for recording purposes i.e. posting to Strava etc.?


You could try this:


Thank you very much for the suggestion, unfortunately Fitbit’s indoor activities (which ‘spinning’ is one of) produce empty .tcx files on export. Even if i have a .tcx to .fit converter available, the .tcx file from fitbit is empty and therefore useless.

Fitbit really need to update their APIs to make this sort of thing easier!


1 Like

The best solution would be to get a HRM that can connect with Zwift so you don’t have to jump through all the hoops.

You really don’t notice the chest straps if they are adjusted correctly and Wahoo has one that works on the forearms.

1 Like

Hello Paul et all,

I just started using the Wahoo TickRFit. I don’t care for it on my forearm and use it on my bicep (comfort). I will do more testing to check for difference between the two positions.

I was using a Wahoo TickR. Most unreliable HRM I ever used. Most uncomfortable bro strap I have ever worn. HRM graph is all over the place. Unreliable!

Wahoo TickRFit HRM graph is a smooth, curving line. HR changes one beat at a time - very accurate. Not one signal loss. No more bro strap sliding down to my hips if I exhale hard or cough. Works wet or dry.

TickRFit uses this brilliant magnetic USB charger that just snaps on and off.

Quite different than the OP’s Fitbit, which I guess doe not communicate with Ant+ or BT?



Obviously you have never used the Garmin HRM-Swim, now that is the worst chest strap I have ever used.

I have used a Wahoo TickR for about 4 years and I think it’s actually very comfortable and a solid performer. I also you a Garmin HRM-Tri and that one is comfortable, but the place where it connects rubbed my skin raw (didn’t feel it happening and it was done during running). 

I have also read Wahoo saying that you can put the TickRFit on your calf if you so desire.

Anyway, I would not recommend ANY wrist-based HRM, there are just too inaccurate to be useful.

Just an update for anyone wondering how to solve this:

I have found a solution using 5 (well, maybe 9 simple steps) -

  1. Ride on Zwift as usual, but when setting up your Fitbit to record, set it as ‘Bike’ instead of ‘Spinning’. (this way the .TCX file you download actually contains heart rate data and isn’t just empty)

  2. Download your Zwift ride .FIT file from

  3. Download your Fitbit activity from the fitbit website - it’s in .TCX file format

  4. Use this amazing website to combine the two files into one .TCX file that contains heart rate:

* At this point, you’ll have a working .TCX file that you can upload, but on Strava the elevation is completely out because it’s using their default elevation map instead of the Zwift elevation.

  1. Open the .TCX file with a text editor, i use text Wrangler on Mac OSX.

  2. Scroll all the way to the bottom until you find the <Creator xsi:type=“Device_t”> line and select all the contents from that line all the way to the bottom of the file.

  3. Replace that data with this:

<Creator xsi:type=“Device_t”>
<Name>Garmin Edge 800</Name>
<Author xsi:type=“Application_t”>
<Name>Garmin Connect API</Name>

  1. Save the changes, MAKE SURE ITS STILL A .TCX FILE!!

  2. Upload to Strava and enjoy the correct elevation data, and your Fitbit heart rate data together in one place :slight_smile:

* I spent last night playing around and researching online as to why this was the case and it turns out Strava will only use the elevation data from within an uploaded activity if it was recorded on a device that they have on their database, and so that last section of code just fools Strava into thinking you recorded your activity with a Gramin Edge 800 (which is what the actual zwift.FIT files claim to be recorded on).


Hope this helps anyone who needs it!