This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Garmin Connect Courses API is a mess

Garmin recently introduced its Courses API which allows syncing Courses from various third-party services like Strava, Komoot and Ride with GPS to all kinds of new and old Garmin devices. More information can be found here: https://www.dcrainmaker.com/2020/05/garmin-launches-strava-komoot-route-sync-works-on-devices-a-decade-old.html

While the idea is very welcome and way overdue, its execution leaves a lot to be desired. I was looking forward to finally get rid of those terrible Connect IQ apps, but this is not what I expected. First of all this doesn't seem to be a true sync. Describing it as a copying mechanism would be much more accurate since the course from Strava, Komoot & Co. aren't actually kept in sync on the device - the are merely copied to Garmin Connect and from there to the device, which leads to all kinds of inconsistencies and basically requires you to manage courses in 3 different places: The device, Garmin Connect and the service the route originated from. If you delete the route in one of these locations the other two won't know about it.

I'd expect a robust syncing mechanism to always mirror the data hosted on Strava & Co. on the device. Admittedly at least edits to the route on its origin service are synced back to the device but that's basically the extent of the sync. If I delete a course on Strava it will still remain in Garmin Connect and on the device. Even if I just rename a route in Komoot it will add an identical, duplicated copy with the new name to Gamrin Connect and the device.

Furthermore there needs to be a way to initiate a sync from the device itself. Currently I have no way of knowing if the data on my unit is up to date. Since I can't tell when it was last synced. This is a problem as I want to make sure that I have the most recent course version with me before I leave for a ride.

It's an obvious comparison, but I'd really wish Garmin would handle route syncing like Wahoo - there's really no need to re-invent the wheel. I have both the Elemnt Roam and the Edge 530 for testing with me right now, still undecided which to keep, and the way Garmin handles route syncing is pretty much the only real dealbreaker of an otherwise pretty complete, reasonably priced unit. I only had the device for a week and still had to clean up countless abandoned and/or duplicated routes on several occasions in multiple locations, never quite sure if I was deleting the copy I intended to delete - I can only guess how messy and inconsistent my route collection would look after weeks or months of use. All of this is a non-issue on Wahoo's devices. I'm still not sure if it's worth the premium price, but getting basics like these wrong has me worried about sticking with Garmin.

Top Replies

All Replies

  • I agree this could be better. I finally realized you need to star the route in Strava and it will automatically get copied to Garmin, then you need initiate a sync. It's confusing when you need to explicitly use the 'send to device' feature either from a mobile app or the website, but when syncing from Strava you don't need to. Simply sync the device and it shows up. I actually like the Connect IQ approach where you select the route from a live updated list in Strava. I also like that the icon for a Strava route is different than the course synced via Garmin.

  • It's confusing when you need to explicitly use the 'send to device' feature either from a mobile app or the website, but when syncing from Strava you don't need to.

    I don't think that's true. My Strava and Komoot routes are synced the same way - my problem is that it's not very clear when the device will sync or has synced the last time. This should be an action that can be initiated from the device, similarly to how Wahoo handles it. Currently to make sure I'm up to date I have to open the Garmin Connect app, refresh my routes to pull them from Strava, Komoot & Co. and initiate a lengthy sync.

    Of course the bigger problem which I mentioned in my original post is that this isn't a true sync of those routes - it's merely a copy from the service to Garmin Connect and from there another copy to the device. This leads to all kinds of inconsistencies - delete a route on Strava and it will stay on Garmin Connect and the device. Delete a route on Garmin Connect and it will stay on the device. Rename a route in Komoot and you will receive a second, duplicated copy with the new name (and in addition to the one with the old name) on the device. At least edits (other than renaming) to the route on the original service will be pushed to Garmin Connect and the device, but of course that should be the bare minimum expectation of an API or syncing mechanism.

    I actually like the Connect IQ approach where you select the route from a live updated list in Strava.

    I think that's a very clunky way of transfering data and it has the same problems as outlined before - it's just creates a copy, not synced data as far as I know.

    If I authorize and connect my Strava, Komoot and Ride with GPS accounts to a Garmin device or Garmin Connect I'd expect the data pulled from there to stay in sync but Garmin's API doesn't seem to be degined with this goal in mind at all. I'm sorry to repeat myself but Wahoo handles this as expected and I wish Garmin would take a page from their book.

  • I just tested this again. These are the exact steps I followed:

    1) Create a new cycling route in Strava

    2) Star it

    3) Go to connect.garmin.com and verify course is in training -> courses -> created by you.

    4) initiate sync of Garmin edge from my iPhone using Garmin Connect app

    5) Open Navigation->Courses on the Edge and the route is there.

    I never had to select 'send to device' in connect.garmin.com or in the Garmin Connect app. I do need to do this with other courses that I create with Garmin.

    I do very much agree with you that this is a copy and not a sync. The garmin connects to wifi so I don't see why it can't just simply show the same thing I see in Garmin Connect. The Garmin Connect app and connect.garmin.com are always in sync with one another and so should the Edge. I like the idea of there being a refresh button on the edge to pull down modified courses. Looking at my courses  .fit files on the Edge they are only about 20-55kb each.

  • Some further observations after a little more usage: Frankly, this is getting worse and worse. Let me explain: For many of my courses I use a naming scheme that mentions a few key locations separated by an arrow "→", as in "Location A → Location B → Location C Loop".

    So today I created 2 similar loops that differed in one key location:
    - Location A → Location B → Location C Loop
    - Location A → Location B → Location D Loop

    Here is where the problem with Garmin starts: Garmin still seems to identify routes by name, not by a unique id (which surely is provided by Strava, Komoot and others), which in itself is such a bad idea that I have to wonder what they were thinking. More importantly though, they don't seem to take the full name of the route into account but only a limited number of characters. I'm not sure how many, but those two routes I listed above are basically one and the same route to the Garmin unit - it doesn't recognize the difference in the name of the routes, e.g. it doesn't compare the names until "Location C/D". Whichever route is edited or touched last will appear on my Garmin Edge 530 and overwrite the previous route - regardless of if it's a completely different route.

    To make things even more inconsistent I need to add that the Garmin Connect app actually recognizes those different route names and treats them as 2 separate routes - it's when they reach the unit that they are regarded as one and the same. This is madness.

    Let me emphasize again that this should be a non-issue if routes were only identified and synced by their id - I should be able to have 42 routes with exactly the same name and they should appear separately on the device. Furthermore renaming a route shouldn't create a new, duplicated one.

    To some this may seem like a minor detail but unreliable syncing methods and what has to be regarded as plain bad development practices are a huge problem for me.

  • Finally someone else smelling what I'm stepping in.

    Totally on board with your observations/suspicions, my tactic to get Garmin 'working' nowadays is to DISABLE ALL USEFUL FUNCTIONALITY (f%4king hell Garmin is this what you want from your paying customers??). My solution just to get a dang Strava route on my Edge 530 is to plug it in and drag and drop a .fit file over directly (necessitating the use of online .gpx to .fit file converters).

    Might sound like I'm complaining to much but it's just issue after issue after issue ...

    2x dodgy heart rate monitors (random number generators), and a cycling head unit that seems to have been designed as a psychological experiment in UX frustration. 

    Summed up: It doesn't do what it should.

    F&$king over it.

  • Just checking back in on this to see whether there’s a way to remove courses after they were ‘synced’ to GCM from Komoot and RWGPS. They persist in GCM even after I remove from Komoot and RWGPS and there’s not option to delete them in GCM.

  • The Garmin Connect app and connect.garmin.com are always in sync with one another and so should the Edge.

    The Connect app and the web site are looking at the same database (the same list of courses). There is no sycning going on here.

  • drop a .fit file over directly (necessitating the use of online .gpx to .fit file converters).

    You don't need to convert the file (if you are dropping it in NewFiles).

  • To make things even more inconsistent I need to add that the Garmin Connect app actually recognizes those different route names and treats them as 2 separate routes - it's when they reach the unit that they are regarded as one and the same. This is madness.

    This is the way it's always worked (starting with the original Edge models).

    Each of the companies uses their own numbers. The unit would have to keep track of the number and the company.

    The other companies had the benefit of adding the syncing when they were created.

    Garmin had to retrofit it on an old and established system.

  • You can delete ‘synced’ courses from Komoot and RWGPS on Connect web