Advanced Categories Configuration
Once defined the configuration for Users, Status, Notifications, etc. in DeepDesk, we should pay attention to the entity called Categories.
Note: categories represent a fundamental entity for the configuration of the Service Desk. In DeepDesk, infact, there is a specific module for their configuration.
All the information to insert categories in the system have already been discussed in: Service Configuration.
In this chapter we will describe all the advanced settings to configure Categories.
The rules to edit the visibility of the categories inside DeepDesk are displayed in the tab Model Visibility.
The configuration of this tab must be done with attention, after an analysis on how we want to implement our service.
To add a new Model Visibility rule, click the button “+”:
To edit or delete a rule use the buttons next to the rule:
Model Visibility fields are the following:
The meaning of the fields are:
|Model||The entity of DeepDesk for which we want to configure the rule.
Important note: if for a specific Model there are not Model Visibility rules, then the category is always visibile in that model / module. In this case, if we don’t define a Model Visibility for the Service module, entity Operations, every time a user (also in the user portal) browse a Category he will see all the categories. When a Model Visibility rule is inserted for that model (Module / Entity) then DeepDesk filters the category with the rules described in the following fields.
It tells if the category is visibile in the user portal.
For all interbal categories, that must be visibile only in the back-end forms, it is necessary to set this flag to No
PHP that identifies the visibility rule for that category.
In the screenshot, the category is visibile only for Service Types with ID 1,2,3,4.
The configuration with PHP code is very powerful and lets you define flexible rules on all the fields of an entity in DeepDesk.
To filter a category, for example, only for the Service Types with ID = 1 and ID = 2 (Incident and Request), use the folowing PHP code:
if (in_array($this->getModel()->getTypeId(),[1,2])) return true; else return false;
Where with $this->getModel() we can get all the fields of the selected model.
if (in_array($this->getModel()->getStatus(),)) return true; else return false;
Obviously, all those expressions can be more articulated, filtered by a lot of fields, to create and configure your Service Desk tool based on your needs.
Important note: if a Parent category is not visibile because of a Model Visibility, then all “Children” categories will not be visibile. Thus, to make a Parent category and all its Children categories not visibile, it is enough to set the right rule on the Parent category (and not for every Children category. This can speed up the configuration process).
The rules to define the visibility of the Categories based on the membership of the current user connected to DeepDesk are defined inside the Group Visibility tab.
This tab configuration is very simple, we can add in the field Enabled Groups the groups that can see the category.
Categories in the Service module
The internal behaviour of DeepDesk, talking about categories, is to create in the DataBase as many fields as the number of levels of the categories.
For example, if in the Service module, entity Operation we have 3 levels of categories, DeepDesk will create 3 fields in the table of the operations. The fields will be called “category1”, “category2” and “category3”.
To display the categories dynamically on the form, there is a generic field called “Category” that is a particular type of select-box. This field is not linked directly to the DataBase, but it dynamically sets the value of the categories based on the selection made by the user.
Keep in mind this when configuring the Form Templates or when extracting data from the DB or in the BI of DeepDesk.