The Software Vertical Contract Renewals SuiteApp allows software companies who run on NetSuite to more easily manage any contracts linked to their perpetually-licensed and term-licensed products. The SuiteApp allows for classifying relevant items as User Licenses, Product Licenses, Module Licenses, Maintenance/Support Entitlements, etc. Items can be defined to renew on an annual basis or monthly basis and also can be renewed with a different item if applicable.

The Software Vertical Contract Renewals SuiteApp impacts the Order to Cash process in the following way. First, a Sales Order is created with ‘renewable’ items. On this Sales Order, the user may define an End User, Distributor, and Reseller along with which of these entities is the Ship-To and Bill-To. Upon save of this Sales Order, a corresponding ‘Contract’ record is created which stores information such as the Contract Start and End Date, the End User, the Reseller, and the Distributor, the value of the Contract, the Target Renewal Date, etc. After this Sales Order has been approved and invoiced, a scheduled script runs that will create ‘Contract Items’ (child record of the Contract) for all of the renewable items that were included on the order. The Contract Item record stores information such as the relevant Item, the Contract Item Start Date, Contract Item End Date, etc. The Contract Items have their own dates because there may be upsell orders in which additional items are added to the contract at a later date and thus have a different start date, of they may expire earlier than the Contract End Date and thus would have a different end date. Based on the system settings, a renewal transaction (Opportunity, Quote, or Sales Order) will be created automatically however many days before the Contract End Date depending on the configuration. The user may then process this renewal transaction by rejecting it and effectively closing the contract or converting the transaction to a live Sales Order and subsequently creating a linked Renewal Contract. The process outlined above would then repeat for all additional renewals.

This obviously can save users a lot of time and ease the management of customer contracts. However, this by no means implies that the SuiteApp does not come with some setbacks. Two of the more glaring flaws in this SuiteApp have to do with editing Contract records and adding additional items to an active Contract and making them coterminous with the existing items.

The first flaw to be addressed has to do with the editing of Contracts. The Contract Start and End Dates are driven by the dates that were set on the originating Sales Order. What happens if a few weeks down the road a user realizes a mistake was made and those dates need to be updated? Unfortunately, it is not as simple as just navigating to the Contract record, clicking Edit, and making the necessary changes. The SuiteApp actually locks these fields, among others, when accessing the record directly after the Contract has been created. However, these dates can be edited using Inline Editing:

NetSuite Contract List

Therefore, to workaround these locked fields, the user can simply navigate to the list of Contracts (can be the native Contract list or custom Saved Search), isolate the relevant Contract(s) using the filters, and make changes to the dates in this view.

As mentioned, a second flaw has to do with adding items to an existing contract and making them coterminous with the quantity of the same items on the existing contract so that they are merged on any subsequent renewal transactions. For example, say a contract is created with 10 User Licenses and these are active from 1/1/2021 – 12/31/2021. Six months down the road, the customer calls and would like to add 15 more User Licenses. Natively, the system will create these to be active from 7/1/2021 – 6/30/2022. As was stated above, Contracts and Contract Items store their own unique dates. In order for items to be merged and summed on subsequent renewal transactions, the Contract End Date and Contract Item End Dates must align. In this example, we have 10 User Licenses with an End Date of 12/31/2021 and 15 User Licenses with an End Date of 6/30/2021 but would like to renew all 25 on 12/31/2021. To align these, an approach is to create a Scheduled Workflow that pushes down the End Date set at the Contract level down to all of its corresponding Contract Items. This may not be best practice for all businesses, but in circumstances where like items should be renewed concurrently, this is a great approach:

NetSuite Contract Renewals

As can be seen in the image above, this is a Scheduled Workflow that runs on the ‘Contract Item’ record. Running this every night will ensure that the Contract End Date matches its Contract Items’ End Dates so that all renewal transactions include all necessary items.

This SuiteApp offers a lot to businesses who work heavily with contracts and the renewal of said contracts, and here are offered two solutions to some of the more commonly experienced setbacks.

As a leading NetSuite partner, we’ve established a genuine methodology to help maximize every dollar of your ERP budget and ensure NetSuite is meeting your needs. Learn more about our NetSuite support and optimization services.