NocoDB is the new kid on the block when come to low code / no code industry. It was founded in 2021 at San Francisco, you can read more about it at here, as Airtable/SeaTables alternative (I guess?)
For a simple CRM database, NocoDB definitely offered more than enough features, however, when come to collaboration with permission, NocoDB is not so much on it, at least not yet.
Being an open source alternative, I must said the features in NocoDB is impressive, and something we can look forward in it.
In this article, I am going to show how we create a simpler CRM, with some workaround for different collaborators, due to some technical limitation of NocoDB
NocoDB is new, the functions are yet to complete, and some time buggy, hence still have some room of improvement. However, it is still a nice piece of work, which I believe can solve most of the issues, we just need to identify the limitation, and think of a work around for now.
- No collaborator column type. We have to create a separate table to store the sales personnel
- No row level / view level permission. We can’t do anything about it yet, have to leave with it for now.
Let's get started
Configure the tables
1. Go back to projects page, and create a project. Let’s call it “Simple CRM”
2. Again, under this project, assign the users permission for this project
3. Let’s create a table, called “Customers”
4. Create the relevant fields based on the requirement
5. For “Name” field, set as Primary Value. Please note, this is not a primary key, this is just the record display representative.
6. For “Status” field, the column type set to “SingleSelect”, and enter all the options for the status.
7. Create another table called “Sales Personnel”. This is due to the limitation of NocoDB which currently lack of collaborator field.
8. “Sales Personnel” table only need 2 fields for data, Name and Email. Please set “Name” field as Primary Value as well.
9. Next, create a field under “Sales Personnel”, call it “Customers” (You can call it any name you want), the column type is “LinkToAnotherRecord”
Let me explain a bit more how this work.
- “Customers” table is the main table to store customers’ data, while “Sales Personnel” table only storing the sales personnel (the collaborators)
- “Customers” table supposed to have a field called “Assigned To”, which by right is for the assignment of the Sales Personnel for the customer.
- Under NocoDB’s setup
- Main table is “Sales Personnel”
- Child table is “Customers”
- As 1 customer supposed to have only 1 sales personnel assigned, hence we are setup this column as “Has Many”. Meaning 1 sales personnel able to assign to many customer
- If your business scenario having different case, 1 customers able to assigned to more than 1 sales personnel, you have to use “Many To Many” here.
- Why we select the event “On Update” with “No Action” required: because update of sales personnel table will not impact the “Customers” table
- Why we select the event “On Delete” with “Set Null” required: This is to set the data to null value, and the related sales personnel is deleted from the table
Let's try it out
1. To try out, let’s enter the 2 sales personnel we have into the table “Sales Personnel”
2. To save your time, we prepare the sample data for “Customers” table as well, please download it from here. During import, you will need to the mapping of the CSV columns with the table columns.
3. Once the data being imported, you can assign the sales personnel at “Sales Personnel” column. The “Sales Personnel” column is created automagically in “Customers” table when you create the link record in “Sales Personnel” table
4. Now, both Rick and Shane able to login to NocoDB, and see the customers they being assigned to. However, having say that, you will need to take note
- Both Rick and Shane able to see each other customers
- Both Rick and Shane able to update any column of the documents, including assignment column, which is “Sales Personnel” column in “Customers” table