Need a customer name and email inside a SuiteScript? Loading the full record is the easy habit — and usually the expensive one. Use search.lookupFields when you only need a handful of values: var fields = search.lookupFields({ type: search.Type.CUSTOMER, id: customerId, columns: ['entityid', 'email'] }); var name = fields.entityid; var email = fields.email; Why it wins: Fewer governance units than record.load Faster on big records with lots of sublists Clear intent: “I only need these fields” Rule of thumb: if you’re not editing the record, don’t load it. Lookup what you need and move on.
If you’ve been building in NetSuite for more than five minutes, you’ve hit this question: “Should I use a saved search… or SuiteQL?” Let’s make this easy. Saved Search: Your everyday hero Use a saved search when: You want something quick and easy No SQL brainpower required Admins or users might need to tweak it later You’re building reports, lists, or dashboards You want built-in sharing and scheduling Why it rocks: ☑️It’s point-and-click ☑️It’s flexible enough for most needs ☑️NetSuite optimizes it for you In short: If it’s simple (or user-facing), go saved search. SuiteQL: When things get spicy Use SuiteQL when: Your saved search starts looking like a Frankenstein You need real joins (multiple levels) You want better control + performance in scripts You’re building integrations or doing heavy data lifting You need subqueries, aggregations, or complex logic Why it rocks: SQL-style queries = more power + precision Handles complex joins and data relationships way better Re...