Book a call
Home/Services/SuiteScript 2.1
SuiteScript 2.1 conversion

SuiteScript 1.0 and 2.0 retire in 2028.2. Move once, properly.

Oracle has set the dates. We inventory every script in your account, convert or retire each one, prove it in sandbox against the old version, and roll it out in phases so nothing breaks at month-end.

Real conversion pattern · sample script
Recorded in a demo accountSuiteScript 1.0 → 2.1 · user event
Oracle's timeline

Four releases between now and the deadline.

Release numbers rather than dates: NetSuite ships two major releases a year, so 2028.2 lands in the second half of 2028.

2026.22.1 becomes the standard

SuiteScript 2.1 is the standard scripting model for new and existing scripts.

We are here · October 2026
2027.11.0 on critical fixes only

SuiteScript 1.0 enters end-of-life support. Anything that is not critical needs the script on 2.1 first.

2028.12.0 and 2.x run as 2.1

Scripts annotated 2.0 or 2.x run on the 2.1 runtime by default. 1.0 can no longer be deployed in new accounts.

2028.2Every script on 2.1

All new and existing scripts must use SuiteScript 2.1.

Source: Oracle NetSuite help · Transitioning to SuiteScript 2.1

Watch it happen

One script, and then the whole account.

Sample data · demo account
Sample data · demo account
Sample data · demo account
Our plan

Inventory, triage, convert, prove, roll out.

The order matters. The scripts that touch money, orders and integrations go first, because they are the ones you cannot afford to find out about in production.

01

Inventory

Every script record filtered by API version, with type, deployments, last run and what depends on it.

Output · ranked list
02

Triage

Active and business-critical first: finance, integrations, order processing. Unused and duplicated scripts are marked to retire.

Output · plan per script
03

Convert or test

1.0 is rewritten into modules. 2.0 and 2.x server scripts run as 2.1 under the account preference; client scripts get the new annotation.

04

Prove it

Old and new run against the same records in sandbox. Outputs compared, execution logs clean, governance checked.

Gate · you sign off
05

Roll out

In phases by risk, with the previous deployment kept until the new one has run clean in production.

1.0 is a rewrite

Not a find-and-replace.

SuiteScript 1.0 is global functions; 2.1 is modules. The mapping is the easy part. The judgement is in what each call was really for.

nlapiLoadRecordrecord.loador search.lookupFields when you only read a field
nlapiSubmitRecordrecord.savereturns the internal id
nlapiSubmitFieldrecord.submitFieldsno load, no save
nlapiSearchRecordsearch.create().run()or runPaged for big result sets
nlapiLogExecutionlog.debug / audit / errorN/log
nlapiSendEmailemail.sendN/email
nlapiRequestURLhttps.get / https.postN/https
nlapiScheduleScripttask.createN/task
nlobjErrorerror.createN/error
nlapiGetContextruntime.getCurrentScriptN/runtime
What changes from 2.0 to 2.1

The things we check in every 2.0 and 2.x script.

From Oracle's list of differences between the two runtimes. Most scripts hit none of them. The ones that do, fail quietly.

Reserved words

Some identifiers that were fine in 2.0 are reserved in 2.1.

to checkchecked
Strict mode

2.1 applies strict-mode rules, so sloppy assignments now throw.

to checkchecked
const reassignment

Reassigning a const is handled differently.

to checkchecked
for each...in

The old for each...in statement behaves differently.

to checkchecked
Date strings

Converting dates to local date strings returns different formats.

to checkchecked
parseInt and toSource

Both behave differently on the 2.1 engine.

to checkchecked
Invalid JSON

Parsing malformed JSON behaves differently.

to checkchecked
Error objects

Error properties differ, so error handling that reads them needs a look.

to checkchecked
RESTlets

POST string handling and the return type differ.

to checkchecked
Trailing zeros

Setting decimals with trailing zeros behaves differently.

to checkchecked

Source: Differences between SuiteScript 2.0 and 2.1 · Enabling SuiteScript 2.1 at the account level

2027.1SuiteScript 1.0 gets critical fixes only
2028.12.0 and 2.x scripts run as 2.1 by default
2028.2Every script must be on SuiteScript 2.1
Questions we get

Before you start.

Do 2.0 scripts really need any work?

Many will run as 2.1 with no changes, but from 2028.1 they run on the 2.1 runtime whether they are ready or not. Testing them now, under the account preference, turns a surprise in production into a short list of fixes in sandbox.

What about client scripts?

The account preference only covers server scripts. Client scripts need the annotation changed to 2.1 and testing in the browser, so we plan them as their own batch.

Can we just let NetSuite run everything as 2.1 and see what happens?

You can switch the preference on in sandbox and watch the logs, and that is our first step. Doing it in production without the test pass is how month-end breaks.

Is the conversion automated?

The mechanical part goes quickly with AI-assisted tooling. Every converted script is still read, tested against the old one on the same records, and signed off by a developer before it ships.

Where do we start?

With an inventory: every script, its version, type, deployments, when it last ran and what depends on it. You get a ranked plan before anything changes.

Start a conversation

Considering NetSuite, or already living with it?

Tell us what is not working. If it is a half-hour fix we will tell you that, and you can decide whether to pay anyone at all.

Emailhello@atsovia.com
Phone+91 97200 78591