In NetSuite, each record is uniquely identified by the record type with either an external ID or internal ID. The external ID is a unique identifier assigned to a record in NetSuite to tie the transaction back to a previous system. It is most commonly used to integrate the record with another external or legacy system. The internal ID is a NetSuite-system generated unique identifier for NetSuite records. It’s important to note that internal IDs and external IDs are not unique across all record types so a combination of record type and either the internal ID or external ID is needed. Another important thing to note here is that every record in NetSuite has an internal ID because they are system generated but external IDs are not mandatory.
Uniqueness of Internal IDs and External IDs
The internal ID and the external ID must be both unique not just within a record type but also within a certain record group. The table below provides a list of the high-level groups and the respective records that belong to each group:
Please note these following record types do not support external ID:
Accounting Period | Item Custom Field |
Budget Category | Item Number Custom Field |
CRM Custom Field | Item Option Custom Field |
Custom List | Landed Cost |
Custom Record Custom Field | Other Custom Field |
Custom Record Type | State |
Entity Custom Field | Transaction Body Custom Field |
Gift Certificate | Transaction Column Custom Field |
External IDs vs. Internal IDs in NetSuite
As mentioned earlier, external IDs are not mandatory and therefore, they are not stored on the record form. There is no native field to view the external ID directly on the form, but it can be selected in searches or other queries. RSM has developed a solution to expose External IDs on selected record types and auto-set IDs based on related attributes.
On the other hand, internal IDs are system generated, and they can be found in the system notes of a record or in the URL. External IDs can be alpha numeric as the fields accepts both number and letters. Internal IDs are numeric and there is no preference to set how the IDs are generated as they are sequential within a record group.
Updating External IDs via CSV Import in NetSuite
Since internal IDs are system generated, they cannot be changed. On the other hand, external IDs can be updated via CSV import. When importing records or transactions, user can add a column for external ID to map the external ID field in the field mapping.
To update external IDs of existing records in NetSuite via CSV import, the user can follow these steps:
- Navigate to Setup > Import/Export > Import CSV Records
- Select Import Type and Record Type
- Select the CSV file to upload
- Click Next
- On the Import Options page, click Update
- On the Field Mapping page, map the fields from the left column which contains all fields from the uploaded file to the right column which contains the respective NetSuite Fields. (Please refer to the image below)
7. Click Next and Run to finish the Import.
How to Find the Internal ID in NetSuite
To find the NetSuite internal ID, users need to enable “Show Internal IDs” preference in their account.
- Navigate to Home > Set Preferences
- Select General tab, under the Defaults section, click the checkbox for “Show Internal IDs”
- Click Save
To find the internal ID of a record, the user can open the record and look at the browser’s address bar to check for “id=xxxx” where “xxxx” is the internal ID:
In summary, NetSuite Internal IDs are automatically generated which are unchangeable. These are important to uniquely identify record within the NetSuite system and mainly used for internal referencing. NetSuite External IDs are user-assigned which can be updated via CSV import at any time and mainly used to map records between NetSuite and external systems.