Row IDs

Glide now has a Row ID column!

If the data in your app changes regularly – i.e. rows move position, get deleted, added, edited – then it’s good practice to use Unique Keys. (read more about this topic here)

Now you can simply add the Row ID column in the data editor and Glide will take care of this for you! The Row ID column will add unique keys to each of your rows and you can then use that column in relations. Read more here:


This will save me A LOT of time! Great update :+1:


I was wondering if UID’s can be that handy, why not automatically add to all? If you don’t use them, no problem either.


If you’re already using email as unique value…what’s the advantage of RowID? In case user changes their email?

1 Like

I still have yet to convert over, but I intend to use row id. The attached post indicates why. In my case, student name is the only value I can rely on as a key to link all the tables. The problem is names could change due to misspelling or a name change. If they are changed, then all links to that student are broken in the app. I could use UNIQUE ID, but a lot of data entry happens directly in the sheet and Row ID will handle adding IDs to those new rows automatically.

Also items such as physical objects or non-tangible items sometime need a generated ID since they don’t have an email address. :wink:

@Robert_Petitto If you know your users can never change their email addresses then you’re fine. We will in the future release features that depend on row IDs, however.

1 Like

Followup question: without using a script, how would you use rowID with relations? Instead of passing email address in a form, you’d pass rowID instead to a different sheet and then relate?

@Robert_Petitto. Yes, with a form button you could pass the row ID instead of email or user name or product name.

Thanks, Mark. Working in edtech, I firmly believe in Unique IDs per user rather than using field names (emails can change!). Like @Jeff_Hager mentioned, it’ll take time to convert—I’ll need to get used to working with them over email addresses. Twitter is a good example. At any point you can change your handle, change your name or change your email address linked to your account.

In Glide, do you foresee the “App: Logins” sheet auto-generating a UUID per user (rather than email alone) to make this more of a reality? I base my profile page functionality in many apps off of this sheet.

1 Like

Soon you won’t need “App: Logins” anymore.


That’s the answer I was looking for.

1 Like

Me being me, I’ll probably still implement lookups to get name into the other sheets, but the row ID from the main student sheet will the ID used in all other sheets.

I understand email is easier in some cases since we have global access to it with Special Values, but in my case, only the coaches use the app. Students do not enter any data, so there is no need for their email as a unique value.

@Mark this would be a lot more beneficial if choice components saved the underlying ID to the sheet instead of the chosen name. :wink:


I hate to sound completely new, but what do I need them for now?

@Tim_Sullivan - App: Logins is the place we log any new logins to your app. You can use this list of logins in different ways. The most common is using =UNIQUE function to derive a unique list of users for your app.

I believe Mark is saying that we will have something soon that will be a better solution for this.

1 Like

Ok great, I thought I was missing out on some obvious, cool trick using these values.

Hi, I’m not sure how to use the Row IDs with relations. The field is filled with the id instead of readable name when adding or editing entity.

For example:

Hey @rhalaly.

This looks like you’ve chosen the Row ID column for your choice component. Could you describe what you want your relations to do and what your data is?

Yes, that’s true.

I’m new user of Glide (actually it a very COOL thing!) and I’m building a simple app (just to try Glide before a real app :slight_smile:) and I have a relationship between two entities. In my “test” app I tried to create Books and Authors, while different Authors can have same name (possible scenario in my real data).

So, I have to use the Row ID as a unique identifier. But when I use the Choice Component to set the relation id, the id is displayed and it’s not so user friendly.

My data structure:

  • Book
    • Name
    • Image
    • Author ID
    • Autor Ref (Relation : Author ID -> Author.Row ID)
  • Autor
    • Row ID
    • Name (not unique)
    • Avatar Image

That’s one limitation of Glide that I hope is fixed one day since it’s fundamental to dropdowns on most websites. You would have to fill your choice component with the Author Name instead of row id. Unfortunately you can’t select an author name and have it submit the row id in the background. The only solution I can think of is to change the author name enough to keep it unique. That way you can see that there is a difference between authors. Otherwise you would see a duplicated name without knowing who was who.


Nice! This is right now my problem :sweat_smile:… Because I think users do want to change their email sometimes …