> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcargo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# NetSuite

> Connect your NetSuite ERP to sync and manage business records

NetSuite is a cloud-based enterprise resource planning (ERP) software that helps businesses manage financials, operations, and customer relationships. The Cargo integration enables you to sync and manage records across all your NetSuite objects.

## Authentication

NetSuite uses Token-Based Authentication (TBA) for secure API access.

### Connection details

| Field               | Description              |
| ------------------- | ------------------------ |
| **Account ID**      | Your NetSuite account ID |
| **Consumer Key**    | OAuth consumer key       |
| **Consumer Secret** | OAuth consumer secret    |
| **Token**           | Access token             |
| **Token Secret**    | Access token secret      |

<Tip>
  Generate your credentials in NetSuite under **Setup → Integration → Manage Integrations**.
</Tip>

<Note>
  A companion **Netsuite (SOAP)** integration (catalog slug `netsuiteSoap`)
  talks to NetSuite's SuiteTalk SOAP web services instead of the API used
  here. It authenticates with the same token-based credentials and exposes a
  single **Insert record** action (returning the created record's id). Use it
  when a record type is only writable through the SOAP interface; use this
  integration for everything else.
</Note>

***

## NetSuite actions

<Tip>
  NetSuite actions support all standard and custom record types in your account.
</Tip>

### Search records

Retrieve multiple records from any NetSuite object.

**Configuration**

| Field           | Description                                |
| --------------- | ------------------------------------------ |
| **Object type** | Select the record type to search           |
| **Filter**      | Define filter conditions                   |
| **Sort**        | Sort results by field                      |
| **Limit**       | Maximum records to retrieve (default: 100) |

### Insert record

Create a new record in NetSuite.

**Configuration**

| Field           | Description                     |
| --------------- | ------------------------------- |
| **Object type** | Select the record type          |
| **Mappings**    | Map field values for the record |

### Update records

Update existing records in NetSuite.

**Configuration**

| Field                               | Description                             |
| ----------------------------------- | --------------------------------------- |
| **Object type**                     | Select the record type                  |
| **Matching Value**                  | Value to match against                  |
| **Netsuite Matching Property Name** | Property to match on                    |
| **Mappings**                        | Map fields to update                    |
| **Skip if exist**                   | Update only if field is currently empty |

### Upsert records

Insert or update records based on a matching field.

**Configuration**

| Field                               | Description                             |
| ----------------------------------- | --------------------------------------- |
| **Object type**                     | Select the record type                  |
| **Matching Value**                  | Value to match against                  |
| **Netsuite Matching Property Name** | Property to match on                    |
| **Mappings**                        | Map field values                        |
| **Skip if exist**                   | Update only if field is currently empty |

### Delete records

Delete records from NetSuite.

**Configuration**

| Field                               | Description            |
| ----------------------------------- | ---------------------- |
| **Object type**                     | Select the record type |
| **Matching Value**                  | Value to match against |
| **Netsuite Matching Property Name** | Property to match on   |

<Warning>
  Delete operations are permanent. Ensure you have proper filters configured.
</Warning>

***

## Data models

Create data models from any NetSuite record type with incremental sync support.

### Configuration

| Field           | Description                    |
| --------------- | ------------------------------ |
| **Object type** | Select the record type to sync |

### Supported record types

<AccordionGroup>
  <Accordion title="Financial records" icon="dollar-sign">
    Sync invoices, transactions, journal entries, and other financial data.
  </Accordion>

  <Accordion title="Customer records" icon="users">
    Sync customer and contact information with full relationship data.
  </Accordion>

  <Accordion title="Inventory records" icon="boxes-stacked">
    Track inventory items, locations, and stock levels.
  </Accordion>

  <Accordion title="Custom records" icon="puzzle-piece">
    Access any custom record types defined in your NetSuite instance.
  </Accordion>
</AccordionGroup>

***

## Best practices

1. **Use incremental sync** - NetSuite data models support incremental sync for efficient updates
2. **Rate limits** - NetSuite has strict rate limits (15 requests/minute). Plan workflows accordingly
3. **Custom fields** - All custom fields are automatically available through dynamic field selection
