This guide walks NetSuite administrators through the additional configuration required to use ExtendInsights Financial Reporting Engine (XAVI).
Unlike ExtendInsights Data Management and Analytics, Financial Reporting Engine queries NetSuite's General Ledger directly. As a result, it requires additional NetSuite features, accounting preferences, and role permissions before users can build financial reports in Excel.
Who Should Complete This Guide?
NetSuite Administrator
You must have permission to modify NetSuite features, accounting preferences, and user roles.
Before You Begin
Before completing this guide, ensure that:
The ExtendInsights Excel add-in has been installed.
The CloudExtend NetSuite bundle has been installed.
Standard ExtendInsights NetSuite prerequisites have already been completed.
Users have been assigned a Financial Reporting Engine license.
If you have not completed the standard deployment, see:
Step 1: Enable SuiteAnalytics Workbook
Navigate to Setup → Company → Enable Features and then choose the Analytics subtab.
If the SuiteAnalytics Workbook is not enabled, check the box to enable it and click Save.
Step 2: Accounting Preferences
Navigate to Setup > Accounting > Accounting Preferences
Verify that:
Use Account Numbers is enabled.
This setting allows XAVI formulas to correctly resolve account references in financial reports.
Step 3: Configure Required Role Permissions
Open each NetSuite role that Financial Reporting Engine users will sign in with.
Navigate to:
Setup → Users/Roles → Manage Roles
⚠️ Important: For any transaction type that posts to the General Ledger in your account, the role must have at least View access. If a posting transaction type exists in your account but is missing from the role, NetSuite will silently omit those transactions from query results — your reports will show understated figures with no error or warning. This is NetSuite behavior, not a XAVI bug.
Setup Tab
These permissions cover authentication, API access, and configuration data required for XAVI formulas to connect to and query NetSuite.
Permission | Access Level | Purpose |
User Access Tokens | Full | Allows the authenticated user to create and manage their own personal NetSuite access tokens required for login. Applies only to the individual user's own tokens — does not grant access to other users' tokens. |
Log in using Access Tokens | Full | Required for authenticating to NetSuite via Token-Based Authentication. |
Log in using OAuth 2.0 Access Tokens | Full | Required for authenticating to NetSuite via OAuth 2.0. |
REST Web Services | Full | Required for all XAVI data queries to NetSuite. |
SOAP Web Services | Full | Required for budget data retrieval. |
Manage Accounting Periods | View | Allows XAVI to resolve accounting periods. Without this, XAVI formulas return a "period not found" error even when the period exists in your account. |
Accounting Book | View | Required only if the Adjustment Only Books feature is enabled in your account, for multi-book functionality. |
Accounting Lists | View | Required for reading budget category data. |
Custom Fields | View | Required for XAVI to recognize custom fields in your account. |
Custom Segments | View | Required only if the Custom Segments feature is enabled in your account (this feature is coming soon) |
Records Catalog | View | Required for retrieving table metadata used in query construction |
Lists Tab
These permissions provide access to core record data required by XAVI formulas.
Permission | Access Level | Purpose |
Accounts | View | Required for accessing GL account records and resolving account names. |
Classes | View | Required for class segment filtering in financial reports. |
Company Feature Setup | View | Allows XAVI to check which NetSuite features are enabled so queries can adapt to your account's data structure. This does not grant access to the Enable Features page or the ability to change feature settings. |
Contacts | View | Required for entity segment functionality. |
Currency | View | Allows XAVI to resolve currency symbols and names for multi-currency reports. |
Customers | View | Required for entity segment functionality. |
Departments | View | Required for department segment filtering in financial reports. |
Fiscal Calendars | View | Required for accounts using multiple fiscal calendars. |
Items | View | Required for item segment functionality. |
Locations | View | Required for location segment filtering in financial reports. |
Perform Search | Full | Required for entity table access, working in conjunction with the Contacts, Customers, Employees, Projects, and Vendors permissions. |
Projects | View | Required for project segment functionality. |
Subsidiaries | View | Allows XAVI to resolve subsidiary names and structure for multi-subsidiary reports and consolidations. Without this, subsidiary-level queries will not return correct results. |
Vendors | View | Required for entity segment functionality. |
Reports Tab
Permission | Access Level | Purpose |
SuiteAnalytics Workbook | Edit (minimum) | Required for XAVI to execute queries and retrieve data from NetSuite. |
General Ledger | View (minimum) | Required for XAVI to access General Ledger data. |
Step 4: Configure Transactions Permissions
These permissions govern access to all GL-posting activity. Not every transaction type listed below will exist in every NetSuite account — if a type is not enabled in your account, you can skip it.
💡 Why XAVI needs transaction-level access
XAVI formulas query transaction-level detail directly from the NetSuite General Ledger to deliver penny-perfect accuracy and the ability to drill down to originating transactions. This is what allows a controller to trace a balance sheet figure all the way back to the individual journal entry, invoice, or payment that created it, all without leaving Excel.
This level of access is not required for high-level reporting tools that rely on pre-aggregated NetSuite report data. XAVI formulas are different: they read the underlying transactions, they can reflect real-time balances, support multi-subsidiary consolidation, and enable full audit traceability, all capabilities that depend on granular read access to the GL.
Transaction Permissions for XAVI Formulas
Financial Reporting Engine reads transaction-level data directly from the NetSuite General Ledger.
For every transaction type that posts to the General Ledger in your NetSuite account, grant at least View access.
Recommended approach
Rather than configuring every transaction permission manually, create a customized copy of NetSuite's built-in Accountant role.
The Accountant role already includes View access to most standard General Ledger transaction types.
After creating the custom role, add the additional XAVI permissions described in this guide before assigning the role to users.
See the full transaction permission tables in the section below.
Go to Setup → Users/Roles → Manage Roles.
Find the Accountant role and click Customize to create a copy.
Add the XAVI-specific permissions listed above (TBA, REST/SOAP Web Services, Manage Accounting Periods, Currencies, Subsidiaries, Find Transaction, SuiteAnalytics Workbook, General Ledger).
Save the customized role and assign it to your XAVI users.
If you prefer to configure permissions manually or need to verify coverage against a custom role, use the tables below. Grant View for each type that posts to the GL in your account. You can skip the types your organization does not use.
⚠️ If a transaction type is missing from the role's permissions, NetSuite will silently exclude those transactions from query results — reports will show understated figures with no error or warning. This is a NetSuite behavior, not a XAVI bug.
General Ledger, Cash, and Journals
Permission | NetSuite Feature | Access Level | Purpose |
Make Journal Entry | Accounting | View | Captures journal entry postings in GL queries |
System Journal | Accounting | View | Captures system-generated journal postings in GL queries |
Balancing Journal | Balancing Journals | View | Captures balancing journal postings in GL queries |
Cross Charge Journal | Intercompany Framework | View | Captures cross-charge journal postings in GL queries |
Netting Settlement | Intercompany Framework | View | Captures netting settlement postings in GL queries |
Currency Revaluation | Multiple Currencies | View | Captures revaluation postings in GL queries |
Check | Accounting | View | Captures check postings in GL queries |
Deposit | A/R | View | Captures deposit postings in GL queries |
Deposit Application | A/R | View | Captures deposit application postings in GL queries |
Transfer Funds | — | View | Captures fund transfer postings in GL queries |
Credit Card | — | View | Captures credit card postings in GL queries |
Credit Card Refund | — | View | Captures credit card refund postings in GL queries |
Enter Opening Balances | — | View | Captures opening balance postings in GL queries |
Pay Sales Tax | — | View | Captures sales tax payment postings in GL queries |
Tax Liability Payment | SuiteTax | View | Captures tax liability payment postings in GL queries |
Find Transaction | — | Full | Required for XAVI to query any transaction data from NetSuite. Without this, all XAVI formulas return a "record not found" error. |
Set Up Budgets | Accounting | View | Allows XAVI to read budget data for Budget vs. Actual reports. |
Accounts Receivable and Revenue
Permission | NetSuite Feature | Access Level | Purpose |
Invoice | A/R | View | Captures invoice postings in GL queries |
Credit Memo | A/R | View | Captures credit memo postings in GL queries |
Cash Sale | — | View | Captures cash sale postings in GL queries |
Cash Sale Refund | — | View | Captures cash sale refund postings in GL queries |
Customer Payment | A/R | View | Captures customer payment postings in GL queries |
Customer Deposit | A/R | View | Captures customer deposit postings in GL queries |
Customer Refund | A/R | View | Captures customer refund postings in GL queries |
Return Authorization | Return Authorizations | View | Captures return authorization activity in GL queries |
Statement Charge | A/R | View | Captures statement charge postings in GL queries |
Employee Commission Transaction | Employee Commissions | View | Captures commission postings in GL queries |
Partner Commission Transaction | Employee Commissions | View | Captures partner commission postings in GL queries |
Accounts Payable and Expenses
Permission | NetSuite Feature | Access Level | Purpose |
Bills | A/P | View | Captures vendor bill postings in GL queries |
Enter Vendor Credits | A/P | View | Captures vendor credit postings in GL queries |
Pay Bills | A/P | View | Captures bill payment postings in GL queries |
Expense Report | Expense Reports | View | Captures expense report postings in GL queries |
Vendor Prepayment | Vendor Prepayments | View | Captures vendor prepayment postings in GL queries |
Vendor Prepayment Application | Vendor Prepayments | View | Captures vendor prepayment application postings in GL queries |
Inventory and Manufacturing (if enabled in NetSuite)
Permission | NetSuite Feature | Access Level | Purpose |
Adjust Inventory | Inventory | View | Captures inventory adjustment postings in GL queries |
Adjust Inventory Worksheet | Inventory | View | Captures inventory worksheet postings in GL queries |
Inventory Status Change | Standard Costing | View | Captures inventory status change postings in GL queries |
Revalue Inventory Cost | Standard Costing | View | Captures inventory cost revaluation postings in GL queries |
Transfer Inventory | Multi-Location Inventory | View | Captures inventory transfer postings in GL queries |
Item Receipt | Advanced Receiving | View | Captures item receipt postings in GL queries |
Item Fulfillment | Advanced Shipping | View | Captures fulfillment postings in GL queries |
Build Assemblies | Assembly Items | View | Captures assembly build postings in GL queries |
Unbuild Assemblies | Assembly Items | View | Captures assembly unbuild postings in GL queries |
Bin Transfer | Bin Management | View | Captures bin transfer postings in GL queries |
Bin Putaway Worksheet | Bin Management | View | Captures bin putaway postings in GL queries |
Wave | Warehouse Management | View | Captures warehouse wave postings in GL queries |
Work Order Issue | Manufacturing Work In Process | View | Captures work order issue postings in GL queries |
Work Order Completion | Manufacturing Work In Process | View | Captures work order completion postings in GL queries |
Work Order Close | Manufacturing Work In Process | View | Captures work order close postings in GL queries |
Payroll (if payroll posts to your GL)
Permission | NetSuite Feature | Access Level | Purpose |
Paycheck / Payroll Journals | Payroll | View | Captures payroll journal postings in GL queries |
Revenue Recognition and Advanced (if enabled in NetSuite)
Permission | NetSuite Feature | Access Level | Purpose |
Revenue Recognition Postings | Revenue Recognition | View | Captures revenue recognition postings in GL queries |
Amortization / Allocation Journals | Amortization | View | Captures amortization and allocation journal postings in GL queries |
Custom Transaction Types
If your account includes custom transaction types that post to the GL, add View access for each one. Custom transaction types are managed under Setup → Custom Transaction Types.
✅ Verification
Configuration is complete when:
SuiteAnalytics Workbook is enabled.
Use Account Numbers is enabled.
Users have a role containing the required Setup, Lists, Reports, and Transaction permissions.
Users can successfully sign in to ExtendInsights Financial Reporting Engine.
XAVI formulas return financial data without permission errors.
💡 Best Practices
Create a dedicated NetSuite role for Financial Reporting Engine users.
Start with a customized Accountant role whenever possible.
Review role permissions whenever new transaction types or NetSuite features are enabled.
Assign View access to every transaction type that posts to your General Ledger to ensure complete financial reporting.


