Skip to main content
Erstan can publish a reviewed page as a NetSuite Suitelet and show that same page in an HTML dashboard Portlet. A reusable host in the Erstan bundle runs the page module; each published page has its own deployment and audience. Erstan creates the module file and host deployments through the existing NetSuite Add-on tools. The artifact host can also display existing Erstan Apps, dashboards, documents, sheets, files and databases inside a Suitelet or dashboard Portlet.
This route requires bundle 0.19.0 with Add-on contract 2.4.0, or a compatible later version, installed in the target account and discovered by the connection. Updating Erstan alone does not install the hosts. Local implementation checks do not establish a live rollout; Labs browser checks and cross-account bundle-install/update verification must be completed for the release before production use.

How Erstan chooses the publishing workflow

The built-in Erstan NetSuite Add-on Skill becomes available automatically when the executing user has an active, authorized NetSuite Add-on connection and its tools are enabled for the run. It covers the connector’s operations, with a detailed reference for publishing, verification and rollback; no separate Skill installation is needed. Connecting NetSuite MCP alone does not enable it. Authored Skill and tool policies still apply, including pinned-only policies. Relevant Add-on Agent templates include the built-in among their recommended Skills. Existing references to the former NetSuite Host Publishing Skill resolve to this broader Skill. The separate NetSuite SuiteScript Delivery Skill remains available for general script engineering and SDF hand-offs. It routes host publishing to the built-in Skill.

Choose where the page runs

Native pages use the NetSuite session for data reads. They do not forward NetSuite credentials to the browser or require a separate Erstan sign-in. Live page sources are declared SuiteQL queries with bounded parameters and results; refreshes consume NetSuite governance. Manual refresh is the default. Native pages support reviewed HTML and SuiteScript modules. React, JSX/TSX and Erstan-specific App features belong on the existing App route. CDN scripts and inline event-handler attributes are blocked by the page’s content policy. A dashboard should be checked at the actual page and Portlet widths before publication is reported as verified.

Publish a page

Ask Erstan or the Technical Agent to publish the source File as a NetSuite page, a dashboard Portlet, or both. Include the target account, the intended roles and the desired title when they are already known.
1

Check the account and source

The Agent checks installed host capabilities and existing deployments, reviews the source, and resolves the private SuiteScripts/Erstan Generated folder. An administrator creates that folder once when it is absent. It sits beside the bundled Erstan folder so module versions remain separate from bundle updates.
2

Review the upload

The upload action identifies the destination account and folder, versioned file name, file type, byte count and SHA-256 hash. The new private file is stored as a separate version. A file upload alone does not create a working page.
3

Review the deployment

The deployment action selects the installed page host, the exact file and hash, and an explicit audience. Pages begin in TESTING with page writes off unless the approved request says otherwise. Execute as Role stays Current User and Available Without Login stays off. Approvals appear on the normal tool cards.
4

Verify and release

The saved deployment and its safety settings are read back. Open the returned Suitelet link in NetSuite and test the intended roles, sources, dates, charts and error states. Promote to RELEASED after those checks. The receipt states which checks actually ran and what remains pending.
Both TESTING and RELEASED have NetSuite audience semantics; TESTING is not a substitute for an explicit audience. Do not select all roles unless that is the intended access scope. Sharing a page does not grant access to records the viewer’s NetSuite role cannot read.

Embed an Erstan App, dashboard or artifact

Supply the saved Erstan artifact link and intended NetSuite audience. Erstan checks the installed host supports that artifact type and creates a deployment targeting its existing viewer. This route requires the updated host capabilities advertising generic artifact targets; an older App-only host does not support all artifact types. Supported viewers include published Apps, documents, sheets, files, databases and database tables. A live dashboard can use a published wrapper App; an HTML dashboard file can use the file viewer. File formats use the existing preview or download behavior. The host accepts approved Erstan origins and viewer paths; it does not frame arbitrary external URLs. The deployment starts in TESTING and retains Current User execution with Available Without Login off. Verify the saved target, then open it as an intended viewer to check Erstan sign-in, artifact access and content. NetSuite access does not grant Erstan artifact access, and credentials are not forwarded in the URL. Existing App-only deployments remain compatible. Embedding preserves the artifact’s data connections. Live Erstan App and dashboard SuiteQL and saved searches default to NetSuite MCP. You can explicitly convert an equivalent source to Add-on while preserving its query/search, parameters and output; each viewer then needs valid Add-on authorization. Publishing through the Add-on host does not perform that conversion or share the creator’s credentials, and a connection failure never silently switches providers. Native NetSuite page modules continue to use the viewer’s NetSuite session as described above. An embedded artifact can also appear in a Portlet pointing to its verified Suitelet deployment. The same dashboard placement steps below apply.

Add the Portlet to a dashboard

Once the page is verified, Erstan creates a deployment of the HTML Portlet host pointing to that page deployment. Choose a title, supported height and audience. The standalone Suitelet and Portlet show the same native page or Erstan artifact. In NetSuite, open the dashboard’s Personalize controls, add a Custom Portlet, then use its Set Up control to select the deployed Erstan Portlet. Verify the frame, size and open-page fallback with the intended role. A deployment receipt does not mean the Portlet has already been placed on a personal or published dashboard. Oracle describes the distinction in Portlet script definitions and dashboard setup. The HTML Portlet host is for the framed page experience. Native Form, List and Links Portlet Script records require their own UI or SDF delivery. This release does not add generated scheduled-script or map/reduce hosts.

Updates and rollback

An update uploads a new module version and changes the page deployment’s file id and hash together. Retain the previous version so rollback can restore that exact pair. The Portlet keeps pointing to the same page deployment. For an Erstan artifact embed, an update changes the reviewed artifact target on the existing Suitelet deployment. Retain its prior target and settings for rollback. Disable a deployment by setting its Deployed flag off through the normal deployment action. Disabling only the Portlet leaves the standalone page available; disable the page too when all page access must stop. Erstan does not delete files or deployments as part of routine rollback. If an upload or save times out, it searches and reads back the exact target before retrying. Page write actions require reviewed SuiteScript behavior and an explicitly enabled page write flag, with audit logging. Those clicks run directly in the viewer’s NetSuite session: they are not individual Erstan approval-card actions. Review that behavior and the audience before enabling it. Server modules are trusted account code and must be reviewed for direct NetSuite API calls as well as host-helper calls. See NetSuite tools and write policy for the normal upload/deployment approval controls.