Skip to main content

NetSuite

Installation​

NetSuite service (integration) is provided by Rossum.ai in the form of webhook. To start using NetSuite (either imports or exports), follow these steps:

  1. Login to your Rossum account.
  2. Navigate to Extensions → My extensions.
  3. Click on Create extension.
  4. Fill the following fields:
    1. Name: SB1 NetSuite: Import/Export
    2. Trigger events: Manual (later also Scheduled)
    3. Extension type: Webhook
    4. URL (see below)
  5. Click Create the webhook.
  6. Fill Configuration and Secrets fields (see Integration Configuration and Import configuration or Export configuration.
  7. (Optional) Disable retries for export webhooks (see: Considerations & Limitations)
  8. (Optional) Set hook secrets_schema value (see below)

Import endpoints​

EnvironmentWebhook URL
EU1 Irelandhttps://elis.rossum.ai/svc/netsuite-v3/api/v1/import
EU2 Frankfurthttps://shared-eu2.rossum.app/svc/netsuite-v3/api/v1/import
US east coasthttps://us.app.rossum.ai/svc/netsuite-v3/api/v1/import
Japan Tokyo—

Export endpoints​

EnvironmentWebhook URL
EU1 Irelandhttps://elis.rossum.ai/svc/netsuite-v3/api/v1/export
EU2 Frankfurthttps://shared-eu2.rossum.app/svc/netsuite-v3/api/v1/export
US east coasthttps://us.app.rossum.ai/svc/netsuite-v3/api/v1/export
Japan Tokyo—

Setting hook secrets_schema value​

By default, all hooks have the following JSON schema of their secrets:

{
"type": "object",
"additionalProperties": { "type": "string" }
}

Consider changing it to the following value to clearly outline what values are supported:

{
"type": "object",
"properties": {
"consumer_key": { "type": "string", "minLength": 1 },
"consumer_secret": { "type": "string", "minLength": 1 },
"token_key": { "type": "string", "minLength": 1 },
"token_secret": { "type": "string", "minLength": 1 },
"rossum_username": { "type": "string", "minLength": 1 },
"rossum_password": { "type": "string", "minLength": 1 }
},
"additionalProperties": false
}

Probably the easiest way to achieve this is updating the hook configuration using prd tool

System context diagram​

NetSuite system context diagram

NetSuite main navigation can sometimes be very confusing as it is very customizable. Use the following paths to quickly access NetSuite resources:

Available configuration options​

The following configuration options are available:

{
// Determines whether or not NetSuite should run the configuration asynchronously. Typically,
// imports are asynchronous (since they can take hours) and exports are synchronous (they should
// take minutes).
"run_async": true,

"netsuite_settings": {
// Case sensitive NetSuite account:
"account": "XXX_SB1",

// How many concurrent operations through API can run at the same time:
"concurrency_limit": 4,

"wsdl_url": "https://XXX-sb1.suitetalk.api.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl",
"service_url": "https://XXX-sb1.suitetalk.api.netsuite.com/services/NetSuitePort_2024_1",
"service_binding_name": "{urn:platform_2024_1.webservices.netsuite.com}NetSuiteBinding"
},

// Configures imports (cannot be used together with `export_configs`):
"import_configs": [
{
// Name of the dataset in Master Data Hub:
"master_data_name": "NS_SB1_Currency_v1",

// Optional configurations of the asynchronous behavior (makes sense only when
// `run_async` is true):
"async_settings": {
"retries": 5,
"max_run_time_s": 36000
},

// The actual payload of NetSuite request (closely follows NetSuite API docs):
"payload": {
"method_name": "getAll",
"method_args": [
{
"_ns_type": "GetAllRecord",
"recordType": "currency"
}
],

// Optional headers for NetSuite API request:
"method_headers": {
// NetSuite request-level search preferences (https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4170181850.html):
"searchPreferences": {
"pageSize": 100,
"bodyFieldsOnly": false,
"returnSearchColumns": false
},

// Other NetSuite request-level preferences (https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4170181850.html):
"preferences": {
"runServerSuiteScriptAndTriggerWorkflows": false
// …
}
}
}
}
// …
],

// Configures exports (cannot be used together with `import_configs`):
"export_configs": [
// Same with `import_configs`
]
}