There has been asks around how user can configure their details in the Kaizala open directory. In this post, we are going to discuss the Kaizala Open directory, which is also known as the tenant user list.
Kaizala open directory has a set of attributes at user level like user display name, phone number, email and Kaizala status. These attributes do not belong to a tenant but to the user. Apart from these, the tenant admin can add/remove attributes to fine tune the use of Kaizala to his tenant. These attributes can be updated by the tenant admin in the portal or by individual users from action cards.
For example, employees in a retail store will have attributes like branch name, job title, department, DOB, emergency name and emergency contact. The tenant admin can set DOB to be not editable at employee level – hence employees will not have the option to update it. The admin might require the store employees to update their own Emergency Contact details in the user directory. However, giving each employee access to the portal might be cumbersome and a privacy concern as he can see the company directory. Also, some employees may not have O365 licenses to login to the portal.
In that case, a custom card can be created which the employees can use to update their details on the portal. The card will fetch the attribute details for the user. The user can update the details and submit the card, which will in turn, update the user details in the tenant user list. Following is an illustration as to how a tenant admin can add tenant attributes in the group:
APIs to interact with the TUL
To fetch the attribute names (names are strings like “Emergency Name” , “Emergency Contact” etc), we use fetchTenantUserAttributeDetailsAsync which returns a list of <ID:Name> pairs from the tenant user list. To fetch the attribute values for his user-id, we use the fetchTenantUserProfilesAsync API which returns a list of <ID:Value> pairs for the particular user (values are attribute values of the particular user like “Mark Wilson”, “+911234356XXXX”, etc).
Finally, to update the user list values, we use the updateTenantUserProfileAsync API which updates the attributes of the user in the tenant user list. Below screenshot shows how this has been done.
Thus, in this post, we see how the user can fetch the attribute details, correlates the attribute names with the values at the client end and finally allows the user to update the details in the tenant user list. The zip file of the card is available here.