Jun 27, 2023 07:17 AM
Hi,
I am reading this article by Airtable https://blog.airtable.com/interface-designer-permissions/ and where it talks about the use case for building a HR base so managers can see their team, people can see their own records etc. I don't know how to make this work in Airtable. Does anyone have any experience of doing this. I am on pro plan.
"For example, let’s say your HR department wants to create an app for performance reviews and calibrations. Only managers should be able to access their team’s reviews, while individual employees will still need access to their own review. Instead of creating multiple bases, share views, or interfaces, you can create a single interface with a few filters."
Jun 27, 2023 10:10 AM
The basis of this is to filter based on a User field.
You would filter the record where the User field is or includes the Current User.
This criteria is only available on Interfaces, so this specific filter won't work on the base.
Jun 28, 2023 02:21 PM
Appreciate that Matt - I can see how to implement that. I'm not sure about the "Only managers should be able to access their team’s reviews" bit, as this is fairly critical in a HR system too
Jun 29, 2023 06:15 AM
There are a few ways you can implement that, but it all depends on the structure of your data and your requirements.
Option A
If you have a 2nd field that identifies who the employee's manager is.
In this case I would have the filters where either Current User = Employee OR Current User = Manager.
Option B
(Easier but not very elegant) Just make a separate Interface for managers, where data isn't filtered based on user.
There are two main advantages of this approach. 1- If you have a more complex structure, where the manager of a manager needs to view things. 2- you can cater to different use cases because the manager's requirements are different than the employee.
Keep in mind, in Option A you can always tag multiple managers in the employee's record. So let's saw what you need is General Manager, Sales Manager, District Manager, you would tag all 3 of them.
Jun 29, 2023 06:27 AM
We have all the info in to be able to drive option A - I'm just trying to get my head around how to set the filter up in the way you've said it. Maybe we don't have the platform configured as we need to. I probably need to see the data configured in a table to get a sense of how it would work and I appreciate that might be too much trouble for you. here is how we have ours configured at the moment. I just cant map that into filters in an interface in a way that makes sense to me
Jun 29, 2023 08:56 AM
For this to work you'll need to change the Employee and the Manager fields type to User.
I can see Manager is a lookup, so you'll need to change it on the source table.
Next, when you filter, you'll choose Specific Records.
Here you would set it where:
Employee Name is Current User
OR
Manager Name is Current User
Jul 03, 2023 11:49 AM
Yeah I assumed as much, but I can't have these fields as users as they all pull from our master list of employees, which has tons of other info about those employees (salary, date of birth etc) and the primary field can't be a user within Airtable (unless they changed this recently).
Seems a bit of design flaw but as such back to square one
Jul 03, 2023 01:00 PM
Try this, add a new column to your Master List. Let's call it User, and have this type User.
Then on the new table, have a lookup that references that new column.
Now adjust your filters to filter based off of that.