What's the Best Customer / Provider approach when some users are "Both" (Customers and Providers)


we have Customers and Providers.

We thought of managing all those user together in the "All User" Object and using User Roles just to control the access to different scenes because sometimes a customer becomes also a provider.

But then when we want to add logged-in user fields to our invoices object or bills, we see it is not really possible to retrieve those fields (if there is we do not know how to do it) and we find the "Customer" "Provider" Connections start to be cumbersome as you have to connect "All User" to itself or to "Customer" Object but then you cannot access "Customer" Data Fields in the "Customer" Object as those fields are in "All User" Object.

Is it better to add Customers and their fields to a "Customer" Use Role Object and Providers and their fields to "Provider" User Role Object? We see that using this approach there is no problem accessing "Provider" User Roll and "Customer" User Role fields within a form or details page.

The issue we see in this approach is that user fields are not replicated to both User Role Objects, so that when a "Customer" becomes also a "Provider" he won't have his "Customer" User Role object data fields in the "Provider" User role Object.

What would be the correct the approach for this?



Using Conditional Values does not work (As Knack does not feature that condition in their Con). So we associated “Customer” and “Provider” User Role User to his own All User Record applying one-to-one connection from those User Roles to All Users and copying via API the User Role value to the one-to-one connection field.

In that way we are able to access All User Fields from other user roles through combo fields without having to duplicate information as we don’t need to create new fields and so we are now able to create so many roles as we need for every user.

Now the same user can be a Customer and a Provider.

Ok I’m testing a workaround for this.

In “Customer” User Role Object created a Connection field to User Object "Customer > All User"

Connect Customer to it’s own User Record Object

In Customer User Role Object Create Text Combo fields for every User field you need in Customer object. This way you have “All User” Object fields available in Other User Roles Objects.

The thing I have to solve now is how to associate Customer User Object to User Object using Conditional Values. So that we do not have to associate them manually.

I don’t know if this is the right way to do this.