Syncing from Glide to Excel

Have an app that uses Excel as a data source and has done for a few years.

I created a new screen that allowed a user to edit a record in a table (tab in Excel sheet). Nothing surprising there :slight_smile:

I have noticed that while I can add new rows to this sheet via my add/edit screen, one column doesn’t update (role).

Here is a new record being created via the app (not builder):
Screenshot 2024-02-29 at 12.00.40

Here is the data in the builder:


(takes several mins to appear)

You can see that the role is blank in the Glide builder (Excel).

If I edit a record I see the change in the app temporarily, and then the record reverts to its pre-edited state.


I’m confused about why this behaviour is so inconsistent. Obviously I can add records and they end up in Excel. Except the role column is blank. And I have been able to edit rows sometimes and others the edit is reversed almost immediately.

Really need help with this :slight_smile:

1 Like

Another example where I can edit some columns but not others. In this case the role column was not updated although the other cols were.

Is the role column setup as the “Role” inside your Users table?


Like this?

This is the users table (called something like admins, but it’s the table used to authenticate users when they login)

Also, and I’m only just realising this, I’m wanting a super admin role to edit the users table and assign roles.

Maybe this just isn’t possible?? I’ve always manually changed roles but this seemed like a simple edit form screen.

Users cannot change their role through the published app. A role can only be changed by updating the original data source or in the Data Editor.

Which means, no matter what I do via the app, the changes to the Role column in the Users table will never update via the app, even if the builder allows this.

Have I understood correctly? If so I just charged a client for something that can never work!

1 Like

Ah interesting that makes sense.

If I understand your work around:
Create a new col in Users table called “access” or whatever, then use that to control visibility of tabs.

Correct?

Yes that’s an alternative, but be mindful that visibility and filter conditions are not secure like Row Owners are when data is concerned.

Tab visibility is fine using any user issue column, but that doesn’t guarantee that the data is secure.

If I have a table for favourite colours with a col called “access” and access has a role in it, then do I make that column the row owners?

How does Glide know that the access col is related to a specific user?
Or does this only work for the Users table / Role column?

If that data is meant to be secure, private, and only accessible to those that own the data, then yes, you would use Row Owners.

When you configure your user profiles, you specify which columns in your user table contain the user’s Email and the user’s Role (if you choose to use Role functionality). Once configured, and when you apply Row Owners to data in your tables, Glide will check to see if the signed in user’s Email or Role matches what’s in the the Row Owner column. If it’s a match, then it sends the data to the user’s device.

The Role functionality is primarily intended to be used with Row Owners, but you can use it for visibility and filters as well if you are just trying to control the visibility of data that is not under row ownership. As I stated above, when you specify which column is your Role column in the user profile configuration, then Glide knows which role belongs to a user.

If you choose not to use the native Role functionality, you still have the option to use any column from the user’s profile row to control visibility and filters. You just need to specify in your conditions which column in the user table to compare against. It’s just not as data secure if you are not using Row Owners.

2 Likes