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
REST 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 > SuiteTalk (Web Services) and enable REST Web Services. Once you check this box, NetSuite prompts you to agree to terms of service.
On the same page, under Manage Authentication, enable either :
Token Based Authentication, if you plan on connecting Hightouch to NetSuite with basic authentication
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 via Basic Auth or OAuth.
OAuth only requires you to login to your NetSuite account rather than enter credentials.
For the Authentication method, select OAuth and log into your NetSuite account. Once successful, you will be redirected back to Hightouch to enter a descriptive name for your destination and complete setup.
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.
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.
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 REST 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. To make that reference, you need to map a JSON object like this to the entity field:
{"id":1}
You can use also external IDs for references, for example:
The inline mapper can also help you create arrays.
NetSuite arrays are often wrapped in a JSON object.
For example, an invoice supports an item field that expects an array of items:
Refer to the inline mapping docs to learn how to create an array like this and what the required data format for your model is. To see the schema that NetSuite expects for different entities, go to the REST browser.
Updating sublist properties can result in appending the mapped items to the record's existing sublist.
This may result in unwanted duplicates. You can explicitly specify in Hightouch to overwrite your
mapped sublist items in NetSuite. Overwriting the sublist removes all existing items and updates
it with incoming data.
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.