I think we can all agree that the management of custom fields in Freshservice is pretty basic and not very well thought through. This has caused much pain and suffering with Asset management.
Use Case:
We need to keep track of Assets classified as Information Assets for our Cybersecurity Framework to use in reporting, operational workflows and a number of other functions. These assets are potentially of any types: Hardware, Software, Applications, Services, etc. All of these types and categories already exists of course.
The logical approach would be to have a field that can be applied to all assets at root level, as any asset could have this classification. Ideally one would expect the Custom Field to indicate that classification should be applied at the top of the Asset hierarchy, so that one can filter on that field first, but of course the Default Fields cannot be edited. I understand why (however, it would have been nice to have a limited number of fixed custom fields one could use at this level for such a purpose) and now one is forced to apply this classification on one of the lower tiers of the Asset Hierarchy.
Considering this is needed on many Asset Types (this is a universal indicator: is the Asset Classified as an Information Asset?), it incurs duplicate custom fields all over the place. Furthermore, the query engine cannot filter on custom fields on Tiers and Assets at the Root level (these are not available unless the lower Tier(s) is selected first). Also true for the workflow automator query capabilities, unless you write Readers & Parsers (even then, it remains a nightmare as assets change over time).
Things gets more complicated if one considers that we have a large number of Information Asset related custom fields that needs to be added to all assets classified as Information Assets and this must now be done at 2nd Tier level at minimum to trickle down the hierarchy, causing even more duplicate custom fields.
What we’ve tried:
- Adding the required custom fields to each Root level Tier: Works, but one has to write queries on every Root Tier used, including new Root Tiers to get the full view of impacted Assets. This only works in the interactive Inventory filter. Trying to achieve this in automators, analytics queries & automated data exports (which seems to be another nightmare of note) is just impossible. Of course, remember that every Root Tier now has to have duplicate custom fields as well…
- Creating a new Root Tier called Information Assets and adding all the the types there and simply populating these as lists. Works perfectly, but you end up with a (not) glorified spreadsheet. Not to mention you lose all associations & links, relationships, ownership and automatic changes to the other tracked assets (consider having to duplicate an entry and maintaining changes for every asset that happens to be an Information Asset?)
Proposed Solutions:
- Allow custom fields in Default Fields (even if limited to 10-15 custom fields).
- Create a secondary Default Fields section for use as root level custom field table reference.
I love Freshservice, but sadly, it stays stuck in the “can almost do it perfectly” stage, leaving one to return to good old Excel.
I have another bugbear I will write about in a different post, which I have seen maaaany complaints and comments about: The inconsistency of custom field functionality across the product. The ticket module is close to perfect, yet none of the field capabilities/functions are available in the other modules...

