OVERVIEW
This document provides an overview of the functional specifications for automating the service pack business model at Jobin and Jismi using NetSuite. Currently, the company’s operational setup lacks the capability to precisely monitor monthly working hours, with no provisions for accurately tracking the actual hours utilized. Consequently, the company requires a system integrated into NetSuite to enable precise tracking of their service pack business model, particularly for monitoring monthly working hours.
SCOPE
Jobin and Jismi employ a service pack-oriented business model that offers subscription-based services. Presently, project managers are facing challenges in accurately monitoring monthly work hours within NetSuite. To enhance their business operations and ensure accurate monthly work hour tracking, they aim to establish an automated system within NetSuite to streamline their service pack-based model.
PURPOSE OF THE DOCUMENT
This document aims to provide a comprehensive specification that covers the extent and functionality of automating the service business model in NetSuite. Its goal is to offer precise guidance to the development team on the required features and functionalities that needs to be implemented.
STAKEHOLDERS
1.Management
2.Finance Department
3.Team Leaders
4.Project Leads
5.Project Managers
SOLUTION OVERVIEW
 
Jobin and Jismi must implement a comprehensive system within NetSuite to effectively automate all aspects of their service pack business model and associated processes. This involves establishing item records for the service packs and incorporating them into the sales order. The sales order should automatically populate start and end dates, remaining hours of service, and grace periods. 
Additionally, a custom record for monthly work done needs to be generated each month for every customer, as revenue recognition occurs at the end of each month. An auto journal entry is created at the month’s end, leading to the recognition of income. Customers must receive notifications when their chosen service pack is reaching its end.
SYSTEM ACTORS
| USER/ROLE | FREQUENCY OF USE | ACCESS /FEATURES USED | 
| Admin | Less Frequent | Can give access to and delete records, create item records, create and approve sales order, create invoices, custom records, custom fields, approval of custom field, approval of journal. | 
| Project managers | Most Frequent | Creating sales order, approving sales order, create custom records, approve custom records | 
| Project leads | Most Frequent | Creating sales order, approving sales order, create custom records, approve custom records | 
| Team leaders | Most Frequent | Creating sales order, approving sales order, create custom records, approve custom records | 
| Accounts manager | Less Frequent | Create invoices and accept payment, approve journal entry record | 
PROCESS FLOW

FUNCTIONAL SPECIFICATION
Item set up
Use case –
As per the business model, service packs constitute the items integral to the business. These service items must be configured within the NetSuite account by the administrator. Within the item record, there are fields for entering the item name, item description, and price. Additionally, two custom fields must be established in the item record to capture the Hours of Service and the Service Period. The unit of measure for hours of service should be in hours, and for the service period, it should be in days. The income account for these item records is the deferred income account.
Field level specification
| Field name | Field Type | Mandatory | Editable | Default value | Data source | 
| Hours of service | Integer | yes | yes | User entry | |
| Service period | Integer | yes | yes | User entry | 
Creation of sales order
Use case
 
Sales orders are generated by team leads, project leads, or project managers following discussions with the client. Within the sales order, there should be an option to select the customer from a customer list and choose a service pack based on the customer’s requirements. The body level of the sales order should contain fields for the customer’s name, start date, end date, sales order number, sales rep, date of the sales order, and total hours of service. At the line level of the sales order, there should be options to choose items, along with fields for item price, amount, and quantity. Custom fields need to be established in the body level of the sales order record for Remaining Hours of Service, Grace Period, and a checkbox to Override Period.  
When selecting items, all related fields, including total hours, should be automatically populated from the item record. The unit of measure for the field ‘Remaining Hours of Service’ is hours and that of ‘Grace Period’ is days.
Upon receiving payment, the start date and end date of the service pack should be automatically filled in the corresponding field. However, if project managers and team lead prefer manual input, they can check the checkbox ‘override’ and as a result the automation will not work.
If any changes in the Rate from the predefined rate, then that can be applied to the SO by adding a body level discount.
After entering and saving the sales order, a standard approval button will become visible. After the approval of the sales order, it is necessary to inform the finance/accounts department as per the normal practice so that they can generate the corresponding invoice accordingly.
Field specification
| Field name | Field type | Mandatory | Editable | Default value | Data source | 
| Remaining hours of service | Decimal | yes | no | no | Automation | 
| Grace Period | Integer | no | yes | no | User entry | 
| Override Period | Checkbox | no | yes | no | User entry | 
| Start date | Date | no | yes | no | User entry/Automation | 
| End date | Date | no | yes | no | User entry/Automation | 
| Total hours of service | Integer | yes | no | no | Sourcing from Item Record | 
Buttons and icons
| Buttons / icons | On click event | Other event | Visible | Navigate to | Users | 
| Approve | Will approve the sales order | yes | Project manager/Project lead/Team lead | 
Creation of invoice
Use case –
Upon receiving notification of the approved sales order, the accounts department will proceed to generate invoices corresponding to the approved sales order. These invoices, upon creation, will be sent to the customers manually by the accounts department, who will then make payments. Following the company’s policy, the service pack commences, and related work initiates only after the complete payment is received from the customer.
Creation of payment
Use case-
Upon receiving payment from customers, the associated service pack invoices are accepted by the accounts department, and subsequently, the received payment is documented in NetSuite as deferred income. At the same time, the start date and end date of the service pack associated with the respective sales order will be automatically filled within the sales order. The start date and end date fields are automatically populated only when the project manager/team leads do not check the override checkbox in the sales order. Simultaneously, an email will be dispatched to the project managers, project leads, and team leads, notifying them the receival of payment from the customers.
The automatic population of the start date and end date is contingent on two conditions: 1) full payment receipt for the corresponding sales order and 2) the creation of an invoice for a sales order linked to the service pack. The end date is auto calculated in such a way that
End Date = Start Date + Service Period (Days) + Grace Period (Days)
Upon receiving payment from customers, the amount in the invoice will not be recognised as income and, consequently, will be recorded in the deferred income account. In the case of Indian customers, the emergence of tax issues will be accounted for in the GST advance account.
Daily Consumption Tracking
Use case –
The company recognizes income received from customers only at the end of each week, and until then, it is treated as a liability. A custom record (‘Daily Consumption Tracker’) will be provided to TLS to track the Consumed Hours daily basis. So, the PM/PL/TL should create one Custom record entry per customer for each day according to the worked hours on the corresponding day.
At the body level of the custom record, fields such as Customer name, Sales Rep, Date of Transaction, Sales order, and Memo will be included.
As a sublist, items and their details will be displayed, featuring Item Description, Quantity, Rate, Amount, Location, and Resource. The item description corresponds to the JIRA code of the task, quantity represents the effort on the task in hours consumed, and resource denotes the name of the resource associated with the task. The item sublist displays tasks linked to projects as individual items on separate lines.
Field specification
| Field name | Field type | Mandatory | Editable | Default value | Data source | 
| Sales order | list/record | yes | yes | no | User entry | 
| Item name | list/record | yes | yes | no | User entry | 
| Item quantity | Decimal | yes | yes | no | User entry | 
| Item description | Free form textbox | yes | yes | no | User entry | 
| Resource | list/record | yes | yes | no | User entry | 
Saving the Daily Consumption Tracker
Use case
Upon saving the record, if the total hours consumed for all tasks within the custom record exceed the hours of service allocated for the service pack, an alert message will be triggered, and the record will not be saved. Otherwise, the custom record will be successfully saved. Each time changes are made; the validation check ensures that the consumed hours do not exceed the allocated hours of service.
Upon saving custom record, a button will be displayed at the top of the custom record in view mode: Print. Clicking the print button will generate a PDF of the custom record in PDF format which serves as a completion note. The PDF will contain a detailed view of the Daily activities along with the Total Service Pack Hours and Remaining Hours of service
Buttons and icons
| Buttons / icons | On click event | Other event | Visible | Navigate to | 
| Will generate the print of the custom record in PDF format | yes | PDF print of custom record | 
Daily Activities based on Update in Daily Consumption Tracker
Daily, an email will be sent to the Customer and supervisor of the Sales Rep which includes the Completion Note PDF of the corresponding day. This will be sent on a scheduled basis at 9 pm IST by considering the Consumption Record that are created for that Date.
Simultaneously, the remaining hours of service field in the corresponding sales order will be automatically updated by deducting the total hours consumed for that day in the custom record from the originally allocated hours of service.
In addition to that, an automated email will be sent to TLs every morning at 8 AM to notify all the Active Service packs (regardless of the Tracker records) and its Remaining Hours to be Consumed. This will enable the TLs to decide whether they can work on the corresponding project which are subjected to Service Pack Service
Weekly Recognition of Revenue
Use case
On a weekly basis (Every Saturday at 5 pm IST), the journal entry record will be automatically generated with Approved status in NetSuite for the Daily Consumption Tracker records created for that week. Within the journal entry record, three custom fields are established:
- Checkbox – ‘Service Pack’: Indicates whether it is related to a service pack or not.
- Related Sales Order: Represents the related sales order of the custom record.
- Related Invoice: Identifies the related invoice of the custom record.
These custom fields are disabled on UI but automatically populated when the journal entry is created through the proposed automation.
The corresponding journal entries will be documented at the line level. The initial line will represent the reversal entry for the deferred account, while the subsequent entries will detail the associated income accounts related to the items in the custom record.
Once the Journal Entry created with Approved status, the income will be recognized.
Field specification
| Field name | Field type | Mandatory | Editable | Default value | Data source | 
| Service pack | checkbox | yes | no | no | Automation | 
| Related sales order | list/record | yes | no | no | Automation | 
| Related invoice | list/record | yes | no | no | Automation | 
Notification on expiry of service
Use case
The service pack’s validity expires based on two conditions: 1) when the hours of service are exhausted, and 2) when the service period concludes.
- When the hours of service are exhausted
A scheduled process will monitor the Remaining consumption everyday basis and 4 Notifications will be sent to customer including the status of the existing pack as well as the Service Pack offered by JJ
- Notification mail on 80% of Hours is consumed
- Notification mail on 90% of Hours is consumed
- Notification mail on 95% of Hours is consumed
- Notification of Service Interruption on 100% of Hours is consumed
Note: Only one email will be sent to the customer based their service pack status even if multiple conditions are satisfied with a single day
- When the service period concludes
- When service period concludes – An email must be dispatched to customers before the service period’s expiry date, with team leads and project managers in Cc.
- Before 30 days
- Before 20 days
- Before 10 days
- Before 5 days
This communication will notify them of the expiration and include details of existing service packs provided by JJ, allowing them to renew with a new pack before the deadline.
- After the date of expiry– Additionally, a final email will be sent the day after the expiry date, informing the customer, with the project manager and team lead in Cc, that the service pack has expired, and the service is no longer available.  
 
 Simultaneously, a journal entry record will be automatically generated for the remaining hours of service left for the customer based on the service pack. This entry will be recognized as income and transferred to a specific common revenue account. On the line level of that journal entry record, there will be only two lines.
Reports for better analysis
Use case
The company required to produce reports derived from sales orders, the generated custom record, and journal entries. In NetSuite, there are pre-existing standard reports, and in addition to those, custom reports can also be generated.
Reports need to be generated periodically to identify:
- Total hours consumed on period basis.
- Total revenue generated through Service pack on a specific period.
- Total number of customers chosen service packs.
- The most in-demand service pack.
Email for Notification
- An email will be dispatched to the project managers, project leads, and team leads, notifying them the receival of payment from the customers.
- Daily, an email will be sent to the Customer and supervisor of the Sales Rep which includes the Completion Note PDF of the corresponding day. This will be sent on a scheduled basis at 9 pm IST by considering the Consumption Record that are created for that Date.
- In addition to that, an automated email will be sent to TLs every morning at 9 AM to notify all the Active Service packs (regardless of the Tracker records) and its Remaining Hours to be Consumed. This will enable the TLs to decide whether they can work on the corresponding project which are subjected to Service Pack Service
- When the hours of service are exhausted
A scheduled process will monitor the Remaining consumption everyday basis and 4 Notifications will be sent to customer including the status of the existing pack as well as the Service Pack offered by JJ
- Notification mail on 80% of Hours is consumed
- Notification mail on 90% of Hours is consumed
- Notification mail on 95% of Hours is consumed
- Service Stop intimation on 100% of Hours is consumed
Note: Only one email will be sent to the customer based their service pack status even if multiple conditions are satisfied with a single day
- When the service period concludes
- When service period concludes – An email must be dispatched to customers before the service period’s expiry date, with team leads and project managers in Cc.
- Before 30 days
- Before 20 days
- Before 10 days
- Before 5 days
- After the date of expiry– Additionally, a final email will be sent the day after the expiry date, informing the customer, with the project manager and team lead in Cc, that the service pack has expired, and the service is no longer available.
ASSUMPTIONS
- Only one service pack will be added to a sales order
LIMITATIONS AND RISKS
- Multiple resources working on the same item task cannot be recorded in the custom record
- There is a limitation in automatically always setting the start and end dates in the sales order, as there may be instances where the client requires the flexibility to adjust the start date independently of the payment date.
FUTURE SCOPE
- Establish a system to effectively record and track the efforts of multiple resources working on the same item.
- Automatic Renewal
ABBREVIATIONS
| PM | Project Managers | 
| TL | Team Leads |