This is probably a stupid question, but after reading the Glide documentation and a few community posts, I keep coming across conflicting information.
So, what exactly can you do with row owners? What I mean by that is do you have to use the email address with row owners to keep data secure? Or can you set one or more other fields as a row owner? Because when using Airtable with Glide (pages to be exact), the approach of using email addresses just doesn’t really work.
For the most part, yes, you can only use Row Owners with an email type column.
The only exception to this is that a text column can be used as a Row Owner if that same column is configured as a Role in your User Profiles.
Damn, I figured that was likely the case. Thank you for replying so quickly.
Do you have any ideas / suggestions for my use case by any chance? I’ve been banging my head against the wall trying to figure this out but keep running into a deadend.
What I am currently building through Glide Pages is a dashboard of sorts for a food event. Each vendor will have their own profile and they will be required to each submit one “Taco Special”. How my setup is currently configured is I have a seperate Airtable table for Vendors, Tacos, and Users. With all three connected to each other with Linked Records.
For obvious reasons, I would like to have this secure so that vendors can’t edit (or visit) the profile of another vendor. So Vendor A shouldn’t be able to access the page for Vendor B (or their taco - Taco B).
The issue I have run into is I can’t seem to figure out the appropriate Row Owner configuration. The Lookup Field for the User’s Email Address on each record in Airtable is a Text column, not an Email column. So, Glide isn’t able to recognize it as an email. Which in turn, means that I can’t use it as a Row Owner.
Let me preface my comments by saying that I have zero experience with Air Table, so I’m not really familiar with how it interacts with Glide.
But the first question I would ask is do you actually need Row Owners?
Row Owners prevents data from being downloaded to users devices, and is only really necessary when you have sensitive/confidential data that needs to be protected.
But for your use case is the data that confidential? It might be that you can get what you need just by using appropriate filters and visibility conditions. So even though other vendors profile data would be downloaded to users devices, you could keep it hidden from view. Sure, if a user wanted to go digging with browser dev tools they might be able to discover the data, but they wouldn’t be able to change it. If that’s an acceptable risk, then that’s probably the simplest solution.
I wouldn’t say I absolutely need Row Owners, if anything it is more of a preference than a requirement. Just thinking about it now, the closest thing to private/confidential information that will be tied to each vendor is their invoice and receipt. Aside from that, the other information would be publicly available content - hours of operation, etc.
One of my concerns is if there are upwards of 100+ vendors, but a user is only managing one vendor, then that is alot of unnecessary data being downloaded. Which in turn affects the page load time.
My other concern is if all the vendor data is there, but merely hidden, it could easily all be scraped. I would then be stuck with having to deal with angry vendors. With them asking why they are being contacted by a third-party and if I provided that third-party with their information.
I mean at the end of the day, if I am not able to use Row Owners, then it isn’t an absolute disaster. I would just honestly feel a lot more comfortable with this knowing that everything is secure.
Yeah, I get you. And honestly, when it comes to security you’re usually (always?) better off erring on the side of caution.
Okay, well as I mentioned up front I don’t have any experience with Glide + Air Table, so best if I step aside now and hopefully someone better versed will jump in with some ideas.
Maybe @Robert_Petitto can help with this, I saw a couple of Airtable-related comments from him already.
Happy to help. Before I suggest a solution, are there multiple users belonging to the same vendor signing into the app that need access to their tacos?
Person 1A - Vendor A - Taco A
Person 2A - Vendor A - Taco A
Person 1B - Vendor B - Taco B
Person 2B - Vendor B - Taco B
Or is it only ever one user per vendor?
Person A - Vendor A - Taco A
Person B - Vendor B - Taco B
Person C - Vendor C - Taco C
Thank you so much, Robert! I really appreciate your help with this.
It would be more than one user per vendor (and each vendor has a maximum of one taco assigned to it). With that said, if it isn’t worth the hassle in order to have it work this way, then I can have it just limited to one user per vendor. I am more so just trying to future-proof it, in case I have a scenario where an individual owns more than one vendor or a vendor has multiple locations, both of which are a very likely possibility.
To give you a better idea what exactly this is for, check out this link. I am doing essentially the same thing, but with tacos.
Here is some additional context and if you have any questions, please let me know.
With my current configuration, I have the Vendors and Tacos as separate tables in my Airtable base, with them linked to each other with Linked Records. I am then using the same approach with Linked Records to tie the users to their respective Vendors and Tacos. I also added two formula fields, which essentially just pull the Linked Records into Basic Text fields, so I can do more with that data in Glide. I’ve included a screenshot below:
EDIT: Could what I am trying to achieve be as simple as this? For the Collection source, I set it to that Linked Field in the Users table, where the Vendors are. If I’m understanding this correctly, this would load only those records that are linked to the User, right? Since I am not requesting all of the vendors and then filtering / applying visibility conditions to the data. Could I then make the Vendors and Tacos fields Row Owners? I was also thinking that since the page itself requires a source and it doesn’t support this, I can simply select a dummy table in Airtable or add an empty Excel file. I almost feel like this is way, way too simple.
Robert, this is absolutely incredible. You went above and beyond with your support on this, I appreciate it more than you know.
I just had one quick question. I noticed near the end, when everything was configured, that on the Vendors table in Glide the values under the Users field had changed to “Vendor 1 Vendor 1”. Was that just a bug?
Not a bug: A relation column in glide displays a representation of the data it found. Both of the users for “Vendor 1” had “Vendor 1” as the role so it happened to pick up / display that field for some reason.
Ah yes, true!
Thank you SO much again for all of your help.
Once I have everything 100% complete, I plan on booking a 30-minute meeting with you, to get a second pair of eyes on everything. I actually first across your Twitter profile when I saw your reply to Connor Finlayson’s tweet about Glide.
Happy to help! Here’s a link to my calendly page if ever you’d like to book some 1:1 time:
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.