How to assign multiple team members to clients

I am working on developing a client portal/CRM application. This application will serve as a platform where my clients can access their assigned tasks and project deliverables. They will also have the capability to create new tasks and view information about the team members involved in their project, along with their contact details.

Additionally, the application will have a separate interface for team members. In this interface, team members will be able to add new deliverables for clients, view a list of clients they are assigned to, access project descriptions, stay updated with company news, and access other relevant information.

However, I’m facing a challenge in implementing the client and team member views. Specifically, I am uncertain about how to design the functionality that allows clients to view their respective clients or team members to see the clients they are associated with. I initially attempted to use relations and lookup, but I encountered an issue where I couldn’t assign multiple items to a singular list. I’m looking for solutions or suggestions to overcome this obstacle. Your input would be greatly appreciated.

This is a common pattern in Glide, can you give a practical example of where you couldn’t get it working?


For example if I want to assign Tasmin Woodward, Alan Eijk to the team for client Frasier Barnsley, so that when Tasmin Woodward clicks on her clients tab, and selects Frasier Barnsley, she can see the other team members and any contacts from the client. Also so that if Frasier Barnsley selects his team tab, he can see all the team members from our company who are working on his project.

Okay, sure.

There are two common ways to deal with this.

The first is to create a separate Link Table, with one row per User/Client combination. So you’d have a column for UserID, and a column for ClientID. When a user is assigned to a Client, a row is added to that table with their UserID and the ClientID. You can then build multiple relations to this table from your Users table (to get a list of Clients per User), and from your Clients Table (to get a list of Users per Client).

Another way is to use Joined Lists. This is slightly more complicated, but saves the extra table. The way this works is you could have (for example) a Joined List (comma separated) of ClientID’s in each row of your Users table that represents the Clients that each User is assigned to. To create a relation from that to the Clients table, you first need to coerce it into an array using a Split Text column, and then use that array to create a relation. You can either do this in the Users table or the Clients table (list of UserID’s) - which ever works better for your scenario. Adding/removing Users/Clients from the respective lists can be as simple as using a Choice component with multi-select enabled.

One thing you should do if you are building a Client Portal type App is familiarise yourself with Row Owners and Roles, and specifically using Roles as Row Owners. Assuming that data security (in the sense of ensuring Clients cannot see each others data) is important, then you will definitely need to be using Row Owners.

3 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.