Entity Fields (SuiteBuilder)
Comprehensive guide to creating and configuring custom entity fields for customers, vendors, employees, contacts, and other entity types.
Overview
Entity fields extend NetSuite's standard entity records with additional data capture. These fields appear on entity forms and are available in searches, reports, and integrations.
ENTITY FIELD SCOPE
═══════════════════════════════════════════════════════════════════════════════
Custom Entity Field
│
▼
┌───────────────────────────────────────────────────────────────────────────┐
│ APPLIES TO (select one or more): │
│ │
│ ☑ Customer ☑ Vendor ☑ Employee ☐ Contact │
│ ☐ Partner ☐ Prospect ☐ Lead ☐ Other Names │
│ ☐ Project ☐ Group ☐ Department ☐ Location │
│ │
│ Field appears on all selected entity types │
└───────────────────────────────────────────────────────────────────────────┘
Creating Entity Fields
Navigation
Customization → Lists, Records, & Fields → Entity Fields → New
Configuration Options
ENTITY FIELD CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════
┌─────────────────────────────────────────────────────────────────────────────┐
│ BASIC SETTINGS │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Label*: [Customer Tier ] │
│ ID*: [custentity_customer_tier ] │
│ Type: [List/Record ▾] │
│ List/Record: [Customer Tier List ▾] │
│ │
│ Description: [Segmentation tier for pricing and │
│ service level assignment ] │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ APPLIES TO │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ☑ Customer ☐ Partner │
│ ☐ Vendor ☐ Prospect │
│ ☐ Employee ☐ Lead │
│ ☐ Contact ☐ Other Names │
│ │
│ Note: Select only relevant entity types to avoid form clutter │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ VALIDATION & DEFAULTING │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ☐ Mandatory Require value on save │
│ ☐ Unique Value No duplicates across records │
│ │
│ Default Value: [Standard ▾] │
│ │
│ Help Text: [Select customer's service tier ] │
│ (Appears as tooltip) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Common Entity Field Use Cases
Customer Fields
| Field Purpose | Type | Example |
|---|---|---|
| Segmentation | List/Record | Industry, Customer Tier, Market Segment |
| Classification | Checkbox/List | Is Strategic, Account Type |
| Compliance | Date/Text | Tax Exempt Date, Certification ID |
| Integration | Text | External CRM ID, Legacy System Code |
| Relationship | List/Record | Parent Company, Account Manager |
Vendor Fields
| Field Purpose | Type | Example |
|---|---|---|
| Classification | List | Vendor Type, Risk Rating, Certification |
| Compliance | Date/Document | Insurance Expiry, W-9 Received |
| Payment | List/Text | Preferred Payment Method, Bank Details |
| Performance | Integer | Quality Score, On-Time Delivery % |
| Integration | Text | ERP Vendor Code, EDI ID |
Employee Fields
| Field Purpose | Type | Example |
|---|---|---|
| HR Data | Date/Text | Start Date, Emergency Contact |
| Skills | Multi-select | Certifications, Languages |
| Org Structure | List/Record | Division, Cost Center, Supervisor |
| Compliance | Checkbox/Date | Background Check, License Expiry |
| System | Text | Badge ID, Active Directory ID |
Field Types for Entities
FIELD TYPE SELECTION GUIDE
═══════════════════════════════════════════════════════════════════════════════
DATA TYPE BEST FOR EXAMPLE
─────────────────────────────────────────────────────────────────────────────
Free-Form Text Short text, codes, IDs Customer Code
Text Area Long descriptions, notes Special Instructions
Integer Whole numbers Employee Count
Decimal Precise numbers Credit Score (750.5)
Currency Money values Credit Limit
Date Single dates Contract Start Date
Date/Time Date with time Last Contact
Phone Number Formatted phone Alt Phone
Email Address Email with validation AP Contact Email
URL Web links Company Website
List/Record Select from list Industry
Multiple Select Multiple list values Product Interests
Checkbox Yes/No boolean Is Active
Document File attachment Contract Document
Image Logo/photo Employee Photo
Rich Text HTML formatted text Bio
Sourcing and Filtering
Sourcing from Parent Entity
FIELD SOURCING EXAMPLE
═══════════════════════════════════════════════════════════════════════════════
Scenario: Default Sales Rep on Contact from Customer
Contact Entity
┌─────────────────────────────────────────────────────────────────────────────┐
│ Field: Default Sales Rep │
│ Type: List/Record (Employee) │
│ │
│ Sourcing: │
│ Source From: Company (Customer) │
│ Source Field: Sales Rep │
│ │
│ Result: When contact is linked to customer, │
│ Sales Rep auto-populates from customer record │
└─────────────────────────────────────────────────────────────────────────────┘
Filtering List Values
FILTERED LIST EXAMPLE
═══════════════════════════════════════════════════════════════════════════════
Scenario: Show only Active Locations for Customer
Customer Entity
┌─────────────────────────────────────────────────────────────────────────────┐
│ Field: Service Location │
│ Type: List/Record (Location) │
│ │
│ Filtering: │
│ List Source: Location │
│ Filter Criteria: Is Inactive = False │
│ │
│ Result: Only active locations appear in dropdown │
└─────────────────────────────────────────────────────────────────────────────┘
Display and Access
Display Type Options
| Display Type | Behavior | Use Case |
|---|---|---|
| Normal | Editable field | Standard data entry |
| Disabled | Visible but not editable | Calculated/system values |
| Hidden | Not visible on form | Script-only fields |
| Inline Text | Display only (no input) | Reference labels |
| Show as List | Display list field values | Multi-select display |
Role-Based Visibility
FIELD ACCESS CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════
Field: Credit Limit (custentity_credit_limit)
Access Level by Role:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Role Access Level │
├─────────────────────────────────────────────────────────────────────────────┤
│ Administrator Edit │
│ Credit Manager Edit │
│ Sales Manager View │
│ Sales Representative None (Hidden) │
│ Customer Service View │
└─────────────────────────────────────────────────────────────────────────────┘
Configure via:
1. Form-level: Show/Hide field per form
2. Field-level: Access subtab on field definition
3. Role-level: Permission lists and role configuration
Reporting and Integration
Saved Search Usage
-- Entity fields in saved searches
SELECT
c.entityid AS customer_id,
c.companyname,
BUILTIN.DF(c.custentity_customer_tier) AS tier,
c.custentity_credit_limit AS credit_limit
FROM
customer c
WHERE
c.custentity_customer_tier IS NOT NULL
SuiteScript Access
// Reading entity fields
var customer = record.load({
type: 'customer',
id: customerId
});
var tier = customer.getValue('custentity_customer_tier');
var creditLimit = customer.getValue('custentity_credit_limit');
// Setting entity fields
customer.setValue('custentity_customer_tier', 3); // List value ID
customer.save();
Best Practices
Naming Conventions
| Element | Convention | Example |
|---|---|---|
| Field ID | custentity_[prefix]_[name] | custentity_acme_tier |
| Prefix | Company code (2-4 chars) | acme, abc |
| Name | Descriptive, snake_case | credit_limit, account_manager |
Design Checklist
| Consideration | Recommendation |
|---|---|
| Applies To | Select only needed entity types |
| Type | Choose appropriate field type for data |
| Validation | Use mandatory only when truly required |
| Help Text | Always provide clear instructions |
| Default | Set sensible defaults to speed entry |
| Sourcing | Auto-populate from related records when possible |
| Display | Hide from roles that don't need it |