Assign approval to specific Knowledge categories

cfhunt70
Giga Contributor

I am helping kick start the Knowledge initiative in our company. Based on the way our current Knowledge base is designed, I am needing to know if there is a way that you can assign people to approve articles in the categories of a Knowledge base. Currently, the Managers of the KB are the only people who can approve. We are wanting to divide the subcategories between teams and make the approval process more granular than giving everyone access to everything. Otherwise, we will have to create KB's based on the subcategories and move the articles to the new categories. The volume of our current KB will make this very difficult. Advice greatly appreciated!

3 REPLIES 3

Tim Deniston
Mega Sage
Mega Sage

You would need to add that logic to the Publish workflow that is being used. To determine which, go to Knowledge > Knowledge Bases and open your KB. There is a field in there that identifies the publish workflow. There is an approval in there that you can edit to route based on Category.


Shishir Srivast
Mega Sage

Please check this thread also if it gives some info for your purpose: Assigning approvers to Knowledge category


Michael Fry1
Kilo Patron

You can modify the Script includes - KBWorkflow. That's where you can override out-of-the-box calls for KBWorkflowSNC.



We just stripped out categories from our KB Catgories. I will share the script we used and called in the workflow:


getApprovers: function(knowledgeGR) {


              var answer = [];


              var _default = this.defaultGroupManager();


              if (!current.kb_category.nil()) {


                      var com = new GlideRecord('kb_category');


                      com.get(current.kb_category);


                     


                      if (!com.u_approval_group.nil()) {


                              answer.push(com.u_approval_group.manager);


                              return answer;


                      } else {


                              answer.push(_default);


                              return answer;


                      }


              } else {


                      answer.push(_default);


                      return answer;


              }