Skip to main content

We have countless items loaded into our Service Catalog that needed to be for the Employee Onboarding / Offboarding piece.  We are not able to hide these from the HR requestor group because that will then not put that item in the ticket for Employee Onboarding.  How can we then hide all of these software / hardware items from their Service Request so they may navigate their Service Catalog better?

-Yes I am aware that I could re-do the whole name scheme of each one but that does not “hide” what they really have no need to see, and would only append them at the bottom of the list.  The idea is for these items to be part of their requests behind the scenes so our IT Department can process them in a orderly fashion.

Hi @Denise.S.P ,

A workaround here would be to add all the items that show up in onboarding/offboarding under a separate category so that this does not mix up with the rest of the catalogs. Atleast the ones that would not be used as a standalone request could be added under a separate category. 


I have tested, and perhaps I have this set up incorrectly.  I do have them set up in Service Catagories, however I see no place to make those catagories have restrictions.  Here is what I have found in testing.  I tested the Active Directory item that applies to every single user for every user role in Onboarding and Offboarding.  If I remove HR from the requester visibility, it will no longer appear when they submit Onboarding, Offboarding, or Employee Change requests.  This causes their Service Request area to be very cluttered and not clean for them to easily find the items they reference quickly.

 


@Denise.S.P  Would it work if you create a separate category called employee kit and change the category of Azure catalog to that. Similarly any catalogs that you don't want to show up could be added under that category to avoid those catalogs being mixed with the rest. So the catalogs would be still visible but just in a different category which they don’t use.


Unless I am missing a piece, the categories still show.  I have several categories created aside from each department and the items still appear even if they are moved into a different category.  The only time they do not appear is if they are hidden under the requester visibility, but at that point they also no longer appear in the On-Boarding / Off-Boarding options as well.


Hi @Denise.S.P , you aren’t missing anything. That’s correct it would still appear but just under a different category. I am not sure if there is anything else that could be done here yet


Hi Denise, 
I’m in a similar situation. Did you find a workaround/solution for this?

Thanks for your help.


Hello @Denise.S.P, I can share how we hide the items. First we created a separate category to house all the service items related to employee onboarding. Caveat...we did use a naming scheme to isolate them and by adding parenthesis it moved those items to the top of the list in the onboarding module which was a preference for us. We created both a restricted requester group and a restricted agent group and placed all the individuals that need to have access to onboarding in one of those groups. Then assigned the agent and requester visibility of each service item to those restricted groups. Lastly, we hid the category by using some jQuery in the portal layout pages under Admin > Help Desk Rebranding > Customize Portal. So what this does is prevents a regular requester from seeing the Onboarding service items. Makes them available to hiring managers, allows us to add them when building the onboarding kits, and makes them visible inside an onboarding request.

I wasn’t sure if you were using the employee onboarding module or not. The biggest thing we do for service item visibility is created service categories to house all the individual service items. Then created service categories to build bundles out of those items. Then used code to hide the categories holding the individual items. Leaving only bundles visible. Took that concept and fashioned it for Employee onboarding. Hope this helps. Take care!


Hi Denise,

would it be an option for you to not offer these items as Service Iteams at all to HR and instead have a workflow that creates tasks whenever a ticket with the service item Employee-Onboarding is raised?

So when they raise a ticket for onboarding, your agents just get a list of tasks on the ticket that they need to tick off in order for the ticket to be completed? Like, “Create AD account”, “Set up mailbox” etc. Agents can put time entries against individual tasks as well, so you could still see how long it took them to complete a certain step.

The Service Item could remain in the catalogue with restricted visibilty for just IT so that agents could still use it if they need to create accounts separately for whatever reason.

It is, admittedly, a bit of a quick and dirty approach ^^”


This is 100% a requirement for our business needs. Freshservice simply needs to detach the service portal visibility from eligibility for the Employee Onboarding functionality.

 

Yes, I can create automations that trigger with onboarding requests, but that’s a lot of work to build the automations for the different user types that we have. It also creates unnecessary overhead for the IT department. (What happens when those onboarding items change regularly? What happens when new job titles are created?)

 

Yes, I can group those items into a different category, then hide that category from end users, but again, that’s more work to set up as well as more overhead to maintain. I also need to have some service items visible for requestors & others not. AKA, requestors can ask for a replacement USB-C charger and it needs to also appear in the onboarding kit. I DON’T want requestors thinking they can order a replacement computer or phone. Segregating those requests by category is both arbitrary AND it simply fragments the service catalog further, which increases maintenance costs & decreases efficiency.

 

I am a global administrator and I need to be able to assign the Freshservice admin role to my helpdesk tech. He needs to be able to work with the employee onboarding system to modify the existing setup to align with changing business needs at my direction. What I CAN’T do is to create a bunch of customizations in Freshservice that he’s not able to update or maintain. That creates an overly complex system without any real justification and results in me being unable to delegate these tasks out.

 

Employee Onboarding requires the use of Service Items. If we need to do custom development & modifications to the system in order to make employee onboarding function properly without completely sabotaging the service catalog in the portal, that’s a problem. It’s also an indicator that we need to look at a different SaaS solution that will do the job properly instead of shifting the workload to us.

 

I promise I’m not trying to be a grump. I have almost 400 users and only one helpdesk person. I need to spend my time on Azure administration & other tasks. I can’t afford to be called in constantly to micromanage our ITSM or do custom dev work to enable functionality that should be out of the box.


Hello @Denise.S.P, I can share how we hide the items. First we created a separate category to house all the service items related to employee onboarding. Caveat...we did use a naming scheme to isolate them and by adding parenthesis it moved those items to the top of the list in the onboarding module which was a preference for us. We created both a restricted requester group and a restricted agent group and placed all the individuals that need to have access to onboarding in one of those groups. Then assigned the agent and requester visibility of each service item to those restricted groups. Lastly, we hid the category by using some jQuery in the portal layout pages under Admin > Help Desk Rebranding > Customize Portal. So what this does is prevents a regular requester from seeing the Onboarding service items. Makes them available to hiring managers, allows us to add them when building the onboarding kits, and makes them visible inside an onboarding request.

I wasn’t sure if you were using the employee onboarding module or not. The biggest thing we do for service item visibility is created service categories to house all the individual service items. Then created service categories to build bundles out of those items. Then used code to hide the categories holding the individual items. Leaving only bundles visible. Took that concept and fashioned it for Employee onboarding. Hope this helps. Take care!

@zachary.king can you share that code?


Hello @ekrasner. Here is the code we have. You would need to substitute your category IDs for hiding specific categories. 

<!-- Hide All service items, to just show the white screen with the text -->
<script>
jQuery(document).on('PageUpdate', function() {
setTimeout(function() {
if (window.location.href.endsWith("support/catalog/items")) {
jQuery("#catalog-list-items").hide();
jQuery("<h3 style='padding: 20px'>Please select from one of the categories on the left.</h3>").insertAfter("#catalog-list-items");
jQuery("#categories-list").click(function () {
jQuery("#catalog-list-items").show();
jQuery('h3:contains(Please select from one of the categories on the left.)').hide();
});
}
});
});
</script>

<!-- Hiding Categories -->
<script>
jQuery(document).on('PageUpdate', function() {
setTimeout(function() {
jQuery(""data-id='"+13000064493+"']").hide();
jQuery(""data-id='"+13000154178+"']").hide();
jQuery(""data-id='"+13000154048+"']").hide();
}, 200);
});
</script>

 


Hello @ekrasner. Here is the code we have. You would need to substitute your category IDs for hiding specific categories. 

<!-- Hide All service items, to just show the white screen with the text -->
<script>
jQuery(document).on('PageUpdate', function() {
setTimeout(function() {
if (window.location.href.endsWith("support/catalog/items")) {
jQuery("#catalog-list-items").hide();
jQuery("<h3 style='padding: 20px'>Please select from one of the categories on the left.</h3>").insertAfter("#catalog-list-items");
jQuery("#categories-list").click(function () {
jQuery("#catalog-list-items").show();
jQuery('h3:contains(Please select from one of the categories on the left.)').hide();
});
}
});
});
</script>

<!-- Hiding Categories -->
<script>
jQuery(document).on('PageUpdate', function() {
setTimeout(function() {
jQuery("(data-id='"+13000064493+"']").hide();
jQuery("(data-id='"+13000154178+"']").hide();
jQuery("(data-id='"+13000154048+"']").hide();
}, 200);
});
</script>

 

@zachary.king Thanks very much.  Just one other question, which portal layout page are you putting this code on?


@ekrasner You will want to set that code in the “Page Layout” section of the “Portal Pages”.


@ekrasner You will want to set that code in the “Page Layout” section of the “Portal Pages”.

Thanks. It works like a charm.  By any chance, have you ever tried to hide a service item as opposed to the category?  If we could, this would allow us to not have to hide the “All Services Item” category.  Just wondering.


@ekrasner You will want to set that code in the “Page Layout” section of the “Portal Pages”.

Thanks. It works like a charm.  By any chance, have you ever tried to hide a service item as opposed to the category?  If we could, this would allow us to not have to hide the “All Services Item” category.  Just wondering.

@zachary.king 


Reply