Purpose of this query
This SuiteQL statement provides a structured inventory of all custom record types defined in the account. It returns the internal owner ID, readable owner name, custom record name, script ID, and description. This report is useful for customization audits, environment comparisons, ownership reviews, and cleanup initiatives. Sorting by owner and name makes it easy to see which teams or developers are responsible for which custom record types.
SuiteQL
SELECT
owner AS "Owner ID",
BUILTIN.DF(owner) AS "Owner Name",
name AS "Custom Record Name",
scriptid AS "Script ID",
description AS "Description"
FROM
customrecordtype
ORDER BY
owner,
name;
Sample Output
How the query works
Reading custom record metadata
The query selects from the customrecordtype table, which stores configuration details for each custom record type in NetSuite.
Showing both owner ID and readable owner name
owner returns the internal ID of the record owner. BUILTIN.DF(owner) converts that value into a human-readable name for easier review and follow-up.
Returning script ID for technical reference
scriptid is the unique identifier used in SuiteScript, SuiteQL, and integrations. This is especially helpful for developers and administrators managing integrations or deployments.
Including description for documentation
The description field helps clarify the purpose of each custom record type, supporting documentation and governance reviews.
Ordering by owner and name
Sorting first by owner groups custom record types by responsible party, then alphabetically by name for clarity.
Why this report is useful
• Customization governance: quickly identify which custom record types exist and who owns them.
• Environment comparison: export from sandbox and production to compare script IDs and detect missing or extra record types.
• Documentation support: use as a foundation for maintaining an internal customization catalog.
• Ownership accountability: surface custom record types with unclear or outdated ownership.
• Pre-upgrade review: validate custom record structures before major NetSuite releases.
Customization notes
• Filter by owner: add WHERE owner = <internal_id> to review one team’s custom records.
• Filter by name pattern: add WHERE name LIKE ‘%keyword%’ to search for specific record types.
• Include last modified date: add lastmodifieddate to monitor recent changes.
• Combine with custom field inventory: join to customfield tables if you want to review fields tied to each custom record type.
• Use in Excel: export and pivot by Owner Name to see how customization responsibility is distributed.

