Another Roles/Row Owners/Public Users/Private Users question

Continuing the discussion from What exactly is the difference between a Public vs Private user?:

No matter how many topics I read, I am always somewhat confused. The main problem is: since I use Roles to have Row Owners in other tables, I will run out of my Private Users allocation almost immediately once I get up and running.

This is how I set up my tables, and I thought others did the same. And if they do, shouldn’t they run into the same issue?
-I have a Users sheet. I keep it simple with email, name, some settings, etc. Users are Realtors.
-These realtors will then have an inventory of signs (they can have multiple) and eventually order installations.
-So I have an “Inventory” table, an “Installations” table etc. A realtor can have many rows within those tables that belong to them.
-I made the RowID in the Users table as the ‘Roles’. Whenever a row was created in the “installations” or “inventory”, the UserId Row ID would be pasted in and I made that column a RowOwner column.

any workarounds? How else would you connect tables?

Setting the RowID in the user table as a Role column seems pointless. Roles are only useful if multiple users share the same role. If you use RowID as the Role, then every single user is going to have a unique role/RowID.

I think it would be much better to write the user’s email address in the Installation and Inventory tables, instead of the users RowID. Then assign Row Owners to that email column. It will serve the same function, and then you can remove the RowID column from the Role setting in the user profile configuration, thus not marking a user as private.

1 Like

Happy new year!

I use to do this in the very beginning but then switched over to the rowid because if someone were to change their email address, all the historical information would then disappear from their account. It has been a while since I did the switch but I believe this was the reason.

Realtors might change their email address a bit more often as there is a possibility that they change brokerages. There is also the possibility that they might not have access to their old email (not sure if that matters).

Okay, that makes sense.
But the downside - as Jeff pointed out - is that every user will be counted as a private user.

What is your data source?
If you’re using Google Sheets, it’s very easy to do a global search and replace, so you could do that if/when users change their email address.

1 Like

I guess I have no choice though so I will go back to email addresses.

I am using glide tables. Any way to do the search/replace?

That’s tough. You can use Cmd-f (or Ctrl-f on Windoze) to search in the Data Editor, but there is no search and replace option.

The only automated way that I can think of would be using a combination of the API and an external integration tool such as Make. But that would be quite a bit of work to setup, and you’d almost certainly need a Business Plan so that you have full API access.

Actually, just thinking outside the box a little bit, you might be able to semi-automate it.
There is a technique that some of us have used in the past for automatically deleting old data.
You might be able to adapt the same technique for use here, but it would be quite a lot of work to setup, especially if there are several tables involved. And you’d still have to do a bunch of clicking (as an Admin, that has ownership of all rows) to apply it.

@Jeff_Hager first described the technique below:

If this is something you’d want to pursue, let me know and I can probably give you some more detailed guidance on how to set it up.

1 Like

I guess my plan was to make a custom form in the user section anyways because I need to update stripe when they chance their name or email etc. Would I be able to incorporate that in there? maybe it fires off to another table the old email and the new email and that gives me a cue to search and replace manually. I see that command F does work now to find things in the glide table. Definitely not the way I want to do things but looks like there is 0 workaround this way because of the private user problem.

Does nobody else have this issue when connecting tables? they just use emails?

If you want a fully secured setup where users can only access their own data, and no overlapping “roles”, then that’s the way to go.

If you need multiple users of the same “role” to own a row, then use “roles”, but deal with the private users limit.