SeaTable provide a lot of feature when come to low code application building. 1 of the most powerful feature is the table / view permission locking, which particularly useful when come to data sensitive application.
Unfortunately, it don’t come with row permission locking, but there is a workaround, although it is not included in the free package.
Pre-requisite check
Initial requirement
Let’s look at how it started, as well as the initial design
URL
https://seatable.io/en/
Platform
SeaTable is a cloud SAAS (Software as a service) platform, make sure the one who pay your salary are comfortable with that
Account
You will need a SeaTable account to start to use it.
Cost
The feature we required this time is not included in the free package, you will need at least a Plus package for advanced sharing permission
Let's get started
Examine the users
Create the table
1. Let’s start by creating a base, we call it “Simple CRM”
2. Then we create a table, call it “Customers”
3. Create the relevant fields for the “Customers” table. For the field “Assigned To”, set the Type to “Collaborator”, meaning we can make use of the users in SeaTable
4. For “Status” field, the Type set to “Single select”, and we shall give different options to it.
5. On top of “Customers” table, add a different view for different Sales Personnel.
At this moment, please take note
- Row permission locking is not yet available for SeaTable (as of the time this article published)
- The workaround is to create different view for different sales personnel
- We can’t do anything to the views yet, as there is no sales personnel being assigned to this base yet – we will get to this next
6. To assign the sales personnel with proper permission to this base, click on the share button at the top right corner. You shall see the pop up as below
7. Go to the “Custom sharing permissions”, and create a custom permission. We shall create 2 permission for the 2 sales personnel
- Rick’s Permission able to read/write the “Rick’s Customers” view only
- Shane’s Permission able to read/write the “Shane’s Customers” view only
8. Under the same pop-up, go to the section “Share to user”
- Select user Rick, and assign him with Rick’s Permission
- Select user Shane, and assign him with Shane’s Permission
At this moment, Rick and Shane are officially become a member in this “Simple CRM” base
9. Now, since Rick and Shane become the member in this base, we can now select them within the view setup. Let’s head back to the views we created just now
10. Let’s start with the first view, Rick’s Customers
10. Add the filter to “Rick’s Customers” view, set the field “Assigned To”, with the operator “has any of… “, and the value is Rick. Apply the same filter setting to “Shane’s Customers” view
11. Once we done with filter, remember to lock the view, this is to make sure both Rick and Shane not able to configure the view
Let's try it out
1. Let import some data to test, to make your life easier, you may download the sample data from here.
2. Let’s assign Rick and Shane to some of the customers
3. This is what Rick will see when he login
4. This is what Shane will see when he login
5. So, we just created a simple CRM with SeaTable, and we achieved the below objectives
- Enter customers detail
- Assign sales personnel for each customer (person in-charge)
- Restricted viewing by sales personnel, they only see the customers assigned to them