Published on April 20, 2025.
A few days ago, I wrote about how you can use a custom portlet to redirect users from NetSuite's standard dashboard to an alternative dashboard.
Over on LinkedIn, a user asked if the technique can also be used in the Employee Center. I answered and said that I didn't think it was possible.
However, I had forgotten that a few years ago, I had found a way to make custom portlets available to Employee Center users. In this post, I'll walk you through the steps that are involved.
As far as developing a custom portlet for use in the Employee Center goes, the process is no different than it is when developing a portlet for use on a standard dashboard. If you're unfamiliar with developing custom portlets, I recommend reading NetSuite's documentation on the SuiteScript 2.x Portlet Script Type.
In this post, I'm going to refer to the "Hello Employee" portlet that's included below and available for download.
Once you've got the portlet developed, go ahead and test it as you normally would (by adding it to your standard NetSuite desktop). The example portlet should look something like this.
Click the image to view a larger version.
When you're ready to make the portlet available to users of the Employee Center, continue to the next step.
To make the portlet available in the Employee Center, there are a few minor changes that you'll need to make to the portlet's script deployment.
First, pull up the portlet's deployment record, and click to edit it.
Check the "Dashboard SuiteApp" checkbox.
Under "Audience," in the "External Roles" area, add the "Employee Center" role.
Confirm the deployment's status is Released.
The deployment record should look similar to this.
Click the image to view a larger version.
Then save the deployment.
If you haven't already done so, log into The Employee Center.
When the dashboard has loaded, click the "Personalize" link. It's located in the top right area of the dashboard.
The "Personalize Dashboard" box will appear.
Select "SuiteApps."
The "Hello Employee" portlet should be available.
Select the portlet, and it should appear exactly as it did on your primary dashboard. Your Employee Center dashboard should look something like this.
Click the image to view a larger version.
The portlet that I used in this example is very simple. It uses the N/runtime module to display information about the current user, and it works regardless of whether it's being displayed on a standard dashboard or an Employee Center user's dashboard.
But what if you want to provide Employee Center users with custom portlets that display other types information? For example, what if you want to provide a portlet that displays inventory information?
As you may know, the Employee Center role is different from other NetSuite roles in that you can't add permissions to it - and that's the case even if you create a custom version of the standard Employee Center role. Therefore, you can't add the "Lists > Items" permission that your portlet would require.
However, with the script deployment's "Execute As Role" setting, you can configure the deployment so that it runs using a role that has the permissions that your portlet requires.
As the saying goes, "Where there's a will, there's a way."
I hope you've found this post to be helpful. More importantly, I hope it encourages you to experiment with this technique and discover other interesting things that you can do with the Employee Center and SuiteScript.
/** * @NApiVersion 2.1 * @NScriptType Portlet * @NModuleScope SameAccount */ /* ------------------------------------------------------------------------------------------ Script Information ------------------------------------------------------------------------------------------ Name: Hello Employee ID: _hello_employee Description: Used to demonstrate how you can make a custom portlet available to users of the Employee Center. Portlet Type: Inline HTML ------------------------------------------------------------------------------------------ Developer(s) ------------------------------------------------------------------------------------------ Tim Dietrich • timdietrich@me.com • https://timdietrich.me ------------------------------------------------------------------------------------------ History ------------------------------------------------------------------------------------------ 20250420 - Tim Dietrich • Initial version. */ var runtime; define( [ 'N/runtime' ], main ); function main( runtimeModule ) { runtime = runtimeModule; return { render: renderContent } } function renderContent( params ) { params.portlet.title = 'Hello Employee'; params.portlet.html = ` <p> Here's some information about you. </p> <pre>${JSON.stringify( runtime.getCurrentUser(), null, 5 )}</pre> `; }
Hello, I'm Tim Dietrich. I develop custom software for businesses that are running on NetSuite, including mobile apps, Web portals, Web APIs, and more.
I'm the developer of several popular NetSuite open source solutions, including the SuiteQL Query Tool, SuiteAPI, and more.
I founded SuiteStep, a NetSuite development studio, to provide custom software and AI solutions - and continue pushing the boundaries of what's possible on the NetSuite platform.
Copyright © 2025 Tim Dietrich.