SuiteScript 1.0 to 2.1 Migration Checklist
This checklist plans a migration of NetSuite scripts from SuiteScript 1.0 to 2.1, from inventory through cutover. It focuses on the places migrations break: typed values, script records, deployment overlap and untested execution contexts.
0 of 30 items complete
5 critical items still open - these are the highest-risk gaps.
Inventory
Design
Code changes
Deploy
Test
The critical items prevent the two worst outcomes: a script running twice (old and new deployments both live) or not at all in a context nobody tested.
Get your 1.0 script inventory sized
Send us your script and deployment list and we will group it into migrate, merge and retire, with an effort range per group.
Optional. The tool and every export work without this. No spam.
How to use it
Run the inventory group once for the whole account and export it to Excel as the migration backlog. Then work the design, code, deploy and test groups per script or per batch of related scripts. Mark critical items done only with evidence: a parallel run result, the deployment status change, the list of contexts tested. Oracle still runs 1.0 scripts, so there is no need to migrate everything at once; start with scripts you are already changing, scripts that use yield logic, and scripts on high-volume records where 2.x paging and Map/Reduce help.
Where this lives in NetSuite
Scripts are under Customization > Scripting > Scripts and deployments under Script Deployments. A 2.x file declares its version and type in JSDoc tags at the top, such as @NApiVersion 2.1 and @NScriptType UserEventScript, and returns its entry points from a define callback. Oracle's help includes a SuiteScript 1.0 to 2.x API map that lists the 2.x equivalent of each nlapi function and nlobj object, and the SuiteScript 2.x governance tables list usage units per method. Script execution order on a record type is managed from the record's scripted records page, which matters when you swap a 1.0 script for a 2.x one.
Worked example
A 1.0 scheduled script reprices open sales orders, calls nlapiYieldScript when governance runs low and reads a checkbox with == 'T'. In design it becomes a Map/Reduce script: getInputData returns a search of open orders, map loads and updates each order, summarize logs errors. In code the checkbox test becomes === true and the order date, now a Date object, is formatted with N/format for logging. A new script record is created with the same custscript_ parameter IDs. In the change window the 1.0 deployment is set to not scheduled and the Map/Reduce deployment is scheduled. Sandbox parallel runs on the same 500 orders produced identical prices before go-live.
Version differences and gotchas
2.0 and 2.1 share the same modules; 2.1 runs on a newer engine with modern JavaScript syntax such as let, const and arrow functions, so write new code as 2.1 unless a script type or a dependency in your release requires 2.0. A 2.x script cannot load a 1.0 library, so shared 1.0 libraries must be rewritten as AMD modules before the scripts that use them. Field and sublist IDs are case sensitive in 2.x. Dates and checkboxes come back typed. Search results are capped per getRange call, so use runPaged for large sets.
Frequently Asked Questions
Is SuiteScript 1.0 still supported?
SuiteScript 1.0 scripts continue to run, but Oracle builds new capabilities in SuiteScript 2.x and recommends 2.x for new development. Check the current release notes for any change in 1.0 status. Migrating when you next change a script avoids a large forced project later.
Should I migrate to SuiteScript 2.0 or 2.1?
Prefer 2.1. It uses the same N/ modules as 2.0 and adds modern JavaScript syntax, which makes code shorter and easier to review. Use 2.0 only where a script type or dependency in your release requires it, and confirm client script support in the help for your version.
Can I change an existing script record from 1.0 to 2.1?
Plan on creating a new script record for the 2.x file. The safe pattern is a new script record and deployment, recreated parameters, and the old 1.0 deployment set to not deployed or inactive in the same change window, which also keeps an easy rollback.
What SuiteScript questions come up in developer interviews?
Common ones: the script types and their entry points, governance limits and how Map/Reduce avoids them, the difference between getValue and getText, how runPaged works, how user event context types affect logic, and how you would migrate a 1.0 script. This checklist covers most of the migration answers.
If you want an on-prem AI assistant that reads your 1.0 scripts, drafts the 2.1 version and lists the contexts to test, with your developers approving every change, we can set that up.
Related Tools
SuiteScript 2.x Modules Reference
A searchable table of the SuiteScript 2.x N/ modules, what each one is for and the methods you reach for most.
NetSuiteSuiteScript Map/Reduce Skeleton Generator
A SuiteScript 2.1 map/reduce template with a SuiteQL input stage, map and reduce handlers and a summarize stage that reports every error.
Developer ToolsNetSuite SuiteScript Governance Units by Script Type
A lookup of governance unit limits for each SuiteScript script type and the design guidance that follows from them.
NetSuiteNetSuite Script Deployment Inventory Worksheet
Keep an inventory of every SuiteScript and deployment with its owner, status and review date, and export it to Excel.
NetSuiteSuiteScript Code Review Checklist
A practical review checklist for SuiteScript 2.x covering structure, governance, error handling, security and deployment.
More Developer Tools tools
See all- NetSuite SuiteScript 2.1 RESTlet Skeleton Generator
- NetSuite API Retry Backoff Wait Time Calculator
- NetSuite OAuth 2.0 Access Token Refresh Calculator
- NetSuite REST Web Services Headers and Query Parameters Reference
- SuiteScript 1.0 to 2.1 API Mapping Reference for NetSuite
- NetSuite REST API SuiteQL Request Generator
- NetSuite REST API Sales Order and Journal Entry Request Generator
- NetSuite Token-Based Auth OAuth 1.0 Signature Code Generator
- NetSuite OAuth 2.0 Client Credentials (M2M) JWT Code Generator
Keep exploring
Free tools
- SuiteScript 1.0 to 2.1 API Mapping Reference for NetSuiteLook up the SuiteScript 2.x module and method that replaces each common nlapi or nlobj call, with governance and behaviour differences to watch during migration.
- NetSuite SuiteScript 2.1 RESTlet Skeleton GeneratorFill in a script name, record type and fields to get a SuiteScript 2.1 RESTlet with GET lookup, POST create, logging and error handling.
- NetSuite Workflow Action Script Generator (SuiteScript 2.1)Generate a working workflow action script that reads a threshold parameter, looks up an approver and returns a value your workflow can store in a field.
ERP fixes and how-tos
- N/query versus N/search: choosing the right SuiteScript data access moduleCompare NetSuite's N/query (SuiteQL) and N/search modules for performance, governance cost and capability, and decide which to use for joins, aggregation, sublist reads and large exports in SuiteScript 2.1.
- Avoiding governance limit errors in NetSuite Map/Reduce scriptsUnderstand how governance is allocated per key in NetSuite Map/Reduce scripts, why SSS_USAGE_LIMIT_EXCEEDED still happens, and how to design getInputData, map, reduce and summarize stages that do not time out.