Deep links - the mystery remains... :)

Hi all,
Some background:
Glide’s new feature announcement
image

Going back to David’s announcement here

And discussed in detail here

Well, I’m trying to make sense of it all.
How can we approach the need to allow deep links, for example to the client details/row?
Knowing that the links are dynamic (“changing”), has anyone been able to build a Make scenario (or App Script) that updates a short URL with the up-to-date links?
The endgame is to have something like this: “www.brand.com/clients/johndoe”. Or similar for other parts of the app, such as resources, events, etc.

Thanks

The links were only dynamic if you made major structural changes to your app, such as moving tabs around. Otherwise they were pretty stable.

Glide has recently changed the structure of urls so they are much shorter, and they are no longer base64 encoded. Basically it has a short code to indicate the tab you are on, a code for the screen, as well as the row ID. So urls are much more predictable than they use to be, but I’m not sure if they still exhibit any vulnerability as far as changing when the structure of the app changes. I haven’t tested that yet.

But now they are structured something like this for a tab level screen:
https://ctlm.glideapp.io/dl/6471c6

And something like this for a detail screen for a specific row item that’s embedded within a couple of screens:
https://ctlm.glideapp.io/dl/74c4fe/s/06b577/r/nNtBOTKPT6ybRarMqh8Puw/s/747b79/r/Rqzb8ydgRZ6ixzkv-nsHxQ

I think the code after the dl/ is the tab code. Each code after s/ is the code for that screen. And the code after r/ is the row ID of the final details screen.

I don’t know how vulnerable those tab codes and screen codes are, but if they are stable and unchanging after moving tabs and screens around, then it should be pretty easy to use a template column to retrieve the deep link in a column and not worry about them changing.

3 Likes

I have an example that uses short.io to generate branded shortlists of glide deeplinks.

Is this something you’re looking for?

3 Likes

Great to hear from you and a great app, as always.
Can you please direct me to where the shortened link comes into play? I couldn’t find it.
Thanks

When they share their profile, it’s a branded shortened link.

eg.

https://dygi.me/rpetitto

2 Likes

Basically the setup should be:

  • When a new row is added, you send the deep link of that row to Short.io, alongside your intended “slug”

  • Short.io generates the link

  • You update the link back to a column in your database.

  • Point the share button to share the short.io link

I have founded that you can update the link’s metadata, @Robert_Petitto , so it would be nice to have that as an option in the app (say you can give your users the ability to edit the title, description or image).

But that’s only when they share that specific link, say it won’t work when they copy the URL from the address bar of the browser. At the moment, Short.io does allow you to “mask” a link (say when you open the share link then the share link stays on the address bar, instead of the original link). However, that does need to have authorization from the original link’s owner, in this case Glide. Would be a nice thing to have to fully “own” our URL.

2 Likes

That’s great, thanks.
What I needed to know (and have already been answered) is that the deeplink won’t be changed by Glide.

Normally, no, but it was recently changed when apps switched over to the new computation model so that it falls in line with how Glide Pages works.

1 Like

Hey @ThinhDinh , thanks for being ever so helpful!
Would you mind elaborate a bit on how to send deep links to Short.io with slug? Is it to use services like Make?

Yeah, I almost always use Make to do something like that.

Basically you send the original Glide URL plus the slug you want (usually it’s a “kebab case” formatted version of the row’s “Title” value) through webhook to Make.

Then I process that with a Short.io module in Make, and use the Glide API to update the resulting link back to my database.