Before you can use Hightouch to sync data to NetSuite, you need to create and and configure a NetSuite integration. Then, to grant access to Hightouch to synchronize data between your source and NetSuite, you need to create a role, a user, and an authentication token for the integration.
Depending on your NetSuite account's setup, you may need an admin role to complete setup in NetSuite.
Netsuite permission changes to a role or user don't occur immediately. These changes can take a few minutes or hours to go into effect.
Go to Setup > Integration > Manage Integrations or use the global search to find and go to the Manage Integrations page.
This page shows a list of enabled integrations for your account.
Click New to create a new integration with the following properties:
A Name that can easily be associated with Hightouch, for example, "Hightouch Integration"
Set State to Enabled
Check Token-Based Authentication
Uncheck TBA:Authorization flow
Uncheck Authorization Code Grant
Leave other authentication options unchanged.
Scroll to the bottom of the page and click Save.
Scroll to Client credentials and Copy and store the Consumer Key / Client ID and Consumer Secret / Client secret in a secure location. You'll need them to connect to Hightouch.
Go to Setup > Users/Roles > Manage Roles and click New or use the global search to find and go to the New Role page.
Create a role with the following properites:
A descriptive Name, for example, "Hightouch Role."
Check Do not restrict employee fields
For multi-subsidiary NetSuite users, check All under Accessible subsidiaries
Under Authentication, check Web Services only Role.
Add the following permissions under Permissions > Setup
Access Token Management: Full
Custom Body Fields: Full
Custom Column Fields: Full
Custom Entity Fields: Full
Custom Fields: Full
Custom Item Fields: Full
SOAP Web Services: Full
User Access Tokens: Full
Under Permissions > Lists and Permissions > Transactions, provide Full permissions for the NetSuite entities you plan on syncing to. For example, if you want to update sales orders, you need to go to the Transactions tab and select Sales Order from the list. If you want to update accounts, you need to go to Lists and select Accounts from the list.
Go to the Setup > Users/Roles > Access Tokens page, or use the global search to find it.
Click New Access Token.
Select the integration, user, and role you previously configured.
When you click Save, NetSuite displays a Token ID and a Token Secret. Copy and store them in a secure location. You'll need them to connect to Hightouch.
Finally, go to Setup > Company > Enable Features > SuiteCloud > SuiteTalk (Web Services) and enable SOAP Web Services. Once you check this box, NetSuite prompts you to agree to terms of service.
On the same page, under Manage Authentication, enable Token Based Authentication. It should look similar to the screenshot below.
You're now ready to create a NetSuite destination in Hightouch. Go to the Destinations overview page and click the Add destination button. Select NetSuite and click Continue.
You can then authenticate Hightouch to NetSuite by entering the following required fields into Hightouch:
Account ID: You can find this on your Company information page in NetSuite.
Consumer Key: From your new integration
Consumer Secret: From your new integration
Token Key: From your new access token
Token Secret: From your new access token
If your account is a Sandbox account, you need to include the suffix _SB<number> as part of the Account ID:
SB should be in uppercase.
The Sandbox suffix should be included with an underscore (_).
For example, if the Account ID in your sandbox is 1234567-sb1, then you need to set your Account ID as 1234567_SB1 in your sync configuration.
Once you've set up your NetSuite destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the NetSuite destination you want to sync to.
The Hightouch NetSuite destination allows you to sync data to supported NetSuite entities, for example, customers, invoices, vendors, etc. Hightouch also supports syncing custom records types—all custom records are part of the
CustomRecords namespace.
The specific entities you can sync to depend on your NetSuite implementation. You can view your available entities in the dropdown. Because of the large catalog size, it's best to search for the entities you're interested in.
If you like, you can choose to initialize the entity with a related record. For example, an invoice can be created from a sales order. If you enable this, you then need to select the base record.
To match source rows to entities in Netsuite, you need to select a source column and corresponding Netsuite field.
Depending on the sync mode you select, you can match on the following Netsuite fields:
You can sync columns from your model to NetSuite default and custom fields.
Mappings mirror the NetSuite SOAP schema.
That means some of your model columns might need to be JSON objects.
NetSuite generally expects JSON objects when an entity references another entity. For example, in an invoice, the entity field can reference a customer, partner, vendor, employee, contact, etc. by their ID. If you select a numerical model column with external or internal IDs, Hightouch automatically converts this to the JSON object NetSuite expects.
For other JSON objects, such as nested objects or arrays, you need to ensure your model columns match NetSuite's schema expectations.
To date, our customers haven't experienced any errors while using this destination. If you run into any issues, please don't hesitate to . We're here to help.
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.