# Oracle NetSuite SuiteAnalytics Connect Foundry to Oracle NetSuite via SuiteAnalytics Connect to sync data from your NetSuite ERP to Foundry. ## Supported capabilities | Capability | Status | | --- |--- | | Exploration | 🟢 Generally available | | Batch syncs | 🟢 Generally available | | Incremental | 🟢 Generally available | ## Setup SuiteAnalytics must be enabled on your NetSuite instance. See the [NetSuite documentation ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_3996274388.html#To-enable-the-Connect-Service-feature%3A) to enable it. 1. Open the [Data Connection](../../data-connection/overview/index.md) application and select **+ New Source** in the upper right corner of the screen. 2. Select **JDBC** from the available connector types. 3. Follow the additional configuration prompts to continue the setup of your connector using the information in the sections below. Learn more about [setting up a connector](../../data-connection/set-up-source/index.md) in Foundry. ## Authentication You can authenticate with SuiteAnalytics with a **username/password** combination. We recommend the use of service user credentials rather than individual user credentials. ### Configure user roles and permissions in NetSuite In NetSuite, to control access, each user is assigned one or more roles, and each role is a collection of permissions that define what tasks the user can perform and what data they can access. We recommend the following configuration for the user that will connect to Foundry: 1. Create a dedicated role with appropriate permissions. 1. From NetSuite’s tool bar, select **Setup** > **Users/Roles** > **Manage Roles** > **New** and provide an explicit name to the role. We recommend using `foundry-role`. 2. Add system-wide permissions to the role by navigating to the bottom of the role page and selecting **Permissions** > **Setup**. Select **SuiteAnalytics Connect**, select **Add** then **Save**. * *Note: NetSuite documentation recommends adding the **SuiteAnalytics Connect: Read All** permission, but it is irrelevant for NetSuite2.com data source (see [here for details ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_3998867068.html#bridgehead_1539708454)). Adding this permission will not have any effect.* 3. Add table permissions to the role for tables you want to be able to query from Foundry by navigating to the bottom of the role page and selecting **Permissions** > **Lists**. Select the tables you want, select **Add** then **Save**. 2. Assign the new role to a user. 1. From NetSuite’s tool bar, select **Setup** > **Users/Roles** > **Manage Users**. Select the user you want to use to connect to Foundry, and select **Edit**. 2. Navigate to the **Access** tab and make sure the **Give Access** checkbox is ticked. 3. In the **Roles** tab, select the newly created role (`foundry-role`) from the dropdown list, select **Add** then **Save**. * *Note: NetSuite documentation alternatively recommends using the **Data Warehouse Integrator** role instead of a custom one. However, this role requires access with token-based authentication (see [here for more details ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_3998867068.html#subsect_162885566786)), which is not available in Foundry.* To verify that you added the correct permissions, log in as the user you have assigned the new role to, and check that you can view all the data that you expect. ## Networking The SuiteAnalytics connector requires network access to the NetSuite Connect instance to which you want to connect. ### Foundry worker connection If your connection runs on a [Foundry worker](../../data-connection/core-concepts/index.md#foundry-worker), the appropriate [egress policies](../../administration/configure-egress/index.md) must be added when setting up the source. The **service host** and **port** that need to be allowed can be found on **NetSuite's configuration homepage** at `https://.app.netsuite.com/app/external/odbc/suiteAnalyticsConnectDownload.nl`. To access this page without your NetSuite account ID: 1. Log in to the homepage of your NetSuite account. 2. Find the bottom-left **Settings** panel and select **Set Up SuiteAnalytics Connect**. The **service host** is typically of the form **\.connect.api.netsuite.com** and the port **1708**. If such an egress policy does not exist, you can [request a new one](../../data-connection/set-up-source/index.md#configure-a-network-policy); otherwise you can [add it](../../data-connection/set-up-source/index.md#choose-your-network-policy-foundry-worker). :::callout{theme="warning"} Because this is using a non-HTTPS protocol, you will need to add both: * A DNS policy referencing your service host by name, and * A CIDR policy referencing explicitly the IP range. You can get the IP range of your NetSuite instance by running `nslookup you-service-host` in a terminal. IP addresses of NetSuite services may change at any time without notice. ::: ## Connection details | Option | Required? | Description | | --- | --- | --- | | `URL` | Yes | In the form `jdbc:ns://:` where `SERVICE_HOST` and `SERVICE_PORT` can be retrieved from [NetSuite's configuration homepage](#foundry-worker-connection). Typically of the form **`jdbc:ns://.connect.api.netsuite.com:1708`**| | `Driver class` | Yes | Needs to be **com.netsuite.jdbc.openaccess.OpenAccessDriver** | | `Drivers` | Yes | For [Foundry worker](../../data-connection/core-concepts/index.md#foundry-worker), upload the latest JDBC driver from [NetSuite's configuration homepage](#foundry-worker-connection). For [agent worker](../../data-connection/core-concepts/index.md#agent-worker) \[Legacy] connections, the same JDBC driver must be properly signed before upload on the agent — contact Palantir Support. See how to [add drivers to an agent](../custom-jdbc-sources/index.md#jdbc-drivers) for more details. | | `Credentials` | Yes | The **username** and **password** of the user used to connect to Foundry. | | `JDBC properties` | Yes | The entire list of available properties is described [here ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4425626714.html#Connection-Properties). The following properties are mandatory:

  - **CustomProperties** : `(AccountID=;RoleID=)`
*The **ROLE\_ID** is the Internal ID associated with the role you assigned to the user (`foundry-role`). You can find this value next to the role name on the **Setup** > **Users/Roles** > **Manage Roles** page. If Internal ID is not displayed, see [how to turn it on ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N3423996.html#Setting-the-Internal-ID-Preference).*

  - **NegotiateSSLClose** : `false`

  - **ServerDataSource** : `NetSuite2.com`
*As of November 8, 2021, new Connect users can access the Connect Service using the NetSuite2.com data source only. See [Oracle NetSuite's documentation ↗](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_N752122.html#Connect-Data-Source) for more details.*

  - **encrypted** : `1`| Other connection parameters are the same as for any [JDBC source](../custom-jdbc-sources/index.md#jdbc-properties). ## Creating a sync The NetSuite SuiteAnalytics source can be [explored](../../data-connection/source-exploration/index.md) to discover tables and create new syncs. You can also [manually create new syncs](../../data-connection/set-up-sync/index.md) from the overview page of the source.