Saved Search vs SuiteQL: Choosing How to Get Data Out
Two ways of retrieving NetSuite data with different characters. The right choice decides whether a report can be maintained by the business or depends on a developer forever.
Saved Search is NetSuite's native approach: criteria and columns assembled through the interface, no code required. SuiteQL lets you write SQL-like queries straight against the underlying tables. Both read the same data, but they suit different needs.
| Aspect | Saved Search | SuiteQL |
|---|---|---|
| Built through | The NetSuite interface | An SQL-based query |
| Maintainable by business users | Yes | No, a developer is needed |
| Joins across tables | Limited to the relations provided | Flexible |
| Complex aggregation | Limited | Strong |
| Reusable from a script | search.load by ID | query.runSuiteQL |
| Appears in the Reports menu | Yes | No |
When to pick which
If the result will be opened regularly by the finance team and its criteria may change, Saved Search is better even though it feels more constrained — they can adjust it themselves without queuing a request to IT. If the result is raw material for another system, or needs joins and aggregation the interface cannot reach, SuiteQL is the right tool.
SELECT
c.entityid AS customer,
COUNT(t.id) AS open_invoices,
SUM(t.foreignamountunpaid) AS outstanding
FROM transaction t
JOIN customer c ON c.id = t.entity
WHERE t.type = 'CustInvc'
AND t.foreignamountunpaid > 0
GROUP BY c.entityid
ORDER BY outstanding DESC