Skip to main content

NetSuite Source Connector

The NetSuite source connector in DataSync lets you retrieve data from NetSuite for loading or synchronizing in your data warehouse. To configure a connection in DataSync, you must first create a custom NetSuite application in the NetSuite interface. The application credentials generated are required to fill out the connection properties in DataSync. After creating all required source connections, configure your destination source to complete the connection setup.

API Schemas

NetSuite supports two API schemas for retrieving data: SuiteTalk and SuiteQL. Each schema has different capabilities and connection options.

API schemaDescription
SuiteTalkSOAP-based API for communicating with NetSuite. Provides full access to custom records, fields, and lists. Saved searches are supported via both the SOAP API and RESTLets. Grouping and aggregations are not supported server-side and must be handled client-side. Supports only Token-Based Authentication; OAuthHeadless is not supported.
SuiteQLSQL-like API for querying NetSuite data. Supports joins, grouping, aggregations, and selecting specific columns. SuiteQL is read-only and intended for data retrieval. Recommended when only retrieving data is required.
note

You must have a NetSuite account with Administration permissions to configure the connection.

Set up a connection for NetSuite

Token-Based authentication

Create an integration

  1. Log in to NetSuite with an administrator account.
  2. Under Setup, select Integration, then Manage Integrations.
  3. Click New.
  4. Enter a name and description for the integration.
  5. Set the Concurrency Limit (maximum 5 sessions).
  6. Under Authentication, enable Token-Based Authentication.
  7. Click Save and copy the Client ID and Client Secret — you will need these in DataSync.

Enable the Token-Based authentication feature

  1. In the Setup tab, click Company.
  2. Select Enable Features.
  3. Under SuiteCloud, choose Manage Authentication.
  4. Select Token-Based Authentication and save changes.

Create or edit a role

  1. In the Setup tab, select User/Roles.
  2. Click Manage Roles.
  3. Create a new role or edit an existing role.
  4. In General, enable Core Administration Permissions.
  5. In Subsidiary Restrictions, select All and check Allow cross-subsidiary record viewing.
  6. Under Permissions and Setup, add:
    • Access Token Management (Full)
    • Log in using Access Tokens (Full)
    • REST Web Services (Full) – for SuiteQL only
    • SOAP Web Services (Full) – for SuiteQL only
    • Set Up SOAP Web Services (Full)
    • User Access Token (Full)
  7. In Reports, add SuiteAnalytics Workbook (Edit).
  8. (Optional) Add permissions required for your target tables in Transactions and Lists (see NetSuite Permissions).

Assign a role to a user

  1. In the List tab, select Employees.
  2. Open the target employee record.
  3. In Access, then Roles, assign the custom token role created above and save.

Create an access token

  1. In the Setup tab, select User/Roles.
  2. Choose Access Tokens, then create a new access token.
  3. Select the integration application, target user, and role.
  4. Click Save and copy the generated Client ID (OAuthAccessToken) and Client Secret (OAuthAccessTokenSecret) — you will need these in DataSync.

NetSuite permissions

Use these permissions if you are creating a custom role (required for Token-Based Authentication, optional for OAuthHeadless). If using the Administrator role with OAuthHeadless, all required permissions are already present. See the permissions in the different tabs: Transactions, Reports, Lists, Setup, Custom Record.

PermissionDescription
SuiteAnalytics Workbook (View)Access to SQL queries in SuiteAnalytics.
Customer (View)Sample customer access for testing RESTlet connections.
Access Token ManagementPermission for creation and management of access tokens for Token-Based Authentication.
Custom <type> Fields (View)Access to custom fields of the selected type. Required when using Include Custom List Columns:

  • Custom Column Fields
  • Custom Entity Fields
  • Custom Entry Fields
  • Custom Item Fields
  • Custom Transaction Fields
  • Custom Fields
Other Custom Fields (View)Access to other types of custom fields. Used with Include Custom Field Columns.
Custom Lists (View)Metadata access for custom list tables. Used with Include Custom List Tables
Custom Record Types (View)Metadata access for custom record tables. Used with Include Custom Record Tables.
Deleted Records (View)Information access for deleted records.
Log in Using Access TokensAuthentication access to REST or SOAP services using a token.
Log In using OAuth 2.0 Access TokensAuthentication access to REST services using OAuth 2.0.
REST Web ServicesRESTlet and web service access. Required when the schema is set to SuiteQL.
SOAP Web ServicesSOAP web service access. Required for testing and some custom field operations when the schema is set to SuiteTalk (default).
User Access TokensPermission for creation of user-specific tokens with Token-Based Authentication.
[Custom Record Name]Access to the specified custom record table.

OAuthHeadless authentication

  1. Log in to NetSuite with an administrator account.
  2. Under Setup, select the Integration, then Manage Integrations.
  3. Click New.
  4. Enter a name and description for the integration.
  5. Set the Concurrency Limit (maximum 5 sessions).
  6. Enable TBA: Issue token endpoint and TBA: Authorization Flow.
  7. Open DataSync, start Create a source connection for NetSuite, and copy the Callback URL from Connection Properties.
  8. Add the Callback URL in NetSuite in both the Callback URL and Redirect URI fields.
  9. Enable Authorization Code Grant and Public Client.
  10. Select appropriate scopes (recommend Restlets and Rest Web Services).
  11. Set OAuth 2.0 Consent Policy to Always Ask.
  12. Select User Credentials.
  13. Click Save and copy the Client ID and Client Secret — you will need these in DataSync.

Create a source connection in DataSync

  1. Log in to DataSync.
  2. From the welcome screen, select Connections.
  3. Next to Source Connections, click New.
  4. Select NetSuite.
  5. In the Connection Properties panel, enter the connection properties.
  6. (Optional) In the Additional Connection Properties panel, select Add property and enter the parameters for each property.
  7. In the Advanced Settings panel, configure the settings, including the Tracking Type and other values according to your requirements.
  8. Click Save. If OAuthHeadless was selected, you'll be redirected to an authorization web page. Select Continue to complete the connection.

Parameters

Connection properties

ParameterDescription
DescriptionUnique name for the connection. Example: NetSuite
SchemaNetSuite schema used for the connection: SuiteQL or SuiteTalk. For SuiteTalk, use Token-Based Authentication.
Account IDNetSuite account identifier. Found in Setup > Company > Company Information. Example: 1234567_SB1
Application IDNetSuite application identifier provided after saving the application in Setup > Integration > Manage Integrations. Always include it to ensure proper access.
ScopeScope list for OAuthHeadless. Values: restlets, rest_webservices, or restlets rest_webservices (both, separated by a space). Used to obtain access and refresh tokens.
Authentication ModeAuthentication method. Options: TokenBased or OAuthHeadless. SuiteTalk connections require TokenBased mode and cannot be changed. OAuthHeadless connections remain active for a maximum of 7 days before requiring manual reauthentication.
Callback URLURL generated by DataSync when using OAuthHeadless. Copy and paste into NetSuite’s application configuration.
Client IDOAuth application client identifier provided by NetSuite during registration. Example: abc123clientid
Client SecretOAuth application secret provided by NetSuite during registration. Example: xyz987secretkey
Access Token(Only TokenBased and SuiteTalk) Token used instead of username and password for SuiteTalk connections. Example: abc123accesstoken
Token Secret(Only TokenBased and SuiteTalk) Secret used with the access token for authentication. Example: xyz987tokensecret
Row Scan DepthNumber of rows scanned to determine table column structure. Range: 1–999. Default: 50.
TimeoutTime in seconds to wait for connection opening and query execution before timeout. Long-running queries (e.g., retrieving 1,000 Sales Orders with AggregateColumnMode set to ListAndRetrieve) may take over 10 minutes. For child tables or aggregate columns, consider setting Timeout to 0.
Include Child TablesChild table inclusion option. Adds tables for all child lists of an entity (e.g., CashRefund table with ItemList child table as CashRefund_ItemList). Useful for showing items as individual rows. May increase table count significantly.
Include Custom Field ColumnsCustom field inclusion option. Adds custom fields to base tables as individual columns. May reduce first-time metadata load performance. Metadata is cached per connection and cleared when the connection closes.
Include Custom List TablesCustom list inclusion option. Adds custom list types as separate tables. May reduce first-time metadata load performance. Metadata is cached per connection and cleared when the connection closes.
Include Custom Record TablesCustom record inclusion option. Adds custom record types as separate tables. May reduce first-time metadata load performance. Metadata is cached per connection and cleared when the connection closes.
Aggregate ColumnsAggregated column inclusion option. Displays aggregated values from child collections. Requires Include Child Tables to be enabled.
Verbosity
  • 1 – Log queries, row counts, execution start/end, errors.
  • 2 – Includes level 1 plus cache queries, HTTP headers.
  • 3 – Includes level 2 plus request/response bodies.
  • 4 – Includes level 3 plus transport-level communication.
  • 5 – Includes level 4 plus all interface commands.
Enable PoolingConnection pooling option for performance.
Pool idle timeoutMaximum idle time for connections before returning them to the pool, in seconds.
Max Pool SizeMaximum number of connections allowed in the pool.
Pool wait timeMaximum wait time for connection allocation before error is thrown, in seconds.

Additional connection properties

Additional connection string properties not specified in the Connection Properties panel. For each property added, you can choose Visible or Encrypted. Selecting Encrypted hides the value from the interface and stores it encrypted in the back end, such as when defining passwords.

ParameterDescription
PropertyConnection string property that defines the action or behavior. Example: ReadOnly
ValueValue for the property. Example: True
TypeVisibility of the property: Visible or Encrypted.

Advanced settings

Advanced settings control how the NetSuite connector tracks changes, handles regional and time configuration, and processes data batches during extraction. These options allow fine‑tuning for performance and accuracy, and should be configured according to your system environment and operational requirements.

SettingDescription
Tracking TypeMethod for tracking changes: None or Date.
RegionRegion setting for the connector, if required by your setup.
Time ZoneTime zone matching the NetSuite application server.
Time OffsetRefresh offset in seconds to compensate for timing issues in record selection. Minimum value is 0; maximum is 3600 seconds.
Batch SizeQuantity of records processed in each batch during extraction. Larger batch sizes increase memory usage but can improve performance up to a point. The default value is 2000 and the maximum should not exceed 10000 records. Adjust according to your network speed and disk performance; in most cases the default (2000) works best.

Example