Skip to main content

ExtendInsights Template Builder: Six Things Every Builder Should Know

A practical field guide to creating robust NetSuite record templates, from finding field IDs to avoiding the Excel cell format trap.

Updated over 2 weeks ago

Record templates are one of the most powerful features in ExtendInsights. They let you map, import, and update NetSuite records at scale through familiar Excel workflows. Whether you are building your first template or your fiftieth, this guide covers the six critical things every template builder should know.

What's Inside

  1. Finding Field IDs: The Internal Language of NetSuite

  2. Build Order: Header Fields before Sublist Fields

  3. Custom Fields Not Showing? Check Permissions First

  4. Speed Up Uploads with Dropdown Internal IDs

  5. Excel Formulas in Templates: The Cell Format Trap

  6. Common NetSuite Errors and What They Actually Mean


1. Finding Field IDs: The Internal Language of NetSuite

When mapping columns in an ExtendInsights template, you are not using the label you see on a NetSuite form. You are using the field's internal ID, the programmatic name that NetSuite's API understands. Getting this right is the foundation of every working template.

Option A: Click the Field Label in NetSuite

With customization mode enabled, clicking directly on a field label in NetSuite reveals a popup showing the field's internal ID. For example, clicking the Date field on a transaction record will show trandate as its internal ID. Fast, contextual, and built right into NetSuite.

Option B: Install a Browser Extension

Extensions like NetSuite Field Explorer expose field IDs directly in the NetSuite UI as you hover over fields. This is ideal for power users who build templates frequently.

Option C: Use the NetSuite Schema Browsers

NetSuite provides official reference browsers for every record type and field. Bookmark both for reference:

⚠️ Important Exception: For custom fields, use the field label name when building your template, not the internal ID. This is the one exception to the field ID rule. All standard NetSuite fields use their internal ID, but custom fields are mapped by their label as it appears in the NetSuite UI.


2. Build Order: Header Fields before Sublist Fields

The golden rule: Always map your header and body fields first, then add your sublist (line-level) fields.

Header fields define the record itself: the customer, the date, the subsidiary, the transaction number. Sublist fields define what's on the record: the line items, the inventory details, the expense categories. NetSuite evaluates them in this hierarchy, and your template should reflect that.

Header fields first:

  • Entity (Customer or Vendor)

  • Subsidiary

  • Date

  • Currency

  • Custom header fields (custbody_*)

Sublist fields second:

  • Item

  • Quantity

  • Rate

  • Amount

  • Custom line fields (custcol_*)


3. Custom Fields Not Showing? Check Permissions First

Almost always, a missing custom field is a permissions issue, and it comes in two forms.

Custom Role Missing Field Access: If your organization uses a custom NetSuite role, that role may not have explicit permission to view or edit specific custom fields. Your NetSuite Admin needs to grant access to those fields on the custom role directly.

Field Applied to Form But Not Exposed for API: Your NetSuite Admin may have added the custom field to the record form in the UI but never enabled it for web services or API access. These are two separate settings in NetSuite's custom field configuration.

⚠️ Admin Action Required: Ask your NetSuite Admin to navigate to Customization > Lists, Records & Fields > [Field Type] and verify:

  1. Store Value is checked on the main field settings page. Without this, the field will not retain or expose data through the API.

  2. The correct record type is selected under the Applies To tab. If the wrong record type is checked—or none at all—the field will not be available, and ExtendInsights will not be able to see it.


4. Speed Up Uploads with Dropdown Internal IDs

The safest, fastest way to supply a value to a dropdown or picklist field is by using the internal ID of the option, wrapped in double brackets:

[[123]]

The double brackets tell ExtendInsights to skip validation and pass the value directly to NetSuite as a raw internal ID. NetSuite does not need to look up a matching label, which makes your uploads significantly faster, especially on large datasets with many dropdown columns.

To find the internal ID of a dropdown option, navigate to the relevant list in NetSuite. For example, for Subsidiary go to Setup > Company > Classification > Subsidiaries.

💡 Pro Tip: Use ExtendInsights Analytics to pull a raw download of internal IDs directly from a Saved Search in NetSuite. This is a quick way to build a full reference list for any record type.

🚀 Performance Tip: For a template with 500 rows and 10 picklist columns, using [[123]] instead of text labels can dramatically cut upload time.


5. Excel Formulas in Templates: The Cell Format Trap

Cells formatted as "Text" will display the formula itself, not the computed result. If a cell is pre-formatted as Text before you enter a formula, Excel treats the formula as a literal string — and your upload will contain formula text rather than the computed value.

The fix: Before entering any formulas, change the cell format from Text to General or a specific type like Number or Date.

  1. Select the cells where you intend to use formulas.

  2. Right-click → Format Cells → select General or Number. Avoid Text for formula cells.

  3. Now enter your formula. Excel will evaluate and display the computed result, which is what ExtendInsights will read during upload.

📌 Reminder: The [[ID]] bracket notation has no impact on Excel's cell formatting behavior. Fix the cell format before you worry about anything else.


6. Common NetSuite Errors and What They Actually Mean

Missing Required Fields

NetSuite requires certain fields before a record can be saved. Common culprits include Entity, Subsidiary, Date, and Item. Check the Schema Browser for Required: true fields. If a required field is missing from your template row, the entire row will fail.

Dependency Not Set for API Use

This means a dependency has not been configured in NetSuite's metadata for the field your template is trying to populate. Your NetSuite Admin needs to set up a Metadata Setting Record. Using Subsidiary on a Purchase Order as an example:

  • Name: Subsidiary dependency

  • Applies To: PurchaseOrder

  • Configuration: {"dependencies": ["PurchaseOrder.entity"]}

  • Target Field: PurchaseOrder.subsidiary

If Entity is not provided in your template row, NetSuite will return the dependency error and block the upload.

Debugging Approach

Start with the ExtendInsights error log to identify which rows failed and the exact error message. Cross-reference the field name in the Schema Browser to confirm whether it is required or has API dependencies. In most cases, the fix is either adding a missing column or asking your NetSuite Admin to adjust a field or role setting.


Putting It All Together

Building reliable ExtendInsights record templates is about developing good habits. Know where to find your field IDs. Build header fields first. Verify permissions before assuming a field does not exist. Use internal IDs for dropdowns. Keep your Excel formatting clean. And when errors appear, read them literally.

With these six practices in your workflow, you will spend less time troubleshooting and more time getting data into NetSuite accurately and efficiently.

💬 Have questions about a specific record type or template scenario? Use the chat widget on our ExtendInsights support page. We are here to help you build templates that work the first time.

Did this answer your question?