Before deciding on the best data loading strategy for your organisation, it is important to understand the data dependencies between the different user and group entities. This dependency is relevant as it implies a loading sequence for your data.
- A Contact Group is a collection of users that enables visibility to each other via their contact lists. Groups are defined according to the way you want to segregate your client relationships.
- Clients are the external users that you invite to use the system to be provided services from you.
- Staff are your internal users who provide services on behalf of your organisation.
Client users must belong to at least one group to be added to the system. This group must also have at least one active Staff user in it. This means that the staff user must have accepted their invitation before the client records can be loaded.
Staff users automatically can search for each other but need to be in groups to see their colleagues on their contact list. They also can only see a client contact if they are in a group with them.
Both staff and clients can belong to many groups. The combination of all of these memberships in the different groups creates the asymmetric address books for every user.
Because of these dependencies, you need to load groups, then staff then clients, particularly if you are doing it all automatically via CSV imports.