Chapter 1: NetSuite Customizations Executive Summary
ERPs and other line of business applications are a complicated piece of software that bundle lots of functionality. However it is impossible to create a product so general purpose that it addresses every need of a business. For this reason big applications provide customization features that allow its users to build their own modules or even tweak the existing modules to suit their operational needs.
Customization can be as small as changing the label of a field or as big as building a whole new module, as straightforward as hiding a field from a form and as complicated as changing the behavior of transactions. Mostly, the biggest customization in such an application occurs at the time of its implementation, usually guided by a group of experts. When initial period of implementation has passed, support package of the implementation vendor has been consumed/expired, any major customization could be tricky at best.
This article is intended to help organizations using NetSuite in such a position. We intend to allow you to make sense of the customization options in NetSuite which can help you a lot even in the initial phases of the implementation. Through this guide we aim to provide an overall picture of Customization Architecture that NetSuite offers. After reading this guide, you will be able to determine the right tool to select and level of expertise needed to implement required customization.
Chapter 2: SuiteCloud – NetSuite Customization Platform
SuiteCloud is the basic customization platform in NetSuite, comprising of the following modules:
SuiteBuilder allows the users to tailor NetSuite according to their operational needs with Point-and-Click interface. You can add Custom Fields to standard NetSuite records, create your own Custom Records to store ad hoc data, customize entry forms and etc.
SuiteFlow facilitates users to define and automate custom business processes/flows such as transaction approval, for standard or custom records.
SuiteAnalytics provides basic reporting and Business Intelligence capabilities for decision making. Users can create Dashboards to quickly view key information in one screen and design searches/reports to get important data about their business in desired format.
SuiteTalk. In order to integrate with an external system, NetSuite provides an out of the box Integration platform.
If the user is not able to achieve the desired customization with the above options, it is possible to use Netsuite’s programming platform SuiteScript to create complex customizations. SuiteScript allows developers to change the behavior of standard records as well as build entirely custom applications within NetSuite.
SuiteBundler. Created a complex customization? Like to distribute it? Use SuiteBundler to create “bundles” that can be deployed to other NetSuite Accounts. You can even create SuiteApps and sell it on SuiteApp Marketplace.
Chapter 3: Common NetSuite Customization Needs and Ways to Address them
Part of every customization is mapping the basic business activities such as Sales and Purchase cycle to NetSuite records. This involves initial customization activities like renaming standard records and fields, creating custom fields in standard records, identify multiple scenarios for entering same transaction and creating Custom Forms for each scenario to show or hide fields, subtabs as per requirement. Apart from these major custom requirements can be divided in the following areas:
Reports and Transaction Custom Printing
NetSuite includes a variety of reporting capabilities that you can use to retrieve, present, and analyze real-time business results. NetSuite also provides a comprehensive tool to create searches. For printing transactions NetSuite provides a layout editor to customize transaction printouts. NetSuite also has Advanced PDF/HTML Layouts that provide more flexible ways to design report and transaction printing layouts.
If you are not able to achieve the desired layout or the desired information, you can use SuiteScript, specifically Suitelets to design custom PDF and CSV reports.
It is quite possible that does not solve all your operational problems and you use other systems that hold crucial data that you would like to ultimately come to NetSuite. Perhaps you feel comfortable with certain applications and want to stick with those when migrating to NetSuite. In these situations your NetSuite Account would need integration with external systems.
NetSuite provides out of the box web services(SuiteTalk) that external applications can use to smoothly integrate with your NetSuite account. In case SuiteTalk does not suit the external applications – say it does not provide a place to write code and call SuiteTalk or the API does not exactly achieve what’s required, we can leverage SuiteScript to write integration logic in our NetSuite account. RESTlets allow us to write custom web service over REST architecture. If authentication is a problem, Suitelets allow developers to create open scripts that are available without login. We can also write Scheduled Scripts, if the integration is supposed to be periodic instead of real time and event based.
Besides the integration requirements and technical tools in NetSuite, there are a lot of complicated factors that affect an integration project. If integration is one of your key requirements, please consider reading our full guide(TODO: Link to our integration article).
Apart from subsidiaries, NetSuite provides three types of segmentations by default: Department, Class and Location. If your business needs more ways to classify your transactions, entities and other records. These custom segmentation are not just custom fields rather first class citizen of NetSuite and will even affect the GL impact of transactions.
NetSuite provides a large number of transactions to accurately represent a business. If you find yourself in a position that none of the standard transaction serve your purpose you can create Custom Transaction Types.
Chapter 4: How to approach a NetSuite Customization effort
Carefully planning out customization might not be a sensitive task during NetSuite implementation as everything is in the “under construction” phase. However a lot of care needs to be taken touching a stable implementation. There are a number of challenges in doing a major customization in an existing account:
- There is production data that can get affected during development of a new feature.
- Testing is not easy as creating dummy records is sometimes is not possible or troublesome.
- At the time of implementation number of user access licenses is not an issue as NetSuite is not being used operationally. All the licences can be easily used by different members of the implementation team. Unlike this situation, all NetSuite User licenses are occupied in an existing account.
For these reasons subsequent customizations need to be planned and documented well. Following list of steps can be taken to avoid failure:
- Identify all key requirements
- Identify personnel in your team that have the most customization expertise in NetSuite.
- Make sure your customization requirements can not be handled with a standard feature. If you find a standard feature that roughly serves the purpose, considering configuring it rather than creating a custom solution. While custom solutions serve your purpose more accurately, those may be much less stable and reliable than a standard feature.
- Prioritize. Carefully think which customizations are important and nature and which ones are urgent. Decide the order in which the customizations should be implemented.
- Figure out requirements that can not be handled by your team and engage an expert team if needed.
Chapter 5: NetSuite Customization Critical Success Factors
NetSuite customization projects can get messy at times when multiple distributed teams are trying to work together. Dependenies emerge at unexpected places. Here are some critical success factors:
- Ask the right questions
- Use the right tool
- Freeze requirements
- Select the right people
- Create the right team environment
- Set realistic expectations
- Do not rely on a single tool
- Maximize the utility of each tool to create a better solution.
- Involve all the stakeholders in gathering requirements and validating the solution.
- Get firm commitments from the stakeholders.
- Ensure effective coordination between development group, customers, users, subcontractors
Chapter 6: Questions we Ask and Help you Answer
Which of the following best describes your situation with reference to Customization:
- We have recently implemented NetSuite and we want to customize NetSuite just like our previous system.
- We have been using NetSuite for a while and need new customization to suit recent requirements.
Please pick the all of the types of customization you are seeking:
- Integrations – connecting NetSuite with other apps(Please consider filling this form too)
- Reporting/Custom Transaction Printing
- Custom Modules
- Custom Segmentation – like Department, Class, Location…
- Custom Transaction – Transactions that better represent your operational processes but are not supported by NetSuite
- Installing 3rd party bundle
Do you have an in house team that has some experience with NetSuite Customization?
How would you rate the level of expertise of your in house Customization Team?
- Basic – Creating Reports by Searches
- Advanced – We are able to write some build Advanced PDF Layouts, write basic scripts
Please let us know about yourself and your Customization scenario
Chapter 7: NetSuite Developer Resources
NetSuite Developer Resources
Starting with Release 2019.2, there will be another option for NetSuite Integration – REST Integrations (Beta Phase). REST Web Services will be a new lightweight API added to SuiteTalk along with the original SOAP Web Services. NetSuite already had RESTlets for creating REST-based interfaces but that needed writing scripts using SuiteScript. Unlike RESTlets, REST Webservices will be out of the box.
Are you considering customization NetSuite?
We have extensive experience in NetSuite Development and Customization projects. Please click on the link below to start the conversation. We will do the rest.