Custom configuration page: group settings UI works, but values are ignored

Hi everyone,

I’m developing a Connect IQ watchface with a large number of settings, structured into groups using the manifest XML.

On Garmin Connect (Android), the group hierarchy displays correctly, but there's a critical issue:
The values from settings inside groups are completely ignored.
Even if the user selects or changes them, the values are not passed to the device/app.

On top of that, I need more advanced features like:

  • Letting users input a city name and getting immediate visual feedback (e.g. check if it’s valid or recognized)

  • More flexible UI: tabs, sub-sections, conditionally shown fields, live preview, etc.

So I’m considering creating a custom configuration page (HTML/JS) hosted externally.

Important requirement:

I’d like to avoid storing any user data on an intermediate server.
Ideally, everything should be done locally in the browser/watch, with no backend involved. Just encode the settings locally and send them to Garmin via garmin://custom_data/....

My questions:

  • Does garmin://custom_data/... still work reliably in 2025 on both Android and iOS?

  • Are there any known limitations (e.g. offline mode, app permissions)?

  • Is this now considered best practice for complex settings?

  • Any recent working examples or advice?

Thanks a lot for your help!

  • Search the discussion forum and you'll find groups and arrays have never really worked that well since they were added to app settings.

    You may want to look ate using on-device settings for your watchface.

  • Just encode the settings locally and send them to Garmin via garmin://custom_data/....
    Does garmin://custom_data/... still work reliably in 2025 on both Android and iOS?

    Can you elaborate on this? This is the first time I've heard of a "garmin:" URI scheme. I tried opening "garmin://foo" in iOS Safari, and I just get an error about an invalid address (Garmin Connect and Garmin Connect IQ are installed on my phone).

    Is "garmin://custom_data/" something that an LLM like ChatGPT told you about? If so, I think it was hallucinating.

    The closest thing I've heard to your solution is for the app on the watch to abuse OAuth to launch an external settings webpage, which would pass newly entered settings back to the app via the OAuth response.

  • it was chatgpt that suggested this solution, but I had my doubts about it, thank you.

  • There is a good chance that anything AI tells you about CIQ is wrong.  If you have a question, use the Garmin doc, search the discussion forum (it's got a decade worth of posts) or ask in the discussion forum

  • I would go further than that:

    There is a good chance that anything AI tells you is wrong

    It's very easy to get LLMs to spout plausible-sounding nonsense (that's literally their job) by phrasing questions in a certain way [*]. In this case, chatgpt told OP exactly what they wanted to hear.

    That's why LLMs are most useful when the user has extensive knowledge of the subject. e.g. It's often said that AI coding assistants may make senior developers better, but also make junior devs worse.

    [*] e.g.

    ^ this is nonsense as Garmin Clipboard is an app which has no corresponding website (not even as a section within the Garmin Connect website).