Search documentation...


NetSuite (REST)

Sync business-critical data from your data warehouse to Netsuite with Hightouch


Hightouch allows you to use NetSuite's REST or SOAP endpoints. This destination connects with the REST endpoints and it's recommended if you are using any of the following NetSuite features:

  • SuiteBilling
  • Custom Transactions

While this destination also offers compatibility with some of NetSuite's standard entities (for example Invoices, customers, accounts, etc.), it's suggested to use our other NetSuite destination thatr supports the entire NetSuite entity catalog.


To enable syncing with NetSuite, you will need to enable REST Web Services and Token Based Authentication

You may need admin roles in order to perform these steps. In NetSuite, navigate to Setup > Company > Enable Features > SuiteTalk (Web Services) and enable "REST Web Services".

On the same page, enable "Token Based Authentication" in the Manage Authentication section. It should look similar to the screenshot below.

Enable REST Web services and Token-based authentication

Your account is now ready to start receiving data from an Integration. The next step is to create the integration credentials, so Hightouch can successfully upload data to it.


On the same Setup page, navigate to Integrations, on the menu on the left of the page. Then go to Manage Integrations. On that screen you will see a list of enabled integrations for your account.

Create a new one, clicking on the "New" button. You now have the opportunity to choose a name for the integration (use a name that can be easily associated with Hightouch, like "Hightouch Destination" ) and enable Token-Base Authentication:

Create a new Integration for Hightouch

To grant access to Hightouch to synchronize data between your source and NetSuite, you need to create a role, a user and a authentication token for the integration. Hightouch will use that information to authenticate before submitting any data.

Save the Customer Key and Customer Secret for the integration, as they will be part of the destination configuration.


Without leaving the Setup page, now click on Users/Roles. The menu will show an option to Manage roles. Create a new one with a distinctive name, like "Hightouch Role". Then you can mark this role as "Web Services only Role". Hightouch requires the following permissions to be able to work properly:

  • In the tab Setup:
    • Custom Body Fields
    • Custom Fields
    • Custom Record Types
    • Custom Item Fields
    • Login using Access Tokens
    • REST Web Services
    • Access token management

Role to grant access to upload data

Important: You will also need to include permissions with the full level for all of the objects you plan to sync to. For example, if you want to sync to SalesOrder, you will need to go to the Transactions tab and select Sales Order from the list.


Now you can proceed to create a new user (on Manage Users). Fill the Employee form with all required fields, and assign a secure password for it on the Access tab. Then also assign the new role to this user.

New user

Access Token

Lastly, you need a new Token. On the same User/Role page, go to Access Tokens. Now you can select the name of the Integration, the new role and the new user. When you click on Save, NetSuite will display a Token Id and a Token Secret. Keep these values in a secure location.

Destination setup

You are now ready to create the destination in Hightouch! Go to our destinations catalog and select NetSuite. Introduce your Account Id, Customer Key, Customer Secret, Token Id and Token Secret from the previous steps. Also select a good name for it.

If your account is a Sandbox account, you would need to include the suffix _SB<number> as part of the account id.

When the destination is created, you will have the opportunity to test the configuration on the setup form:

Your new NetSuite destination is ready

Sending data

Hightouch NetSuite destination allows you to send data as any supported entity. After you have created your model, select the object or entity that you want to transform your data to, for example, an Invoice, or a Customer.

The mappings mirror 1 to 1 the NetSuite REST schema. That means that some of your columns might need to be JSON objects. To see the schema that NetSuite expects, go to the REST browser.

If you have any issues creating the correct model, let us know and we'll be happy to help.

JSON values

Some of the REST fields are expected to be JSON objects. The most common one are references to other objects. For example, in an Invoice, the entity field points to a Customer 1. To make that reference, your column should contain a string or a JSON object (if the database supports it) like this:

{ "id": 1 }

You can use also external IDs for references, as:

{ "externalId": 1 }


Arrays are a bit special on NetSuite schema. They are usually wrapped in a JSON object. For example, an Invoice supports a field item that is an array of items:

  "items": [
    { "item": { "id": "8" }, "line": 1, "amount": 1, "price": { "id": "-1" } }

For more information on how to format the values expected by NetSuite, check the REST browser.

    Need help?

    Our team is relentlessly focused on your success. We're ready to jump on a call to help unblock you.

    • Connection issues with your data warehouse?
    • Confusing API responses from destination systems?
    • Unsupported destination objects or modes?
    • Help with complex SQL queries?

    Feature Requests?

    If you see something that's missing from our app, let us know and we'll work with you to build it!

    We want to hear your suggestions for new sources, destinations, and other features that would help you activate your data.

On this page

REST vs SOAPSetupIntegrationRoleUserAccess TokenDestination setupSending dataJSON valuesArrays

Was this page helpful?