Skip to main content

Other Record Fields (SuiteBuilder)

Comprehensive guide to creating and configuring custom fields for supporting records such as messages, notes, folders, files, and custom record types.


Overview

Other Record Fields extend NetSuite's supporting records beyond the main entity, item, and transaction types. These include system records and custom record types you create.

OTHER RECORD FIELD SCOPE
═══════════════════════════════════════════════════════════════════════════════

Custom Other Record Field


┌───────────────────────────────────────────────────────────────────────────┐
│ APPLIES TO (select one or more): │
│ │
│ COMMUNICATION SYSTEM │
│ ☐ Message ☐ Folder │
│ ☐ Note ☐ File │
│ │
│ CUSTOM RECORDS │
│ ☑ Vehicle (customrecord_vehicle) │
│ ☐ Maintenance Log (customrecord_maint_log) │
│ ☐ Quality Check (customrecord_qc) │
│ │
└───────────────────────────────────────────────────────────────────────────┘

Creating Other Record Fields

Customization → Lists, Records, & Fields → Other Record Fields → New

Or, for custom records:

Customization → Lists, Records, & Fields → Record Types → [Select Record] → Fields

Configuration Options

OTHER RECORD FIELD CONFIGURATION
═══════════════════════════════════════════════════════════════════════════════

┌─────────────────────────────────────────────────────────────────────────────┐
│ BASIC SETTINGS │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Label*: [Inspection Result ] │
│ ID*: [custrecord_qc_result ] │
│ Type: [List/Record ▾] │
│ List/Record: [QC Result Status ▾] │
│ │
│ Description: [Final inspection result for the │
│ quality check record ] │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ APPLIES TO │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ Select Record Type: │
│ ☑ Quality Check (customrecord_qc) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Fields for Custom Record Types

Adding Fields to Custom Records

When creating custom records, add fields via:

  1. Fields subtab on the record type definition
  2. Other Record Fields menu (applies to multiple records)
CUSTOM RECORD FIELDS EXAMPLE
═══════════════════════════════════════════════════════════════════════════════

Custom Record: Quality Check (customrecord_qc)

┌──────────────────────────────────────────────────────────────────────────────┐
│ Label │ Type │ Internal ID │ Mandatory │
├──────────────────────────────────────────────────────────────────────────────┤
│ Name │ Free-Form │ name (built-in) │ Yes │
│ Item │ List/Record │ custrecord_qc_item │ Yes │
│ Lot Number │ Text │ custrecord_qc_lot │ No │
│ Inspector │ List/Record │ custrecord_qc_inspector │ Yes │
│ Inspection Date │ Date │ custrecord_qc_date │ Yes │
│ Result │ List │ custrecord_qc_result │ Yes │
│ Defects Found │ Integer │ custrecord_qc_defects │ No │
│ Notes │ Text Area │ custrecord_qc_notes │ No │
│ Related Transaction │ List/Record │ custrecord_qc_trans │ No │
│ Attachment │ Document │ custrecord_qc_doc │ No │
└──────────────────────────────────────────────────────────────────────────────┘

Common Use Cases

Custom Record Field Patterns

Record TypeCommon Fields
Configuration/LookupCode, Description, Active, Sort Order
Log/AuditDate, User, Action, Before/After Values
Junction/LinkRecord A Reference, Record B Reference, Relationship Type
Workflow DataStatus, Assigned To, Due Date, Approval Notes
Master DataName, Category, Effective Dates, Is Active

System Record Fields

Record TypeCommon Custom Fields
MessageCategory, Priority, Auto-Response Flag
NoteNote Type, Related Project, Visibility Level
FileDocument Type, Review Date, Owner
FolderAccess Level, Department Owner

Field Type Selection

FIELD TYPES FOR CUSTOM RECORDS
═══════════════════════════════════════════════════════════════════════════════

IDENTIFIERS & CODES
─────────────────
Free-Form Text Codes, IDs, short text
Text Area Long descriptions, JSON data
Integer Sequence numbers, counts
Auto-Number System-generated numbers

RELATIONSHIPS
─────────────────
List/Record Link to NetSuite records (Customer, Item, etc.)
Link to other custom records
Multiple Select Many-to-many relationships

STATUS & CLASSIFICATION
─────────────────
List Dropdown from custom list
Checkbox Boolean flags
Radio Button Single selection from options

DATES & TIMES
─────────────────
Date Dates without time
Date/Time Full timestamp
Time of Day Time only

DOCUMENTS & MEDIA
─────────────────
Document File attachments
Image Image attachments
Rich Text HTML formatted content

CALCULATED
─────────────────
Currency Money values
Decimal Precise numbers
Percent Percentage values

Custom Record Relationships

One-to-Many with Sublist

PARENT-CHILD RELATIONSHIP
═══════════════════════════════════════════════════════════════════════════════

Parent: Vehicle (customrecord_vehicle)
┌───────────────────────────────────────┐
│ VEH-00001: 2024 Toyota Camry │
│ │
│ [Main] [Maintenance History] [Costs] │
├───────────────────────────────────────┤
│ MAINTENANCE HISTORY SUBLIST │
│ │
│ Date │ Service │ Cost │
│ ───────────┼────────────────┼─────────│
│ 2026-01-15 │ Oil Change │ $75 │
│ 2026-02-01 │ Tire Rotation │ $50 │
│ 2026-02-15 │ Brake Service │ $250 │
│ │
└───────────────────────────────────────┘

Implementation:
1. Create Parent record type (Vehicle)
2. Create Child record type (Maintenance Log)
3. Add List/Record field on Child → Parent
4. Configure sublist on Parent form

Lookup Relationships

LOOKUP FIELD PATTERN
═══════════════════════════════════════════════════════════════════════════════

Custom Record: Price Rule (customrecord_price_rule)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Name: Electronics Discount │
│ │
│ Item Category: [Electronics ▾] ← List/Record to Category │
│ Customer Tier: [Gold ▾] ← List/Record to Tier List │
│ Discount %: [15] │
│ Effective From: [2026-01-01] │
│ Effective To: [2026-12-31] │
│ Is Active: [✓] │
└─────────────────────────────────────────────────────────────────────────────┘

Usage: Scripts lookup this record to apply discounts automatically

Field Visibility and Security

Record-Level Permissions

Custom record permissions control overall access:

CUSTOM RECORD PERMISSIONS
═══════════════════════════════════════════════════════════════════════════════

Record: Quality Check (customrecord_qc)

Permission Level: Use Permission List

Role Level
───────────────────── ─────────────────
Quality Manager Full
Quality Inspector Edit
Production Staff Create
All Other Roles View

Field-Level Access

For sensitive fields within a custom record:

FIELD-LEVEL ACCESS CONTROL
═══════════════════════════════════════════════════════════════════════════════

Field: Inspector Override Notes (custrecord_qc_override)

Role Access:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Role Access Display Type │
├─────────────────────────────────────────────────────────────────────────────┤
│ Quality Manager Edit Normal │
│ Quality Inspector View Disabled │
│ Production Staff None Hidden │
└─────────────────────────────────────────────────────────────────────────────┘

Scripting with Other Record Fields

Creating Custom Records

// Create a quality check record
var qcRecord = record.create({
type: 'customrecord_qc'
});

qcRecord.setValue('name', 'QC-2026-0001');
qcRecord.setValue('custrecord_qc_item', itemId);
qcRecord.setValue('custrecord_qc_lot', lotNumber);
qcRecord.setValue('custrecord_qc_inspector', employeeId);
qcRecord.setValue('custrecord_qc_date', new Date());
qcRecord.setValue('custrecord_qc_result', 1); // Pass

var recordId = qcRecord.save();

Searching Custom Records

// Search quality checks
var qcSearch = search.create({
type: 'customrecord_qc',
filters: [
['custrecord_qc_result', 'anyof', 2], // Fail
'AND',
['custrecord_qc_date', 'within', 'lastmonth']
],
columns: [
'name',
'custrecord_qc_item',
'custrecord_qc_defects',
'custrecord_qc_notes'
]
});

SuiteQL for Custom Records

-- Query custom record with related data
SELECT
qc.name AS check_number,
BUILTIN.DF(qc.custrecord_qc_item) AS item_name,
qc.custrecord_qc_lot AS lot_number,
BUILTIN.DF(qc.custrecord_qc_inspector) AS inspector,
qc.custrecord_qc_date AS inspection_date,
BUILTIN.DF(qc.custrecord_qc_result) AS result,
qc.custrecord_qc_defects AS defects_found
FROM
customrecord_qc qc
WHERE
qc.isinactive = 'F'
ORDER BY
qc.custrecord_qc_date DESC

Best Practices

Naming Conventions

ElementConventionExample
Record IDcustomrecord_[prefix]_[name]customrecord_qc_check
Field IDcustrecord_[prefix]_[field]custrecord_qc_result
Prefix2-4 character codeqc, veh, hr

Design Checklist

ConsiderationRecommendation
Record TypeChoose record vs. list appropriately
FieldsOnly essential fields (avoid bloat)
RelationshipsUse List/Record for lookups
PermissionsSet role-based access
FormsCreate default entry form
SearchesBuild standard saved searches
ScriptsEnable scripting if needed