Chidi Okwudire IT Professional. ERP Enthusiast. NetSuite Certified (Administrator, SuiteCloud Developer II, and ERP Consultant). Celigo Certified (Level 4+). Passionate About Empowerment Through Knowledge Sharing. Always Eager to Learn.

NetSuite 2024.2: Breaking Change to External Suitelet URLs and How to Handle It

5 min read

NetSuite recently announced a breaking change to the external (a.k.a. anonymous) Suitelet URLs. This article will help you understand the impact on your NetSuite account and guide you through the necessary steps to prevent broken links, if you are affected.

  • NetSuite updated external Suitelet URLs effective May 9, 2024. The “h” parameter is now “ns-at” with a different value.
  • NetSuite will automatically redirect old URLs to the new format until your account is upgraded to the 2024.2 release.
  • After your account is upgraded to the 2024.2 release, old-format URLs will stop working and result in broken links.
  • Before the upgrade, take action to avoid broken links. This article provides guidance on what to check and how to address the changes.

What is Changing?

The 2024.2 Release Notes provides a summary of the changes. Oracle NetSuite also sent a notice titled “Upcoming Changes to External Suitelet URLs in 2024.2” to customers who will be impacted. Here’s a brief overview:

Effective May 9, 2024, Suitelets that are available without login (also known as External Suitelets) have an updated URL format. Specifically, the “h” parameter is replaced by a new “ns-at” parameter. The old URL format will stop working after the NetSuite 2024.2 upgrade.

To understand this change, it’s helpful to have a basic understanding of NetSuite Suitelets.

Refresher on NetSuite Suitelet Technology

A Suitelet is a type of NetSuite script used to create custom pages and/or implement backend logic.

Suitelets come in two types:

  1. UI Suitelets: Draw a page with NetSuite look-and-feel that users can interact with. For example, a Suitelet could be used to capture product surveys. When users submit the survey, the data can be stored in NetSuite or trigger other business processes. The code for the following sample survey Suitelet comes from NetSuite’s Suitelet examples.
    sample survey suitelet
  2. Backend Suitelets: Perform business logic without displaying a user interface and provide a response.

When a Suitelet is deployed to a NetSuite account, the system automatically generates a unique URL that can be used to assess it. By default, Suitelets are only accessible to users logged into that NetSuite account, with access governed by roles and permissions..

However, Suitelets can be made accessible to anyone by selecting the “Available Without Login” option. This generates an external URL that anyone with the link can access.

External Suitelet URLs include parameters such as script, deployment, compid, and ns-at. These parameters tell NetSuite which Suitelet script to load from which account when the URL is accessed. The ns-at parameter is the subject of our discussion; it was previously h and had a different value.

Example URL Changes

Before May 9, 2024, the external URL of our survey Suitelet was something like:

https://tstdrv2480368.extforms.netsuite.com/app/site/hosting/scriptlet.nl?script=133&deploy=1&compid=TSTDRV2480368&h=62c8d6985ca1bbf99231

After May 9, 2024, it changed to:

https://tstdrv2480368.extforms.netsuite.com/app/site/hosting/scriptlet.nl?script=133&deploy=1&compid=TSTDRV2480368&ns-at=AAEJ7tMQP9ZKcF03-t1xajuirKgbRVQWTOnbGxd7YSfyurZkL1A

Note that “ns-at” not only replaces “h” as a parameter key but also has a different value.

When is the Change Taking Place?

As mentioned, from May 9, 2024, all external Suitelet URLs were updated to the new format. However, here’s where it gets interesting:

NetSuite will automatically redirect the old URL format to the new format until your account is upgraded to 2024.2. After the upgrade, old URLs will no longer work and result in broken links with the error message Invalid page parameter. Unable to view page.

When I first read about this change in the release notes, I tested some URLs in an account and mistakenly believed the account was unaffected because the old URLs were redirecting, but once the upgrade occurred, users started reporting broken links. If your external Suitelets are business-critical, you should act before your upgrade. old format was redirecting.

What Should I Do?

Here’s a simple decision tree to help you plan you actions:

1. Determine If Your Account Has Any Suitelets with External URLs

First, check if you have any Suitelets with external URLs. If not, you’re not affected. If you do, further investigation is needed, possibly with the help of the vendor if the Suitelet is part of a third-party bundle.

To find external Suitelets, use SuiteQL, as the “Available Without Login” flag isn’t available via saved search. You can use tools like Tim Dietrich’s (free) SuiteQL Query Tool to run the query. Here’s a sample query to get you going.

SELECT
	title,
	status,
	scriptid
FROM
	scriptdeployment
WHERE
	isdeployed = 'T'
	AND isonline = 'T' /* Available Without Login */

2. Identify Hardcoded External Suitelet URLs in Your Account

Without knowing the specifics of your account customization, it is impossible to provide you with an exhaustive list of where to look but here are a few common places to consider.

Scripts

External Suitelet URLs may be explicitly referenced in other scripts. Going back to our survey example, perhaps, the account has a scheduled script that emails customers a link to the satisfaction survey some days after their order is fulfilled. Such a script, if implemented poorly, might have the external URL hardcoded. (A proper implementation would dynamically generate the external URL using url.resolveScript(options) in which the new URL format will automatically be generated).

Workflows, Advanced PDF & Email Templates

SuiteAnswer ID #1016553 offers a solution for finding hardcoded external URLs in script files. Unfortunately, that solution is weak; it loads each file in the SuiteScripts folder and searches for the old external Suitelet URL pattern. Given a sufficient number of files, the script will run out of governance. A faster and easier approach is to download the relevant folders, unzip locally, and use a powerful text editor like Notepad++ to search for the old URL pattern using a regular expression: https?:\/\/[^\s"]+\&h=[^\s"]+

Perhaps, you decided to use a workflow instead to trigger the email. Then, the external URL is likely hardcoded in the email body in the workflow or in an email template linked to the workflow.

Custom Fields

You may also have external Suitelet URLs hardcoded in custom fields that then trigger automation. In our Survey example, you may have opted to store the order-specific survey URL on the Sales Order.

Reviewing custom fields of type “Hyperlink” might be helpful here. Note thought that other field types that support URLs, e.g. Text Area and Rich Text, should be considered as well.

Approval Emails

If you’ve implemented email-based approval (i.e. an email is sent to an approver and they can click a button to approve or reject the request), chances are that (i) you are using an external Suitelet URL to power this functionality and (ii) the URL is hardcoded.

You might have external systems that interface with NetSuite via a Suitelet external URL. While this is strongly discouraged and a potential security loop hole, it is still a fairly common practice especially when the data in question is not highly sensitive. This is arguably the hardest case to analyze. A review of all your Suitelets with external URLs as recommended earlier might spark some conversation/insights that would be helpful here. If not, you’d need to rely on having proper documentation, tribal knowledge, or sheer luck to uncover these cases.

Once you’ve identified all external Suitelet URLs, your goal is to ensure there are no broken links when your account upgrades to 2024.2.

You might want to postpone your 2024.2 upgrade to buy time, as discussed, among other release preparation tips, in my article 10+ Important Things You Need To Know About NetSuite Releases (2024.2).

For external systems with hardcoded URLs, update them to the new format (the new URL is exposed on the Suitelet deployment as shown earlier). While you’re at it, contemplate whether it is time to move to a better integration approach.

For URLs hardcoded in scripts, see if you can switch over to using url.resolveScript(options) instead of hardcoding. If not, update the URLs.

For URLs stored in custom fields, you might need to run a mass update to refresh them.

For URLs in previously sent emails, you can’t change those, so assess the likelihood of a broken link: What is the chance that the old URL will be accessed after my 2024.2 upgrade? For instance, if you sent out an approval email with the old URL format in August and your upgrade is planned for late October, it is likely the approval would be completed before the upgrade and do not need to act. If the external communication is short-lived, you’re probably better off waiting it out.


Closing Thoughts

One might rightly argue that, if you’re in this situation, it’s likely due to not following best practices. It is unclear what warranted this change. Furthermore, Oracle NetSuite’s approach to rolling out the change is somewhat concerning. The change could have been phased in more gradually with more notice. Ideally, redirection should remain active for at least one full release (until 2025.1) to give customers ample time to adapt.

It is what it is. Rather than whine, act promptly to mitigate the impact. Feel free to reach out for (paid) expert advise if you need further assistance with navigating this challenge effectively.


NetSuite Insights is on a mission to raise the standards around NetSuite practices, one insight at a time. If that resonates with you, learn how you can become an author/collaborator here.

Don’t miss a beat – subscribe to our no-nonsense email list to have these game-changing insights hit your inbox as soon as they’re published. Ignorance? Nah, you’ve got a smarter option. Choose wisdom, choose insights!

Related Posts

Chidi Okwudire IT Professional. ERP Enthusiast. NetSuite Certified (Administrator, SuiteCloud Developer II, and ERP Consultant). Celigo Certified (Level 4+). Passionate About Empowerment Through Knowledge Sharing. Always Eager to Learn.

Leave a Reply

Your email address will not be published. Required fields are marked *

×