Connecting Strava and Google Sheets using IFTTT

Update (2016-06-19)

As of May 2016, IFTTT officially started supporting Strava, so for most people, instead of following the instructions in this article, I strongly recommend using this IFTTT recipe.

However, if you want to get at more-detailed Strava data such as moving time and elevation, I’m told that this is the only way. Happy riding!



Last year (2014) I made a goal of cycling or running to work at least 100 times. I ended up doing 172!

This year, I moved from Canada to London, but not before doing over 252 commutes! (Note: I stretched the definition of commute to include any time I saved at least 5km of driving or transit)

I won’t reach 300 this year (my original goal) but instead of going sans goal until 2016 (I am very motivated by goals, even if they are completely arbitrary), I decided to set a new goal.

Cycle 1000km on my “new” bike before the end of the year.

So I made a quick chart in Excel.

newgoal excel

But then I realized that this would be a great opportunity for some tinkering. You see, the Excel chart above requires the dreaded MANUAL DATA ENTRY. If there was a way for me to use my beloved Strava to automatically update a similar chart, I’d be set.

So I tried to plug into the Strava API. But then got a little overwhelmed when it started asking me about authorization codes and application names.

I then went to my favorite “automate everything” site, IFTTT. While they don’t support Strava directly, they do support RSS feeds, and FeedMyRide allows you to create an RSS feed from your Strava activities. IFTTT allowed me to easily create a recipe for hooking up RSS to Google Sheets.

Add in some parsing, some array formulas, and a nice chart et voila: As you can see here, I now have automatic updating of my progress toward my goal!

1000km complete!

I’m a little behind on my goal as I write this(November 24), so stay tuned to see if I manage to catch up!

Update (01/03/2016)

I did it! I ran into a few hiccups along the way, such as four (mostly) unrelated flat tires in two days, an unexpected house move closer to work, and a cold/flu that lingered for a couple weeks, but my mileage at midnight on December 31st, 2015 was 1011.9km*.

mission accomplished!
Mission Accomplished! Me celebrating hitting the 1000km mark on a sunny New Years Eve day at Tower Bridge

*One little disclaimer: I had to cheat a little by including the approximately 50km I cycled in Copenhagen while on vacation there, so technically my new bike’s 2016 mileage was just under 1000km.

Anyway, I found it a very powerful motivator to have my goal out in public for all to see (even though, if we’re being honest, I’d be surprised if more than two people saw said goal). Also, I really enjoyed trying to keep the blue line above the red line in real time. And I absolutely loved exploring the sights of London. I may not keep up the pace of 500 km per month in 2016 but I can see myself continuing to cycle to work most days.

30 thoughts on “Connecting Strava and Google Sheets using IFTTT”

  1. Very cool that your bike commuting goals inspired you to ride more, Shane. I just started using Strava to track my bike commutes this fall, so I could contribute to city planning input. Now I need to check out your automating system and see if I can set one up for myself! I have wanted to figure out a good use for the IFTTT anyway.

    Like

  2. Shane,

    That’s PERFECT! EXACTLY what I’m looking for. I’ve downloaded the recipe, how do I link MY Strava and My gDrive? The latter is already connected to IFTTT but not Strava.

    Ross

    Like

  3. This is awesome, I have been doing manual entry for years (oh dear) [http://www.bishopaucklandbiking.co.uk/p/distance.html] and this has just about made my day. I love IFTTT, so thanks for pointing out feedmyride, I had no idea.

    Also, well done on setting and achieving your goal!

    Like

  4. Excellent post, thanks for the info! I’ve got the IFTTT recipe working to go from Strava to my Google Sheet and that part is all good. Now I’m trying to figure out a good (i.e. relatively easy) way to parse the data in the sheet. That seems harder than I expected since the data basically comes in as a single row. Can you share any hints or tips on how you parsed the data in to a usable form? Thanks!

    Like

  5. If only the IFTTT recipe used moving time instead of elapsed time…. I have absolutely no interest in the time spent waiting for the lights to change.

    Like

      1. Even with Auto-Pause on (default for rides) Strava saves two different times; Elapsed Time and Moving Time, but the recipe only exposes “ElapsedTime” and “ElapsedTime in seconds”, not moving time which is what I need. When I look at the RSS feed at feedmyride, THEY do contain moving time and NOT elapsed time (I forgot to turn off strava a day in last week when commuting to work so moving time was normal 27 minutes, but elapsed time was 3 hours 😉 So I can use that day to look for..

        Like

      2. So what you’re saying, JMRD, is that there is still a use for this article! If Strava doesn’t expose MovingTime but the RSS does, then just follow the instructions here instead of using the Strava channel in IFTTT. Hope that works for you!

        Like

      3. Precisely. The article is useful as the IFTTT does not work in a meaningful way – I am not sure how it is built, but I’ll poke around in the Strava API and see if I can get it to give me the data I need in a somewhat structured and parseable format. But the RSS way is a good start

        Like

  6. Interesting information. A bit over my head at the moment, however, always hope!
    Congratulations on your biking success! Looks like your making the most out of London town & Europe. Great to see! Keep having fun!

    Like

  7. Just wanted to let you know that this is still proving useful. I know you have acknowledged that the presence of a Strava recipe in IFTTT renders your work here unnecessary, but as I wish to have elevation coming across to my Google Drive Sheet this is the only method that works. (I accept that elevation may not be such a key metric in London, but here in the Pennines it is a very important consideration) 🙂
    Thanks for the very clear instructions

    Like

  8. Shane – I too continue to find your IFTTT recipe very useful and prefer it to the “native” IFTTT version. Recently however I’m finding that your recipe does not trigger at all or it starts but then fails. One difference is that during the warmer months I upload my rides (Garmin activity file) directly to Strava. This time of year I’m using Zwift and it is uploading my ride data to Strava after I complete a ride.

    I’m assuming that having Zwift do the upload is somehow causing your recipe to not fire but I can’t figure out why. I was wondering if you have any idea what might be going wrong? Thanks.

    Like

      1. Hi Shane – Thanks very much for the response and the debugging suggestions. When I check “feedmyride” I *do* see the rides from Zwift. However, most of them (but not all) have a type of “VirtualRide”. One of them says “Ride” but I don’t know why that one is different. Interestingly, the one that says “Ride” *did* successfully get handled via your recipe so I assume that “Ride” has to be an exact match and that “VirtualRide” will not trigger the action?

        For now, I created a second applet and specified “VirtualRide” instead of “Ride”. It will take a few days to see if this does the trick.

        Also, I wondered if I could deal with this issue by using the IFTTT RSS trigger that does *not* require a keyword and instead fires whenever there is an update to the feed. Would you expect that to work? Or does the trigger have to be searching for a keyword?

        Thanks again for your help with this.

        Like

      2. So far (just a single ride) the non-keyword version worked properly. Hopefully this is all sorted out now. Thanks again for your help in getting this resolved!

        Like

  9. Hi Shane,
    Are aware if Strava has made any further changes that would disable your recipe to work ?
    Thanks
    Jacques

    Like

    1. Hi Jacques, it looks like it’s still working for me. Which recipe are you using? RSS to Google Sheets or Strava to Google Sheets? What isn’t working for you? Have you changed any passwords recently?

      Like

      1. I was having an issue too. Back on Mar 26, the RSS Feed service on IFTTT started reporting that there was a problem. Unfortunately there was no additional info to help with debugging. Then, yesterday Mar 30, everything started to work properly again.

        Liked by 1 person

  10. Hey Shane. I’ve been trying to create a live dashboard on Tableau using my running data from Strava. However, after I import the RSS feed into google sheets all my required data goes into the “summary” column. I’ve been researching if there is an automated way to separate the data into different columns but I’ve not found any except for “split text to column option” which needs to be done manually.
    So, I was wondering if you could help me out with automatically splitting all the data from the Summary column into different columns. Am I missing something simple?

    Like

    1. Hi Sharvan, thanks for the comment! Have you tried ARRAYFORMULA in Google Sheets? That should help make it so you don’t have any manual steps. If you’re still having trouble, send me and email and I can help troubleshoot.

      Like

Leave a comment