Salto’s NetSuite adapter allows you to:

  • Fetch and deploy common NetSuite configuration data, e.g., workflows, custom fields, enabled features.
  • Deploy configuration changes from one NetSuite account to another.
  • Compare accounts.
  • Audit / document configuration changes.
  • Monitor specific configuration data changes of interest, e.g., preferences, permission schemes.

Supported Types

Salto leverages NetSuite's SuiteCloud Development (SDF) for managing:

  • All configuration items under NetSuite's customization tab
  • FileCabinet (Partial)
  • Roles
  • Saved Searches
  • Enabled Features

On top of that, Salto's SuiteApp for NetSuite enables management of the following types:

  • FileCabinet (Full)
  • Data records support, e.g. Subsidiary, Currency, Department, Items, Account, Location, etc.
  • Preferences (Settings) - UserPreferences, CompanyInformation, AccountingPreferences

Setup Instructions

Perquisites for connecting a NetSuite account with Salto:

  • Enable SuiteCloud Development (SDF)
  • Install the Salto SuiteApp
  • Generate authentication tokens for SDF and Salto SuiteApp

Enabling SuiteCloud Development (SDF)

📘

The below steps require admin permission for your NetSuite account.

  1. Go to Customization -> SuiteBundler -> Search & Install Bundles and click.
  2. Search for “suitecloud”, and choose the bundle “SuiteCloud Development Integration”
  3. Click “Install” to start the bundle installation.
  4. Go to Setup->Company->Enable Features
  5. Choose the “SuiteCloud” tab and make sure the following features are enabled:
    • SOAP web services
    • REST web services
    • Token Based Authentication
    • SuiteCloud Development Framework
  6. Agree to all updates and Save.
  7. Go to Customization -> SuiteBundler -> Search & Install Bundles -> List and click in order to verify that SDF installation is done.

Generating Authentication Tokens for SDF

  1. Go to the home screen, click on “Manage my access tokens”.
  2. Click on “New my access tokens”.
  3. Choose “SuiteCloud Development Integration” from the “Application Name” dropdown.
  4. Click "Save"
  5. Copy the “Token ID” and “Token Secret” and save them. They will not be visible later on due to security reasons.

Installing the Salto SuiteApp

  1. Go to SuiteApps
  2. Search for “Salto”, and choose the SuiteApp called “Salto” and click "Install"
  3. Go to Setup->Company->Enable Features
  4. Choose the “SuiteCloud” tab and make sure the following features are enabled:
    • SOAP Web Services
    • REST Web Services
    • Token Based Authentication
    • Create bundles with SuiteBundler
  5. Go to Customization -> SuiteCloud Development -> Installed SuiteApp List in order to verify that Salto's SuiteApp installation is done.

Generating Authentication Tokens for Salto SuiteApp

  1. Go to the home screen, click on “Manage my access tokens”.
  2. Click on “New my access tokens”.
  3. Choose “Salto Integration” from the “Application Name” dropdown.
  4. Click "Save"
  5. Copy the “Token ID” and “Token Secret” and save them. They will not be visible later on due to security reasons.

👍

You have successfully installed SuiteCloud Development (SDF), Salto's SuiteApp and generated token IDs and secrets.
You are now ready to connect your NetSuite account to Salto.

Authentication Instructions

In application credentials, provide:

  • NetSuite account id - can be copied from your NetSuite URL (https://<NetSuiteAccountId>.app.netsuite.com)
  • Token ID and secret for SDF
  • Token ID and secret for Salto's SuiteApp

Fetch and Application Connection Configuration Properties

Quick Fetch

Quick fetch leverages NetSuite’s ‘system notes’ mechanism and significantly reduces the fetch time by fetching only records and file cabinet items that were modified since your last fetch.

Fetch Targets

Once quick fetch is enabled, It’s possible to reduce fetch time by specifying specific fetch targets that may include NetSuite type names and/or file cabinet path patterns (regular expressions).
Once specified, Salto will fetch only instances of specified types and file cabinet items that matches the specified path patterns.

For example, specifying the targets:

entitycustomfield addressForm /MyFileCabinetDir/.*\.js

will only fetch entity custom fields, address forms and and all files with the .js suffix under the MyFileCabinetDir directory

🚧

Note: Deletions can not be detected in a Quick Fetch.

Overriding Configuration Values

It is possible to override any fetch configuration property by specifying a key value pair.
Full list of available configuration options can be found here.

Deploy Troubleshooting

Deploying Workflows Actions with account specific value Account-specific values refer to information defined in a NetSuite account, such as internal IDs, record instances, sensitive data, and personal data entry. Dependencies on this type of value can be problematic in applications or customizations that are developed outside a NetSuite account. By default, SuiteCloud Development Framework (SDF) prevents deployment of any SDF project that contains account-specific values.

Salto identifies account specific values within configuration elements and represents them as ACCOUNT_SPECIFIC_VALUE values within the corresponding NaCl code.

Netsuite prevents deploying Workflows containing an Action to send email to or from an ACCOUNT_SPECIFIC_VALUE. To overcome this, you should edit the value before the deployment, either by editing the relevant Salto NaCl or by editing the Action within the NetSuite UI.

Solution #1: Editing workflow NaCl before deployment

You can edit the Workflow’s NaCl either directly from a Workspace or from the deployment flow (see below), by selecting the Workflow element on the changes tree on the left side and then clicking ‘Edit'.

15691569

In case the Workflow contains a 'sendertype' field with a 'SPECIFIC' value and a 'sender' field with an ACCOUNT_SPECIFIC_VALUE:

  1. Set the 'sendertype' field value to 'FIELD'
  2. Above the ‘sendertype’ field, add the following line: senderfield = ”STDUSERUSER”
  3. Delete the following line: sender = "[ACCOUNT_SPECIFIC_VALUE]"
14941494

In case the Workflow contains a ‘recipienttype’ field with a 'SPECIFIC' value and a 'recipient' field with an ACCOUNT_SPECIFIC_VALUE:

  1. Set the ‘recipienttype’ field value to ‘FIELD’
  2. Above the ‘‘recipienttype’ field, add the following line: recipientfield = “STDUSERUSER”
  3. Delete the following line: recipient = "[ACCOUNT_SPECIFIC_VALUE]"
22402240

After the deployment is done, set your desired values within the NetSuite UI in the target account and then fetch it.

Solution #2: Editing the workflow within the NetSuite UI

  1. Go to Customization -> Workflow -> Workflows.
  2. Select the relevant Workflow.
  3. Click ‘Edit’.
  4. Double click on relevant state.
  5. Click on 'sendemail'.
  6. Change specific sender/recipient to ‘FROM FIELD’.
  7. Set FIELD to ‘USER’
25642564
  1. Save.
  2. You can now fetch this account to your Salto environment. Once fetch is complete, you can deploy this environment to the target environment.

Note: Don't forget to adjust these states to the desired values on both the source and target environment once the deployment is done.

Deploying a currency between environments When deploying a currency that only exists in the deployment source environment, a new ‘currencyPercision’ field has to be created as part of the currency element in the target environment.

The ‘currencyPrecision’ field is limited to read-only access by the NetSuite system, and therefore this type of deployment is prevented.

Please follow these steps:

  1. Go to the currency page within the NetSuite UI of the target environment, and check the ‘Override currency format’ box:
35843584
  1. Fetch the updated NetSuite account into your Salto (target) environment.
  2. Your deployment should now succeed. Once the deployment is completed, set the ‘locale’ of the newly created currency to the desired value in the target environment. You may also want to uncheck the ‘Override Currency Format’ checkbox.
Deploying elements containing not yet supported values "NOT_YET_SUPPORTED" is a saved term used by NetSuite's SDF, used to describe a value that is prevented from being deployed between environments by NetSuite.

In order to deploy a TransactionFrom that includes a value of [NOT_YET_SUPPORTED]:

printingType = {
  basic = {
    pdfLayout = "[NOT_YET_SUPPORTED]"
    htmlLayout = "CLASSICHTMLTRANSACTIONLAYOUT"
  }
}

You should remove the 'pdfLayout' key and its value. Your element code should now be:

printingType = {
  basic = {
    htmlLayout = "CLASSICHTMLTRANSACTIONLAYOUT"
  }
}

In order to deploy a Workflow that includes a value of [NOT_YET_SUPPORTED] under 'sendmailaction':

template = "[NOT_YET_SUPPORTED]"
usetemplate = true

You should remove the 'template' key and set 'usetemplate' to 'false', like so:

usetemplate = false

In both cases, please make sure to configure the element in NetSuite's UI after deployment succeeds.

FAQs

How does a Netsuite config file look like?

Please refer to this page for details.

What impact does Salto have on my API limits?
Concurrency
What are the limits?NetSuite limits concurrency on both your account level, and per-integration. Learn more here.
How can you adjust usage or capacity?- See sdfConcurrencyLimit in NetSuite adapter configuration
- Raise the concurrency limit for the Salto integration, see here
- Raise the concurrency limit of your account, see here