I would like to suggest that the following is considered for better Software Contract and License management:
Short description: Allow (software) contracts to have a hierarchy with primary, secondary and tertiary contracts.
In addition, allow the Installed function (an automatic feature) and the Users function (a manual feature) to both consume licenses from the Software License Count in the associated contract(s), including if in a hierarchy. Or create a dynamic association with the machine installed and the detected user? The manual assignment of Users to licenses are tedious and ineffective, causing this module to be fairly useless. (As a case in point: I have implemented Freshservice in 4 different companies that I have been IT Manager for in the last 8 years, and none of them could effectively implement and use the Software Tracking and Contract management modules, and opted for another solution...
This does mean that in the Contracts Module will need to calculate the total of all licenses purchased or removed and report on it as such.
We have used the "Relationship" feature, but again it is manual at best and extremely labor intensive and it does not maintain license numbers and cost.
Example:
Component Association to Main Contract:
Tracking of Licenses and financial calculations currently only works with the first line entry of the contract. It does not calculate the individual additions/removals.
To illustrate, I will use an example we came across in our business (multiple times in different organizations).
We have a number of licenses covering different components of a solution, each licensed and tracked separately under a single license agreement (and in fact a single solution).
Ideally the Contract should therefore look like this:
It does make sense to have separate "Dependent" contracts related to the master (if the above does not work and if each component has different license agreements and/or purchase/renewal dates), as the software tracking will need to understand that the detected licenses for actual installs needs to be allocated to the "Dependent" contracts, but roll figures up to the "Master" contract. Especially if hierarchical software (incl budgets) is managed by different individuals. This should make your implementation of such a feature much easier.
This could be true for a service agreement (MSP) with multiple services (with different SLA, agreements, implementation/renewal dates, etc) as well.
Additionally, there is a glaring shortcoming to the software tracking and contract management modules. Currently your tracking solution (automated discovery) uniquely lists every detected piece of software with version and publisher information, which is great. The issue is that often the information in the detected software install is different as the version data changes over time. Example:
WebStorm is installed on 5 desktops, one is listed as WebStorm 2023.2.1 and the others just as WebStorm. This duplicates (or even many times over) the entries for a particular piece of software. It is essential to know which versions are installed, but it would be great to be able to have a single master entry associated with the contract to accurately calculate consumption & usage and have the ability to associate other detected versions (possibly with a RegEx for automation) to this “Master”.
In context of my suggestion:
Master Software: JetBrains Solution
Total License Count to be used for allocation and tracking: 28 (= sum of all of the below)
WebStorm 2023.2.1 = 5 Licenses
WebStorm = 15 Licenses
DataGrip V1 = 3 Licenses
DataGrip Vx = 5 Licenses
This will greatly improve the efficiency and accuracy of software licenses/contract tracking and management and will, in fact, make the Software/Contract/License part of your solution truly professional. It will provide Freshservice customers with a single view of Software Contract Tracking, cost and actual utilization. Currently it is mediocre at best, sadly. It is almost easier to use a spreadsheet or another solution.


