Custom Tool Script SDF Objects Now Require Updates for Execution Log Support
NetSuite 2026.1 changes the custom tool script type and its toolset SDF object to support execution logs. Both new and existing custom tool scripts must be updated to the new specification.
What changed
NetSuite 2026.1 modifies the custom tool script type and its corresponding toolset SDF custom object to enable execution log support. This is a breaking change for existing custom tools—they must be updated to the new specification to use logging. Oracle references SuiteAnswers ID 1024036 for the migration details but does not enumerate the specific schema changes in this page.
Custom tool scripts are the server-side handlers invoked by external AI clients through the NetSuite AI Connector Service. They are deployed as toolset SDF objects within a SuiteCloud project.
SDF object structure
Each custom tool is defined as a <toolset> XML element in the project's Objects folder. Key attributes and child elements:
scriptid– must match the XML definition filename (e.g.,custtoolset_reports.xmlusesscriptid="custtoolset_reports").<scriptfile>– path to the SuiteScript 2.1 entry-point file.<rpcschema>– path to a JSON schema file that describes the tool's input/output contract.<exposetoaiconnector>– set toTto make the tool callable from the AI Connector Service.<permissions>– a list of<permission>entries, each with a<permkey>and<permlevel>. These control visibility only; actual data access and operations are still governed by the invoking user's NetSuite role.
Example
A tool named “Report Tool” referencing report.js and report_schema.json:
<toolset scriptid="custtoolset_reports">
<name>Report Tool</name>
<scriptfile>[/SuiteApps/com.netsuite.tools/tools/report.js]</scriptfile>
<rpcschema>[/SuiteApps/com.netsuite.tools/tools/report_schema.json]</rpcschema>
<exposetoaiconnector>T</exposetoaiconnector>
<permissions>
<permission>
<permkey>LIST_EMAILTEMPLATE</permkey>
<permlevel>FULL</permlevel>
</permission>
<permission>
<permkey>ADMI_CRMLIST</permkey>
<permlevel>VIEW</permlevel>
</permission>
</permissions>
</toolset>Permissions model
The <permissions> block determines whether the tool appears to a user in the AI client. If the user holds every listed permission at or above the specified level, the tool is visible. However, visibility does not grant additional data access—runtime operations are still constrained by the user's NetSuite role. This is a two-gate model: permission-gated discovery, role-gated execution.
What to do
- Review SuiteAnswers ID 1024036 – Oracle's detailed migration guide for the execution log changes is not reproduced in this page. Search SuiteAnswers for “How to Update Custom Tool Scripts for Execution Log Support in NetSuite 2026.1” to get the exact schema and script-level changes required.
- Update all existing
toolsetSDF objects – both new and existing custom tools must conform to the updated specification. Redeploy affected SuiteCloud projects after making changes. - Validate
scriptid/ filename alignment – confirm that everytoolsetXML file in yourObjectsfolder has ascriptidvalue that exactly matches its filename (minus the.xmlextension). - Audit
<permissions>blocks – verify that the permission keys and levels reflect the intended audience. Remember that visibility is additive: the user must hold all listed permissions to see the tool. - Test in sandbox – after redeploying, invoke each custom tool through the AI Connector Service and confirm that execution logs are now generated as expected.
Gaps in the source
This page does not detail the specific XML or script-level changes introduced in 2026.1 for execution log support. The actionable detail is gated behind SuiteAnswers ID 1024036. If you do not have SuiteAnswers access, open a case with Oracle Support to obtain the updated toolset XSD or migration checklist.
Source: Oracle NetSuite Release Notes