NetLease Bulk Custom Role Permissions Import Tool
Overview
The Bulk Custom Role Permissions Import tool provides a single screen for reviewing and updating NetLease permissions across all custom roles in an account. Permissions are displayed as a matrix, with custom roles as columns and NetLease permissions as rows, allowing access levels to be set for many roles and permissions at once rather than editing each role record individually.
The tool supports three permission categories:
| Category | What It Controls | Available Values |
|---|---|---|
| Custom Transactions | NetLease custom transaction types (for example, NetLease Amortization) | None, View, Create, Edit, Full |
| Custom Records | NetLease custom record types (for example, NetLease Lease) | None, View, Create, Edit, Full |
| Suitelets | Which roles are included in the audience of each active NetLease Suitelet deployment | Yes, No |
Common uses include initial role configuration during implementation, auditing existing access, and promoting a reviewed permission set from a sandbox account to production by way of an Excel export and import.
Note: Access levels correspond to standard NetSuite permission levels. None removes the permission line from the role entirely; Full grants view, create, edit, and delete access.
Prerequisites
- An Administrator role, or a trusted implementation or system administrator role. Because the tool can change permission levels on any editable custom role, access should be restricted accordingly.
- Permission to edit role records. Editing Suitelet rows additionally requires permission to edit script deployments.
- The role in use must be included in the audience of the tool's Suitelet deployment (
customdeploy_laa_access_sl). - The NetLease bundle must be updated to a version that includes the tool. If the setup page link is missing, the installed bundle version predates the feature.
Step-by-Step Process
Access the Tool
- Navigate to NetLease > NetLease Setup > System Setup.
- Under the Import Tools subtab, locate Bulk Custom Role Permissions Import and click the associated Tool Link.
- The permissions matrix will then load on the next page.
Review the Permission Matrix
The matrix opens with one tab per permission category. Each cell shows the access level currently granted in NetSuite for that role and permission.
- Only active custom roles appear as columns.
- Only Suitelet deployments that are active, released, and NetLease-specific appear as rows.
- Each permission row includes a description explaining what the record or Suitelet controls.
The tools listed below assist with reviewing and navigating the matrix. Items marked More options are hidden until that toggle is enabled.
| Tool | Purpose | Availability |
|---|---|---|
| Search | Filters the visible permission rows by name | Default |
| Maximize | Expands the matrix to fill the available screen space | Default |
| Take the tour | Walks through the tool's primary features | Default |
| Set [Category] visibility | Selects which permission rows are displayed | More options |
| Set role visibility | Selects which role columns are displayed | More options |
| Compare roles… | Displays two roles side by side, optionally limited to permissions where they differ | More options |
| Highlight changes | Dims unchanged cells, displays the previous value of each changed cell (for example, Edit → Full), and allows changes to be reverted from that view | More options |
| Export matrix… | Opens the export dialog for a current or blank matrix | More options |
The More options toggle is located in the matrix header, next to Maximize, with the tooltip "Show the view and export options." It is off the first time the tool is opened, and its setting is remembered per browser. While it is off, the controls marked above are not present on the page at all.
At least one permission row and one role column must remain visible at all times.
Edit Permissions
All edits are applied locally and are not written to NetSuite until saved. A pencil badge on each category tab displays the number of unsaved changes in that category.
Permissions can be edited in four ways:
- Single cell — Click a cell and select the access level (or Yes / No for Suitelet rows).
- Range — Drag to select a block of cells and apply one value to the entire selection. An undo option is offered immediately after the change.
- Row — Use the row menu to set one permission to the same level across every visible role, or to revert the row to its saved values.
- Column — Use the column menu to set every permission on the active tab for a single role, to revert the role, or to apply a permission set.
Apply a Permission Set
Permission sets are predefined, read-only templates that apply a standard access profile to a single role. Applying a set overwrites that role's levels for the permissions the set covers and reports how many permissions changed.
NetLease ships the following permission sets:
| Category | Available Sets |
|---|---|
| Custom Records and Custom Transactions | Blank, Edit Only, AP Clerk, Lease Preparer, Lease Reviewer, Lease Administrator |
| Suitelets | Clerk, Specialist, Manager, Administrator |
- Open the column menu for the target role.
- Select Apply permission set….
- Choose the appropriate set, preview the changes, and then apply.
Import Permissions from Excel
The matrix can be populated in one step from an Excel workbook.
- Drag the file into the drop zone, or browse to select it.
- If any role names in the file don't match a role in the account, map them in the role mapping dialog (see below).
- Review the results summary and any warnings, then close the warnings dialog.
- Confirm the matrix reflects the intended values, then save.
Requirements for the file:
- The file must be .xlsx or .xls. CSV files are accepted by the file picker but are not read.
- The workbook must contain a worksheet named one of the following: Role Access, Granular Permissions, Role Permission Settings, Roles and Permissions, or Sheet1.
- Role column headings should match role names in the account. Any that don't are sent to the role mapping dialog. Permission rows must match NetLease permission names or their display names.
- Valid cell values are None, View, Create, Edit, and Full for record and transaction rows, and Yes or No for Suitelet rows. An empty cell is treated as None or No.
On a successful import, all matched values are applied to the matrix and flagged as changed. Roles not included in the file are set to None for the permissions the file lists, and are hidden. Permissions not included in the file are left unchanged and hidden. To show hidden roles or rows again, enable More options, then use Set [Category] visibility and Set role visibility.
Include every role you want to keep. Any custom role left out of the file is set to None for the permissions the file lists. Nothing is saved until you click Save, so review the matrix before saving.
Role mapping
If role names in the file don't match a role in the account, a dialog opens so you can map them before the import is applied.
- Suggested matches are listed first. Use Confirm all or Reject all, or confirm or reject each one. Rejected suggestions are skipped.
- For roles without a suggestion, search for and select a role, or leave it as Skip (exclude from import).
- Each NetSuite role can only be mapped once.
- Confirm or reject the suggestions, then click Apply to continue. Click Cancel to stop the import; the file will need to be uploaded again.
If every role name matches, the dialog doesn't appear.
The import may also return warnings. The warnings dialog summarizes what was changed or skipped. Review it before closing, then check the matrix before saving.
| Warning | Meaning |
|---|---|
| Role(s) not in NetSuite | The file has a column for a role that doesn't exist in this account and wasn't mapped. Values in that column are skipped. |
| Permission(s) not in NetSuite | The file contains a row for a permission that does not exist in this account. The row is skipped. |
| Role(s) not in template | The role exists in the account but wasn't in the file. It was set to None for the permissions in the file, and its column is hidden. |
| Permission(s) hidden | The permission exists in the account but was not in the file, so its row has been hidden. |
Warning: An import is rejected in full, with no changes applied, if the workbook has no readable worksheet, no role columns, no permission rows, no recognizable categories, or any cell containing an unrecognized value. The error message identifies the specific problem.
Export the Permissions Matrix
With More options enabled, select Export matrix… and choose one of two modes:
- Current matrix — Exports the access levels currently displayed, including unsaved edits.
- Blank matrix — Exports every cell as None or No, producing a template that can be completed offline.
Only visible roles and permissions are included in the export. The export dialog identifies anything being excluded. Note that the search filter does not limit the export.
Hidden roles are left out of the export. Restore full role visibility before exporting, or those roles will be set to None when the file is imported. When copying permissions from sandbox to production, add any production-only roles to the file first.
The exported workbook includes a permission level legend, a description for each permission, dropdown validation on each cell, and colored formatting by level. Because the exported sheet is directly re-importable, exporting from one account and importing into another is the recommended way to promote a reviewed permission set between environments.
Save Changes
- Click Save.
- Review the confirmation dialog, which lists the number of pending changes per role.
- Confirm to begin saving.
Changes are written one role or Suitelet deployment at a time, and a progress list shows each target as pending, saving, saved, or failed.
- If a single target fails, the remaining targets still save. The failure is reported inline and can be addressed separately.
- Selecting Cancel stops after the change in progress finishes. Targets already saved retain their new values, and the dialog offers Save remaining changes.
- After each role is saved, the tool re-reads the role record and verifies that every requested change was applied.
Considerations
- Bundle-delivered roles cannot be edited. Netgain roles appear only on the Suitelets tab, where their Suitelet access can be changed. Roles locked by other bundles appear as columns but fail verification at save time. To change permissions for a locked role, create an editable copy of the role and apply the permissions to the copy.
- Scope is limited to NetLease. The tool manages NetLease custom records, custom transactions, and Suitelet audiences only. It does not manage standard NetSuite permissions, create roles, or assign employees to roles.
- Certain records and Suitelet deployments are intentionally excluded from the matrix and cannot be changed through this tool.
- Role names that don't match exactly can be mapped during import. Permission names must match exactly; any that don't are reported as not existing in the account.
- Saving is sequential. A large change set requires one write per role or deployment and may take several minutes.
Troubleshooting
The Bulk Custom Role Permissions Import link is missing from the NetLease Setup page.
- Confirm the NetLease bundle has been updated to a version that includes the tool.
- Confirm the role in use has access to the NetLease Setup page.
The export, compare roles, highlight changes, or visibility controls are not on the page.
- These controls appear only when More options is enabled in the matrix header. The toggle is off by default and is remembered per browser.
An expected role does not appear as a column.
- Netgain bundle roles appear only on the Suitelets tab.
- The role may be inactive, or may be a standard NetSuite role rather than a custom role.
- The role may be hidden as a result of a prior import. Enable More options, then check Set role visibility.
An expected permission or Suitelet does not appear as a row.
- The record or Suitelet may be intentionally excluded from the matrix.
- Suitelet deployments must be active and released to appear.
- The row may be hidden as a result of a prior import. Enable More options, then check Set [Category] visibility.
A CSV file was imported but nothing changed.
- CSV files are not read by the tool. Save the file as .xlsx and import again.
The import reports that no roles or permissions could be matched.
- The file was likely built for a different account or product, or role and permission names have been renamed. Unmatched roles can be mapped in the role mapping dialog; unmatched permissions can't. Export the current matrix from the account and compare spelling and capitalization against the file.
The import is rejected because of invalid values.
- One or more cells contain a value other than None, View, Create, Edit, or Full (or Yes and No for Suitelet rows). The error message lists each affected permission, role, and value.
A role reports that its changes were not saved because the role is locked.
- The role was likely installed by a bundle and cannot be edited. Create an editable copy of the role and apply the permissions to the copy.
