> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/sales/netsuite/data-overview.md).

# Data Overview

Coupler.io's NetSuite source offers two data types: **Objects**, which pulls standard or custom NetSuite records through the REST Record API, and **SuiteQL**, which runs a custom query you write yourself.

## Objects

{% hint style="info" %}
The list of available objects is fetched live from your NetSuite account's REST Record API metadata catalog, so it reflects exactly the standard and custom record types enabled for your account and role — not a fixed list. Below are common examples grouped by area.
{% endhint %}

#### Transactions

| Object                          | Description                                                            |
| ------------------------------- | ---------------------------------------------------------------------- |
| **Invoice**                     | Customer invoices with line items, tax, and payment terms              |
| **Sales Order**                 | Sales orders with customers, items, quantities, and fulfillment status |
| **Purchase Order**              | Purchase orders with vendors, line items, and receiving status         |
| **Vendor Bill**                 | Payables from suppliers with line items and due dates                  |
| **Journal Entry**               | General ledger entries with debits, credits, and posting accounts      |
| **Credit Memo**                 | Credit memos reducing amounts owed by customers                        |
| **Vendor Credit**               | Credits reducing amounts owed to suppliers                             |
| **Item Fulfillment**            | Shipment records against sales orders                                  |
| **Item Receipt**                | Receiving records for purchased or transferred inventory               |
| **Expense Report**              | Employee expense reports with line items and reimbursement status      |
| **Deposit / Cash Sale / Check** | Cash and payment transactions                                          |

#### Lists and setup records

| Object                                     | Description                                                |
| ------------------------------------------ | ---------------------------------------------------------- |
| **Account**                                | Chart of accounts, including types, numbers, and hierarchy |
| **Subsidiary**                             | Multi-entity records for NetSuite OneWorld accounts        |
| **Location / Department / Classification** | Segment values used for reporting and transaction tagging  |
| **Currency / Currency Rate**               | Currency definitions and exchange rates                    |
| **Term**                                   | Payment terms and due-date rules                           |
| **Accounting Period**                      | Fiscal periods with open/closed status                     |

#### Entities and items

| Object                                        | Description                                              |
| --------------------------------------------- | -------------------------------------------------------- |
| **Employee**                                  | Employee records with job and payroll information        |
| **Contact**                                   | Contact records linked to customers and partners         |
| **Vendor**                                    | Vendor records with payment details and purchase history |
| **Inventory Item / Assembly Item / Kit Item** | Stocked, manufactured, and bundled items                 |
| **Service Sale/Resale/Purchase Item**         | Service items without inventory tracking                 |

This is a representative subset — a typical NetSuite account exposes 100+ standard record types, plus any custom record types you've created.

#### Entity parameters

| Parameter          | Purpose                                                                                                     |
| ------------------ | ----------------------------------------------------------------------------------------------------------- |
| **Object**         | The record type to export. Options load from your account; you can also type a custom record's internal ID. |
| **Start date**     | Export only records with a last-modified date on or after this date.                                        |
| **Window in days** | Splits the sync into date windows of this size (default 30) when paging through a record type.              |

{% hint style="info" %}
**Start date** and **Window in days** only apply to record types that expose a last-modified field (`lastModifiedDate` for standard records, `lastmodified` for most custom records). Record types without one of these fields are synced in full on every run.
{% endhint %}

## SuiteQL

SuiteQL is NetSuite's SQL-like query language. Choose the **SuiteQL** data type and write a query against NetSuite's record tables — useful when you need a join across records, a calculated field, or filters that aren't exposed as Object parameters.

```sql
SELECT id, tranid, entity, trandate, total
FROM transaction
WHERE type = 'CustInvc'
AND trandate >= TO_DATE('2026-01-01', 'YYYY-MM-DD')
```

{% hint style="warning" %}
SuiteQL runs as a full data pull on every run — there's no Start date or incremental option for this data type. NetSuite also caps SuiteQL results at 100,000 rows per query; narrow your `WHERE` clause or aggregate in the query if you hit this limit.
{% endhint %}

See NetSuite's [SuiteQL documentation](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156257770590.html) for table and field references and query syntax.

## Use cases by role

{% tabs %}
{% tab title="Finance / Accounting" %}
Export Invoice, Vendor Bill, and Journal Entry objects to build AR/AP aging and GL reporting outside NetSuite's native reports. Use Start date to pull only recently modified transactions for daily refreshes.
{% endtab %}

{% tab title="Sales / Revenue Ops" %}
Export Sales Order and Customer-related records to track pipeline and bookings alongside CRM data. Use SuiteQL to join sales orders with items or customers for a single flattened export.
{% endtab %}

{% tab title="Operations / Inventory" %}
Export Inventory Item, Item Fulfillment, and Item Receipt objects to monitor stock levels and fulfillment performance. Combine with Purchase Order data for supply chain visibility.
{% endtab %}

{% tab title="IT / Admin" %}
Use SuiteQL to pull custom record types or fields not exposed as a standard Object, and scope the Access Token's role to only the records a given data flow needs.
{% endtab %}
{% endtabs %}

## Platform-specific notes

* **Token scope determines what you see** — The Access Token is tied to a specific NetSuite role. If an object doesn't appear, or returns a permission error, the role behind your token doesn't have access to it.
* **Objects fetch full record detail per row** — For each object, Coupler.io first lists matching records, then requests each one individually with sub-resources expanded. Large objects with many records take longer than the row count alone suggests.
* **Records without a last-modified field sync in full each run** — Some standard and most custom record types don't expose `lastModifiedDate`/`lastmodified`, so Start date has no effect on them and every run re-pulls the entire record type.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/sales/netsuite/data-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
