That’s correct. If you want the browser to open an app for you, you need to write the URL in whatever way the app supports, which is specified in the APK as intent filters. Some apps may not support this at all, and the URL you need will vary across all the apps that do. For less popular apps, you might have to dig into the AndroidManifest.xml file within the APK in order to determine what it supports, if anything.
For example, here is one relevant portion of the Spotify APK:
<intent-filter
android:autoVerify="true">
<action
android:name="android.intent.action.VIEW" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data
android:host="open.spotify.com" />
<data
android:scheme="http" />
<data
android:scheme="https" />
<data
android:pathPrefix="/album" />
<data
android:pathPrefix="/app/browse" />
<data
android:pathPrefix="/artist" />
<data
android:pathPrefix="/autologin" />
<data
android:pathPrefix="/charts" />
<data
android:pathPrefix="/collection" />
<data
android:pathPrefix="/connect-device-picker" />
<data
android:pathPrefix="/concert" />
<data
android:pathPrefix="/daily-mix-hub" />
<data
android:pathPrefix="/episode" />
<data
android:pathPrefix="/follow" />
<data
android:pathPrefix="/hub" />
<data
android:pathPrefix="/made-for-you" />
<data
android:pathPrefix="/radio" />
<data
android:pathPrefix="/running" />
<data
android:pathPrefix="/search" />
<data
android:pathPrefix="/show" />
<data
android:pathPrefix="/special" />
<data
android:pathPrefix="/station" />
<data
android:pathPrefix="/track" />
<data
android:pathPrefix="/user" />
<data
android:pathPrefix="/app/concerts" />
</intent-filter>
There are other sections as well, so you’d have to play around with the URL to figure out what works and what doesn’t.