> For the complete documentation index, see [llms.txt](https://docs.violetlabs.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.violetlabs.com/apps/n/netsuite/configure-netsuite-to-connect.md).

# Configure NetSuite to connect

#### Generate credentials

First, you'll need to generate a Consumer Key and a Consumer Secret.

1. In NetSuite, navigate to Setup → Integration → Manage Integrations → New
   1. Provide a **Name**, eg. "Violet"
   2. Ensure **State** is set to Enabled
   3. Under **Authentication**, check **Token-Based Authentication**

<figure><img src="/files/nOboBN2e6P6qP29bxs0k" alt="" width="563"><figcaption></figcaption></figure>

2. Click **Save**. Under **Client Credentials,** a Consumer Key and Consumer Secret will appear. Copy these and keep them somewhere secure.

#### Create a role with the necessary permissions

Next, you'll need to create a role and assign permissions.

1. If you don’t already have a role that you will want to grant Violet access to, navigate to Setup → Users/Roles → Manage Roles → New Role.
2. Provide a Name for the role, eg. "Violet REST API User".
3. Under **Authentication,** check the box for **Web Services Only Role.**

   <figure><img src="/files/IkrlblmhiiYJjLlUIeYp" alt="" width="294"><figcaption></figcaption></figure>
4. Under **Subsidiary Restrictions,** check the box for **Allow Cross-Subsidiary Record Viewing.**

   &#x20;                                                    <img src="/files/GZwlcZMH1McITeRRYO5K" alt="" data-size="original">
5. Next, assign the necessary **Permissions**: for each of the below sections, search for the specified permission and click **Add**.\
   \
   *Note, **Full** permissions are required for Violet to write data into NetSuite, for example when syncing Purchase Order, Receipt or Inventory Adjustment data into NetSuite from an MES. If you don't need to sync data to NetSuite and will only be ingesting data into Violet, you can set the permission level to **View**.*<br>
   * **Transactions**
     * Adjust Inventory (with Level = **Full**)
     * Bills
     * Find Transaction
     * Item Receipt (with Level = **Full**)
     * Purchase Order (with Level = **Full**)

       <figure><img src="/files/nAwGIIvGjcPeKUXQb02P" alt="" width="563"><figcaption></figcaption></figure>
     * Work Orders (Level = Full)
       * *Depending on your processes, additional (Full) permissions such as the following may be needed: Build Work Orders; Close Work Orders, Mark Work Orders (Built, Firmed, Released), Work Order Close, Work Order Completion, and Work Order Issue*
   * **Reports**
     * SuiteAnalytics Workbook (with Level = **Edit**)

       * *Note, this is required so that Violet can run SuiteQL queries to fetch data*

       <img src="/files/YlktFH7v3noBe1cddvUh" alt="" width="375">
   * **Lists**
     * Accounts
     * Bins (only if you intend to sync Inventory Adjustments, and Inventory Binning is enabled for your account)
     * Employee Record
     * Employees
     * Items (with Level = **Full**)
     * Locations (with Level = **Full**) - *required when writing Purchase Order data to NetSuite*
     * Vendors (with Level = **Full**) - *required when writing Purchase Order data to NetSuite*

       <figure><img src="/files/KYbn3JpKSgv4RiRssqEI" alt="" width="563"><figcaption></figcaption></figure>
   * **Setup**
     * Log in using Access Tokens (with Level = **Full**)
     * REST Web Services (with Level = **Full**)
     * SOAP Web Services (with Level = **Full**)
       * *Note, these are required for Violet to access the REST and SOAP apis which are used to fetch and push data to NetSuite*

<img src="/files/gv7tvz8wLR9HhqtbC33j" alt="" width="375">

5. Click **Save**.&#x20;

#### Grant user access to the new role

1. Navigate to Setup → Users/Roles → Manage Users. Find your user, or the user that will be connecting NetSuite in Violet, and click Edit.
2. In the **Roles** section near the bottom, add the new role you created and click Save.

<img src="/files/NK4XlemlQ0NpI5jYSjL9" alt="" width="375">

#### Create an authentication token

1. Navigate to Setup → Users/Roles → Access Tokens → New
2. In the dropdown fields, select the integration you created under **Application**, the user that will be connecting, and the new role you created. Provide a **Name**, eg. "Violet App", and click **Save**.

   <img src="/files/cJj0oK4iciZ1Vwr3bvaI" alt="" width="149">
3. The Token Id and Token Secret will appear at the bottom of the screen. Copy these down and save them somewhere secure.

Now, you're ready to connect [NetSuite in Violet](/apps/n/netsuite/connect-netsuite-in-violet.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.violetlabs.com/apps/n/netsuite/configure-netsuite-to-connect.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
