NetSuite External IDs : What Are They and How Do I Use Them?

Have you ever wondered how to identify records in NetSuite by an external identifier whilst still maintaining NetSuite’s transaction numbering integrity? The answer is simple: by using external IDs.

An external ID is a unique identifier assigned to a record in NetSuite. The external ID can be alphanumeric and does not need to run in any particular sequence.

It can be used to tie the transaction back to a previous system or just allow the business to maintain secondary numbering. NetSuite external IDs are also commonly used to integrate a particular NetSuite record type with another system or for generating dynamic hyperlinks to third party applications.

In this article, we’ll dive deeper into how external IDs work and why it is useful for NetSuite users to understand their functionality.

Searching using External IDs

While external IDs can be incredibly useful for integrating and synchronizing data between systems, they cannot be used to search for transactions within NetSuite through the global search function.

If you need to find a transaction using its external ID, the solution is to use a saved search. Saved searches coming to the rescue once again with their omnipotence and flexibility!

For example, if I need to expose the external IDs of a list of Purchase Orders I will navigate to Reports > New Search.

The navigation path to a new saved search in NetSuite.

I will select a Transaction search, check the box for Advanced Search and then enter the following criteria fields.

The criteria tab of a saved search in NetSuite.

I am only looking for the external IDs of the Purchase Orders so I will only need these two fields on the results tab.

The results tab of a saved search in NetSuite.

After hitting Submit I will then be given a list of all Purchase Orders with their corresponding external ID.

NetSuite Saved Search results showing the Purchase Order document number and external ID.

Advantages of using External IDs

NetSuite external IDs can be highly beneficial but it’s important to note that they have specific use cases. If those cases don’t apply to your organization, then you don’t necessarily need to use them.

During an implementation or migration from a previous system, external IDs can be invaluable for keeping track of prior system numbering. When importing open transactions as part the implementation’s data migration the external IDs can be entered. The specifics of this process are described later in this article.

They are also ideal for linking to non-NetSuite transaction or record numbering. The NetSuite external ID can either be updated via an import or perhaps a scripted solution. It can then be sourced on saved searches, custom fields or scripts to link to the third party application.

If you want to build dynamic links to a corresponding record in a third party system the external ID can be used to complete a URL for a hyperlink. This can facilitate links to specific records outside of NetSuite directly from their NetSuite counterpart.

For all it uses, however, it is crucial not to fill the external ID with irrelevant or unnecessary data just for the sake of it. External IDs should be used thoughtfully and strategically to ensure maximum efficiency and ease of use within your organization’s systems. A sentiment you should consider for your entire NetSuite environment!

Differences between Internal and External IDs

Internal and external IDs are both unique identifiers for NetSuite records and transactions. Internal IDs are enforced by the system and external IDs are enforced by the business. This characteristic allows for much greater flexibility in the use of the external ID.

NetSuite External IDs are not mandatory

It is the businesses choice if they want/need to use the external ID. Although updating them is normally a manual process there is no system requirement to do so. The internal ID on the other hand is system generated for all records and is managed by the system rather than the user. Businesses cannot change the internal ID should they want to but can change the external ID.

NetSuite External IDs can be alpha numeric

The external ID field accepts both numbers and letters and in some situations is also case sensitive. The internal ID is solely numeric and sequential. There is no preference to set how you want the internal ID to generate. It will simply flow sequentially within a record group.

NetSuite External IDs can be updated

If an external ID is entered incorrectly it can be updated via a CSV import provided the record is not locked or in a closed period. The internal ID, however, is generated on Create and can never be changed.

NetSuite External IDs are not stored on the record form

Internal IDs can be seen easily in the system notes of a record or in the URL. The external ID however is not visible on the form. There is no field to display it even though a ‘field’ can be selected in searches and other queries. If you need to view the external ID directly on the form, one solution is to create a custom field that is populated with the ID and is disabled so it cannot be changed unless the external ID is changed.

Updating or Creating External IDs via CSV Import

It is very easy to update or create external IDs via a CSV import. If you are importing records or transactions, you can simply add an external ID column that maps to the external ID field in the field mapping.

Below is an example of how I would update the external IDs of already existing Purchase Orders.

First I need to create my CSV file. My Purchase Orders already exist so I don’t need to include any information other than –

  1. An identifier to link to the relevant NetSuite record. In this case I am using the NetSuite internal ID.
  2. The New external ID value I need to import.
CSV Import data for updating the Purchase Order external ID

Navigate to Setup > Import/Export > Import CSV Records.

Select the Import Type and Record Type, then select the CSV file to be uploaded.

Importing the CSV file to update the Purchase Order external IDs

On the Import Options page be sure to click Update rather than Add.

Click through to the Field Mapping page where we will align the two columns with their respective NetSuite fields.

The Field Mapping page of a NetSuite Purchase Order update import.

Click Next and Run to complete your Import.

Uniqueness of Internal and External IDs

Both internal and external IDs are unique within certain record groups. For example, you might have a Customer record with NetSuite external ID CV0002. You cannot then use id CV0002 on an employee record. You can, however use CV0002 on a Purchase Order record since the Purchase Order is in a different record group.

If the external IDs you are using are coming from another system then you don’t have much choice in how they look. If they are being generated by the business, however, I would suggest using a prefix or suffix that indicates the record type. This will hep avoid any duplication restriction or confusion when creating new records.

The record groups are as follows –

Record GroupRecord Types
AccountAccount; Tax Account
Allocation ScheduleAllocation Schedule; Intercompany Allocation Schedule
EntityContact; Customer; Employee; Entity; Entity Group; Job; Lead; Other Name; Partner; Project Template; Prospect; Vendor
Entity StatusCustomer Status; Job Status
EventActivity; Campaign; Case; Event; Issue; Manufacturing Operation Task; Phone Call; Project Task; Resource Allocation; Sales Campaign; Solution; Task
Inbound ShipmentBulk Ownership Transfer; Inbound Shipment; Receive Inbound Shipment
Inventory ItemAssembly/Bill of Materials; Description Item; Discount Item; Download Item; Expense Item; Gift Certificate Item; Inventory Part; Item; Item Group; Kit Item; Lot Numbered Assembly/Bill of Materials; Lot Numbered Inventory Item; Markup Item; Non-Inventory Part; Non-inventory Item for Purchase; Non-inventory Item for Resale; Non-inventory Item for Sale; Other Charge Item; Other Charge Item for Purchase; Other Charge Item for Resale; Other Charge Item for Sale; Payment Item; Serialized Assembly/Bill of Materials; Serialized Inventory Item; Service; Service Item for Purchase; Service Item for Resale; Service Item for Sale; Subscription Plan; Subtotal Item; Tax Group
Payroll BatchPayroll Batch; Payroll Batch – Add Employees
Project Revenue RuleFixed Amount Project Revenue Rule; Labor Based Project Revenue Rule; Percent Complete Project Revenue Rule
Revenue Recognition ScheduleAmortization Schedule; Amortization Template; Revenue Recognition Schedule; Revenue Recognition Template
TimelineManufacturing Planned Time; Time; Time Entry
TransactionsAdvanced Intercompany Journal Entry; Assembly Build; Assembly UnBuild; Bin Transfer; Bin Worksheet; Blanket Purchase Order; Cash Refund; Cash Sale; Check; Commission; Credit Card Charge; Credit Card Refund; Credit Memo; Custom Transaction; Customer Deposit; Customer Payment; Customer Payment Authorization; Customer Refund; Deposit; DepositApplication; Estimate; Expense Report; Fulfillment Request; FxReval; GL Impact Adjustment; Intercompany Journal Entry; Intercompany Transfer Order; Inventory Adjustment; Inventory Cost Revaluation; Inventory Count; Inventory Status Change; Inventory Transfer; Inventory Worksheet; Invoice; Item Fulfillment; Item Receipt; Journal Entry; Opportunity; Ownership Transfer; Partner Commission; Paycheck; Paycheck Journal; Purchase Contract; Purchase Order; Request For Quote; Requisition; Return Authorization; Revenue Arrangement; Revenue Commitment; Revenue Commitment Reversal; Revenue Contract; Sales Order; Statement Charge; Statistical Journal Entry; Store Pickup Fulfillment; Transaction; Transfer; Transfer Order; Vendor Bill; Vendor Credit; Vendor Payment; Vendor Request For Quote; Vendor Return Authorization; Work Order; Work Order Close; Work Order Completion; Work Order Issue

Unsupported Record Types for External IDs

Most record types in NetSuite support the use of external IDs. The following list is all those that do not support them.

  • Accounting Period
  • Budget Category
  • CRM Custom Field
  • Currency Rate
  • Custom List
  • Custom Record Custom Field
  • Custom Record Type
  • Entity Custom Field
  • Gift Certificate
  • Item Custom Field
  • Item Number Custom Field
  • Item Option Custom Field
  • Landed Cost
  • Other Custom Field
  • State
  • Transaction Body Custom Field
  • Transaction Column Custom Field

So now you’re a master of the NetSuite external ID, how do you find the internal ID? Find out here.

If you want to learn more about CSV Imports in NetSuite check out the following suite of articles –

Complete List of NetSuite CSV Import Types and Record Types

NetSuite CSV Import Errors: A Deep Dive into the Most Common Error Messages

Maximizing Efficiency with NetSuite Import Templates: Tips and Best Practices

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *