Every business has unique data requirements that NetSuite's standard fields don't cover. Custom fields allow you to extend NetSuite records with additional data points tailored to your specific workflows. Whether you need to track a customer's preferred shipping method, an item's compliance certification, or a transaction's internal project code, custom fields are the solution.
Understanding Custom Field Types
NetSuite offers several categories of custom fields, each designed for a different record type:
| Field Category | Where It Appears | Example Use |
|---|---|---|
| Entity Field | Customer, Vendor, Employee, Contact records | Customer industry code, employee T-shirt size |
| Transaction Body Field | Header of transactions (SO, PO, Invoice, etc.) | Internal approval code, project reference |
| Transaction Column Field | Line items on transactions | Warranty period per line item |
| Item Field | Item records (inventory, service, etc.) | Compliance certification, hazard classification |
| CRM Field | Opportunities, Cases, Tasks, Events | Lead source detail, case priority level |
| Other Record Field | Custom records, other record types | Any field on a custom record type |
Step 1: Navigate to Custom Fields
Go to Customization > Lists, Records, & Fields > [Field Category]. For example, to create a transaction body field, go to Customization > Lists, Records, & Fields > Transaction Body Fields > New.
Step 2: Configure the Field
Fill in the following key settings:
Label and ID
- Label – The display name users will see (e.g., "Project Code")
- ID – Auto-generated internal ID (e.g., custbody_project_code). You can customize this, but once saved, it cannot be changed. Use a clear naming convention.
Field Type
Choose the appropriate data type:
- Free-Form Text – Any text input (up to 300 characters)
- Text Area – Longer text (up to 4,000 characters)
- Integer / Decimal / Currency – Numeric values
- Date / Date/Time – Date fields with calendar picker
- List/Record – Dropdown that references another record or custom list
- Multiple Select – Select multiple values from a list
- Checkbox – Boolean true/false
- Rich Text – HTML-formatted text
- Image – File upload for images
- Inline HTML – Read-only HTML content (useful for displaying calculated content)
- Hyperlink – URL field
Step 3: Set Applies To
For entity and transaction fields, specify which record subtypes the field should appear on. For example, a transaction body field can be set to appear only on Sales Orders and Invoices, not on Purchase Orders.
Use the Applies To tab to check/uncheck the relevant transaction types, entity types, or item types.
Step 4: Configure Validation and Defaults
- Mandatory – Check this to require the field before saving the record
- Default Value – Set an automatic default when a new record is created
- Help Text – Add a description that appears when users hover over the field label
- Display Type – Normal, Hidden, Inline Text, or Disabled
- Store Value – Whether the value is stored in the database (uncheck for display-only fields)
Step 5: Configure Sourcing and Filtering
For List/Record fields, you can set up:
- Sourcing – Automatically populate this field based on a related record. For example, source a customer's "Account Manager" field into a sales order body field when the customer is selected.
- Filtering – Limit the dropdown values based on another field. For example, show only items that belong to a specific category.
Step 6: Assign to Forms
After saving the custom field, you need to add it to your transaction or entry forms. Go to Customization > Forms > Transaction Forms (or Entry Forms), edit the relevant form, and drag your new custom field into the desired position.
You can also control:
- Which tab the field appears on
- Whether it's mandatory on a specific form
- The field's display width and position
Best Practices
- Use a naming convention – Prefix custom field IDs with your company abbreviation (e.g., custbody_yrk_project_code)
- Don't over-create fields – Each custom field adds overhead. Consider whether a standard field or custom list could serve the same purpose.
- Use List/Record fields instead of free-form text when you need consistent, reportable values
- Set Store Value carefully – Fields with Store Value unchecked are sourced in real-time and cannot be searched on. Use stored fields for data you need to report on.
- Document your fields – Maintain a spreadsheet or document listing all custom fields, their purpose, and their IDs for future reference.
- Consider role-based visibility – Use the Access tab to control which roles can see or edit the field.
Next Steps
Custom fields work hand-in-hand with custom records, workflows, and saved searches. Once you've created your fields, you can use them in search criteria, workflow conditions, and SuiteScript logic to build powerful business automation.
Need help designing your custom field architecture? Contact YRK Consulting for expert NetSuite customization services.