SuiteBuilder Best Practices
Planning and Design#
Before You Build#
Document Requirements
- Gather detailed business requirements
- Create a design document
- Map out data relationships
- Identify integration points
Prototype First
- Build in sandbox environment
- Test with sample data
- Get user feedback early
- Iterate before production deployment
Consider Alternatives
- Can existing fields be repurposed?
- Is a custom record necessary or will a list suffice?
- Could a workflow solve this instead?
- Is SuiteScript needed for complexity?
Naming Conventions#
Field IDs Use consistent prefixes:
custbody_for transaction body fieldscustcol_for transaction line fieldscustentity_for entity fields (customer, vendor)custrecord_for custom record fieldscustevent_for calendar event fields
Examples:
Good: custbody_approval_status custentity_risk_rating custrecord_equip_serial_number
Avoid: custom_field_1 myfield cf_statusLabels and Names
- Use clear, business-friendly language
- Be descriptive but concise
- Use title case for labels
- Be consistent across similar fields
Data Model Design#
Normalize Data
- Avoid redundant data storage
- Use relationships between records
- Reference master data lists
Plan for Scalability
- Consider future growth
- Design flexible structures
- Build for reusability
Maintain Data Integrity
- Use validation rules
- Implement appropriate field types
- Make key fields mandatory
Field Management#
Field Creation#
Use Appropriate Field Types
- List fields for predefined values (not free text)
- Checkbox for binary choices
- Decimal fields for precise calculations
- Date fields for dates (not text)
Set Defaults Wisely
- Use defaults to speed data entry
- Ensure defaults make sense for most cases
- Don't default fields that need conscious selection
Validation
Good validation examples:- Email format validation- Date range checks- Numeric min/max values- Required field dependencies
Example formula for date validation:{custbody_ship_date} >= {trandate}Field Organization#
Limit Field Count
- Maximum 10-15 custom fields per record type
- Too many fields degrades performance
- Creates user confusion
Logical Grouping Group related fields:
- Contact information together
- Financial fields together
- Classification fields together
Tab Organization
- Put most-used fields on main tab
- Create custom tabs for specialized fields
- Don't hide important fields
Custom Records#
When to Create Custom Records#
Good Use Cases:
- Tracking unique business entities
- Complex data relationships
- Specialized reference lists with multiple attributes
- Industry-specific requirements
When to Avoid:
- Simple dropdown lists (use Custom Lists instead)
- Data that fits in existing records
- Temporary or one-time needs
Custom Record Design#
Start Simple
- Begin with essential fields only
- Add complexity as needed
- Easier to add than remove
Plan Relationships
- Map out parent-child relationships
- Consider how records connect
- Think about reporting needs
Access Control
- Define who needs access upfront
- Use permission lists appropriately
- Test with different roles
Forms Best Practices#
Form Design#
User-Centric Approach
- Design for the end user, not the administrator
- Minimize clicks and scrolling
- Show only relevant fields
Progressive Disclosure
- Show basic fields first
- Use tabs for advanced options
- Hide rarely-used fields
Mobile Considerations
- Keep forms simple for mobile users
- Essential fields should be accessible
- Test on mobile devices
Form Performance#
Optimize for Speed
- Limit fields on frequently-used forms
- Minimize complex scripts
- Avoid unnecessary sublists
- Test with realistic data volumes
Reduce Complexity
Form load time factors:- Number of fields (keep under 50)- Number of sublists (limit to 3-4)- Client script complexity- Formula field calculationsPerformance Optimization#
General Guidelines#
Field Limits
- Transaction body: 30-40 custom fields maximum
- Transaction line: 20-30 custom fields maximum
- Entity records: 40-50 custom fields maximum
- Custom records: 50-60 custom fields maximum
Formula Fields
- Use simple formulas when possible
- Avoid nested calculations
- Consider stored values vs. calculated fields
- Test formula performance
Search Performance
- Index key custom fields
- Use appropriate field types for searching
- Limit fields returned in searches
Database Considerations#
Storage Impact
- Text fields: 300 characters max
- Long text: Use sparingly (4,000 characters)
- Free-form text: Consider list fields instead
- Images and documents: Impact on backup/restore
Testing and Validation#
Test Process#
Sandbox Testing
- Build customization in sandbox
- Test with sample data
- Test with different roles
- Verify workflows and automations
- Check reports and searches
- Conduct user acceptance testing
Test Scenarios
- Happy path (normal use)
- Edge cases (unusual values)
- Error conditions (invalid data)
- Integration points
- Permission boundaries
Pre-Production Checklist
- All fields properly labeled
- Help text provided where needed
- Validation rules tested
- Permissions configured correctly
- Forms assigned to appropriate roles
- Documentation complete
- Training materials prepared
- Rollback plan ready
Documentation#
What to Document#
Field Documentation Create a spreadsheet tracking:
- Field name and ID
- Field type
- Purpose/description
- Where used (forms, workflows, scripts)
- Created date and creator
- Last modified date
Custom Record Documentation
- Record purpose and use cases
- Field definitions
- Relationships to other records
- Access permissions
- Sample usage scenarios
Form Documentation
- Form purpose
- Target users/roles
- Customizations made
- Special logic or scripts
- Training notes
Documentation Tools#
Internal Knowledge Base
- Centralized documentation location
- Searchable format
- Include screenshots
- Keep updated with changes
Field Descriptions Use the Description field on every custom field to document:
- Purpose
- Expected values
- Business rules
- Related fields
Migration Strategies#
Moving Customizations#
Sandbox to Production
- Document all customizations
- Create deployment checklist
- Schedule maintenance window
- Deploy during low-usage period
- Verify all functionality
- Monitor for issues
Between Accounts
- Use SuiteBundler for packages
- Document dependencies
- Test thoroughly in target account
- Plan for data migration
Data Migration#
Custom Record Data
- Use CSV import for initial load
- SuiteScript for complex migrations
- Validate data after import
- Plan for ongoing updates