Step-by-step guide to ingest data from NetSuite into RudderStack.
NetSuite is a popular business management suite, delivering ERP, CRM, and eCommerce solutions to nearly 25000 customers worldwide. With NetSuite, you get a unified, real-time business management platform to manage all your ERP, automation, analytics, and marketing operations effortlessly, and at a fraction of a cost of the traditional on-premise ERP tools.
This guide will help you set up NetSuite as a source in RudderStack. Once configured, RudderStack automatically ingests your specified NetSuite data, which can then be routed to your data warehouse destination via RudderStack.
All the Cloud Extract sources support sending data only to a data warehouse destination.

Configuring NetSuite

IP whitelisting

Depending on the setup of your NetSuite organization you might have to whitelist some RudderStack IP addresses. These IPs are: | | | |
To whitelist the IPs on NetSuite do the following.
    Sign into your NetSuite account as an administrator.
    In your NetSuite account, click Setup > Company > Company Information.
    In the Allowed IP addresses field, add a comma-delimited list of the RudderStack IPs mentioned above.
    Click Save.

Enabling token-based authentication

Next, you will have to enable token-based authentication for your NetSuite account. This is required to generate tokens and authenticate to the SuiteTalk API.
    On the Enable Features page, locate the Manage Authentication section. This should be after the SuiteTalk section.
    Check the Token-based Authentication box.
    Scroll to the bottom of the page and click Save.
Your settings should look like the following image:

Creating an integration

Next, you will need to create an integration record for RudderStack. This will uniquely identify RudderStack in your NetSuite account. Follow these steps:
    Using the global search, type page: integrations and click the Page: Manage Integrations result.
    On the Integrations page, click the New button.
    On the New Integration page, fill in the following fields: - Name: Enter a name for the integration. - State: Select Enabled.
    In the Authentication tab, select the Token-based Authentication option.
    Click the Save button. The confirmation page will display a Consumer key/secret section.
    Copy the Consumer Key and Secret somewhere handy. You’ll need these credentials to complete the setup in RudderStack.

Creating a NetSuite role and configuring permissions

To create a NetSuite Token ID and Token Secret, you first need to create a Role for RudderStack and an Employee that has this specific role.

Step 1: Creating a role

    Using the global search, type page: new role and click the Page: New Role result.
    On the Role page, enter a name for the role in the Name field (e.g. RudderStack).
    Select Two-factor Authentication Required to Not Required.
Then, under the Permissions section, go to Setup and assign the following permissions:
Assign Full permissions for the following:
    Web Services
    User Access Tokens
    Log In Using Access Tokens
    Deleted Records
Assign View permissions for the following:
    Custom Fields
    Custom Body Fields
    Perform Search (you can find this under the Lists section next to Setup)
For each pipeline resource that you want RudderStack to sync, you should give the relevant permissions for it to the Role. These resources are divided among these sections - Transactions, Reports, Lists, and Custom Records. Note that each permission should have View permissions.
It is extremely important that you have assigned the permissions for every resource, saved search or custom record that you want RudderStack to sync. This is required so that you don't encounter any RudderStack sync failures with permission-related issues.

Step 2: Creating an employee

To create an employee, navigate to Lists - Employees - Employees - New. Then, enter the name and email ID of the employee. Under the Access section, select Give Access, and Manually assign or change password. Proceed to add a password. Finally, add the Role which you have created in the previous step. Click on Save to save the settings.

Step 3: Creating an access token

In this step, you’ll generate access tokens for the integration record (application) and user role. You may need to first login as this user to properly generate the Access Token.
    Using the global search, type page: tokens and click the Page: Access Tokens result.
    Click the New Access Token button.
    On the Access Token page, fill in the following fields: - Application Name: Select the integration record you created. - User: Select the Stitch user you created. - Role: Select the Stitch role you created. - Token Name: Enter a name for the token.
    Click the Save button. The confirmation page will display a Token ID and Secret. Note: For security reasons, this is the only time they will be displayed.
    Copy the Token ID and Secret somewhere handy. You’ll need these credentials to complete the setup.
    You can now mark the Role as a Web Services Only Role by selecting the checkbox in the Manage Roles page.

Locating your NetSuite Account ID

    Using the global search, type page: web services and click the Page: Web Services Preferences result.
    In the Primary Information section, locate the Account ID field as shown in the image on the right.
Note: If your Account ID contains a suffix - 1234567_SB2, for example - it should be included when entering the ID into RudderStack.

Configuring RudderStack

To set up NetSuite as a source on the RudderStack dashboard, follow these steps:
    Log into your RudderStack dashboard.
    From the left panel, select Sources. Then, click on New Source, as shown:
    Next, select Cloud Extract and select NetSuite.
    Assign a name to your source and click on Next.

Specifying the connection settings

    Click on Create Credentials from Scratch.
If you have already configured a NetSuite account in RudderStack, your credentials will automatically appear under Choose an Account.
    Enter the relevant connection credentials required to set up your NetSuite source, as shown:
    The connection settings are as follows:
      Account Name : Enter your NetSuite account name here. You can get it from your NetSuite dashboard.
      Account ID : Enter the NetSuite account ID. You can get the account ID by going to your NetSuite dashboard and navigating to Setup - Integration - Web Services Preferences.
      Consumer Key : Your NetSuite consumer key goes here.
      Consumer Secret : Your NetSuite consumer secret goes here.
      Token ID : Enter your NetSuite token ID.
      Token Secret : Your NetSuite token secret needs to be entered here.
Refer to the FAQs section to know more about how to procure your NetSuite Consumer Key, Consumer Secret, Token ID, and Token Secret.

Setting the data update schedule

    Next, you will be required to set the Run Frequency to schedule the data import from your NetSuite account to RudderStack. You can also specify the time when you want this synchronization to start, by choosing the time under the Sync Starting At option.

Setting the historical sync date

    Set the Historical sync start date from when you want RudderStack all your historical NetSuite data. Also specify the RudderStack Restlet URL, and click Next.
To get the RudderStack Restlet URL, you need to first install this script in your NetSuite account, and paste the generated restlet URL in the RudderStack Restlet URL field. Refer to the FAQs section to know more about how to add the script in your NetSuite account.

Selecting the data to import

    Finally, choose the NetSuite data that you wish to ingest via RudderStack. You can either select all the data, or choose specific NetSuite data attributes, as per your requirement.
Note that none of the resources are selected by default, so you will have to do the selection manually.
    RudderStack also supports two special types of resources that you can ingest from NetSuite - custom records and saved searches. To import these resources, click on Add Resource on the top right, as shown above. You will see the following window:
    If you have already configured a NetSuite resource before, you can choose the Clone from option to use the values of that resource as is.
    Alternatively, select the appropriate Resource type you want to import:
      For a saved_search, provide a Name for the resource, select the Record type that is present in your NetSuite account, and the exact Saved search that you have created there.
      For a custom_record, provide a Name for the resource, and select the custom record that is present on your NetSuite account.
    Finally, save the information by clicking on Save.
That's it! NetSuite is now successfully configured as a source on your RudderStack dashboard.
RudderStack will start ingesting data from NetSuite as per the specified frequency. You can further connect this source to your data warehouse by clicking on Connect Destinations or Add Destination, as shown:
Use the Connect Destinations option if you have already configured a data warehouse destination in RudderStack. To configure a data warehouse destination from scratch, click on the Add Destination button.


How can I get the RudderStack Restlet URL?

To get the RudderStack Restlet URL, you need to first install this script in your NetSuite account, and paste the generated Restlet URL in the RudderStack Restlet URL field.
To create a new Script in your NetSuite account, navigate to Customization - Scripting - Scripts - New. Then, click on the + icon to create a new script. A new window will then pop up, asking you to select the downloaded script. Once you have attached it, click on Save, and then click Create Script Record.
Then add the Name of the script and the Owner, that is the Employee that you have created before (in Step 2 of the FAQ How can I get the NetSuite Token ID and Token Secret?). Then click on Save.
Then, you need to deploy the script. In order to do so, click on Deployments, add the script Title and click on Add. After the script is deployed, click on Save.
Finally, click on the title of your deployed script. You should be able to see the External URL, which is the RudderStack Restlet URL that you need to use in the NetSuite source configuration.

Is it possible to have multiple Cloud Extract sources writing to the same schema?

Yes, it is.
We have implemented a feature wherein RudderStack associates a table prefix for every Cloud Extract source writing to a warehouse schema. This way, multiple Cloud Extract sources can write to the same schema with different table prefixes.

Contact us

If you come across any issues while configuring NetSuite as a source on the RudderStack dashboard, feel free to contact us. or start a conversation on our Slack channel.
Last modified 10d ago