Purpose of this query
This SuiteQL statement returns all features from the CompanyFeatureSetup table and classifies each one based on availability and activation status. It helps administrators quickly identify which features are enabled, which are available but not activated, and which are not available in the account. The query adds clear status labels and usage indicators to simplify review during system audits, feature rollouts, implementation planning, or troubleshooting. Results are ordered to show fully enabled features first, followed by available but inactive features, and then unavailable features.
SuiteQL
SELECT
Name AS "Feature Name",
ID AS "Feature ID",
IsAvailable AS "Available",
IsActive AS "Active",
CASE
WHEN IsAvailable = 'T' AND IsActive = 'T' THEN 'ENABLED & ACTIVE'
WHEN IsAvailable = 'T' AND IsActive = 'F' THEN 'AVAILABLE - NOT ACTIVE'
WHEN IsAvailable = 'F' AND IsActive = 'T' THEN 'ACTIVE - NOT AVAILABLE' -- Should not happen
ELSE 'NOT AVAILABLE'
END AS "Status",
CASE
WHEN IsAvailable = 'T' AND IsActive = 'T' THEN '✓ Ready to Use'
WHEN IsAvailable = 'T' AND IsActive = 'F' THEN '⚠ Available but Disabled'
WHEN IsAvailable = 'F' THEN '✗ Not Available in Account'
ELSE 'Unknown Status'
END AS "Usage Status"
FROM
CompanyFeatureSetup
ORDER BY
CASE
WHEN IsAvailable = 'T' AND IsActive = 'T' THEN 1
WHEN IsAvailable = 'T' AND IsActive = 'F' THEN 2
ELSE 3
END,
Name;
Sample Output
How the query works
Pulling feature configuration data
The query reads directly from CompanyFeatureSetup, which stores metadata about each NetSuite feature and its status in your account.
Determining availability versus activation
IsAvailable indicates whether the feature is licensed or supported in the account.
IsActive indicates whether the feature is currently enabled.
Generating a structured status field
The first CASE statement creates a clear status classification, distinguishing between enabled, available but disabled, and unavailable features.
Adding a human-friendly usage indicator
The second CASE statement provides simplified labels that can be used in Excel dashboards or reports to quickly assess readiness.
Sorting by feature readiness
The ORDER BY clause ensures enabled features appear first, followed by available but inactive features, and finally unavailable features.
Why this report is useful
• Implementation planning: verify which modules are already enabled before configuring new functionality.
• Audit and compliance: confirm that required features such as accounting books, revenue recognition, or advanced approvals are active.
• Troubleshooting: quickly determine whether a missing capability is disabled or not available in the account.
• Environment comparison: export from multiple environments (sandbox vs production) to compare feature configurations.
• Governance and change control: review feature activation before upgrades or major configuration changes.
Customization notes
• Add filters to focus on specific features by name or ID.
• Export to Excel and use conditional formatting to highlight disabled but available features.
• Join to role or permission tables if you want to evaluate feature access alongside role assignments.
• Use this report periodically to monitor feature changes after upgrades or administrative updates.

