Tutorial
...
NetSuite Integration
Integration Setup
42 min
our netsuite connector is made to be configurable to how you use nue using docid\ lrfws28h1umn2 elujuvp i e an order based integration or using docid\ lhvgw9xp626esvkvekf53 i e and order and invoice based integration this page will guide you through the initial setup for both integrations docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 setup netsuite docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 step 1 permissions to configure netsuite and install the connector, you need an administrator or a similar role with adequate permissions such as an integrations role docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 step 2 enable required features ensure that suiteanalytics are enabled navigate to setup > company > enable features on the analytics tab , check suiteanalytics workbook docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 step 3 revenue fields mapping for revenue recognition to automate revenue plans in netsuite arm, follow the steps below to setup the field mapping login to netsuite navigate to setup → accounting → revenue field mapping → new rev rec map the fields menu jpg configure the following source record type transaction line source field ids custcol nue start date → start date ; custcol nue end date → end date rev rec map the fields jpg step 4 setup the nue connector (netsuite bundle) the nue connector for netsuite enables seamless synchronization between nue and netsuite by introducing custom fields, mappings, and records designed to track and manage revenue lifecycle events these fields help users identify records created or updated through nue and maintain sync integrity across systems bundle fields the following fields are included in the nue connector bundle nue created from nue indicates if the record was created from nue this value will be true for all records originating in nue nue transaction # the unique transaction number associated with the record in nue nue sync status displays baseline sync information set when a record is created or activated for sales orders , this field updates automatically when change orders are applied nue sync last shows the timestamp of the last integration activity affecting the record typically corresponds to record creation time but updates when change orders modify the sales order in netsuite nue url link provides a direct link to the corresponding record in salesforce this field is populated only when the related record exists in salesforce nue transaction id stores the salesforce record id populated only when the record exists in salesforce bundle scripts the bundle also includes a pre configured restlet script a restlet is a server side netsuite script that exposes a secure https endpoint, allowing external systems (like nue) to call netsuite using rest apis in this case, the "nue item create" restlet is what nue uses to programmatically create or update item records in your netsuite account, so deploying it is what makes that endpoint available to your integration role we will be configuring this in step 6 field mappings the nue connector maps applicable fields to the following netsuite record types product customer sales order invoice credit memo return authorization payment customer refund installation instructions in netsuite, navigate to customization > suitebundler > search & install bundles in the search bar, enter “nue connector 2025” locate the bundle published by nue io click install to begin the installation once installation is complete, verify that the nue connector fields are visible on the applicable record types listed above the bundle exposes these fields to the "standard form" for each transaction if you are using custom forms, please ensure that all nue fields are on all netsuite transaction forms and sublists manage updates to netsuite bundle when there are changes to the netsuite bundle for bug fixes, customers must update their netsuite bundle to receive the fix the script update is not automatically applied to existing environments this is done by locating the bundle in customization > suitebundler > search & install bundles and clicking "update" step 5 deploy the restlet script navigate to customization → scripting → scripts find the script "nue item create" (id customscript nue item create) click deploy script and configure title nue item restlet deployment status released log level error (for production) or debug (for sandbox) under the audience subtab → roles tab select your existing integration role as your internal role ensure only this role has access (do not click select all) click save copy the external url —you'll need this when you setup the integration in nue step 6 create an oauth 2 0 integration record in netsuite navigate to setup → integration → manage integrations → new configure your new integration with the following settings name oauth 2 netsuite integration (or your preferred name) token based authentication section leave all checkboxes unchecked in the oauth 2 0 section check authorization code grant leave public client unchecked set redirect uri to https //auth tray io/oauth2/token set refresh token validity (hours) to 720 set maximum time for token rotation (hours) to 720 leave client credentials (m2m) grant unchecked march 3, 2026 currently, due to netsuite limitations, the refresh token will reset every 720 hours i e 30 days please ensure you re authenticate your netsuite instance in nue to ensure it continues to work in the scope section check restlets check rest web services leave suiteanalytics connect unchecked leave netsuite ai connector service unchecked set oauth 2 0 consent to always ask click save important copy and securely store the client id and client secret displayed after saving—the secret is only shown once and will be used when you setup the integration in nue step 7 setup tax calculation script (optional) when is this script needed? this script is required when nue is the source of truth for tax calculation — i e , when you are using a tax engine integrated with nue (such as avalara, anrok or sphere) and need those tax amounts reflected on netsuite transactions the script is a companion to the nue connector bundle and translates nue's line level tax values into netsuite's native tax fields (taxcode, taxrate1, taxtotal) if you are not using nue for tax calculation and instead rely on netsuite's native tax engine (or a tax engine configured directly in netsuite), this script is not needed important tax flows one way from nue to netsuite nue does not currently support the write back of tax calculations from netsuite to nue if tax is calculated natively in netsuite, those amounts will not be reflected on nue invoices or billing records source `nue netsuite taxcalc js` — suitescript 2 x usereventscript overview the nue tax calc script bridges the gap between nue's tax calculations and netsuite's native tax engine because nue is the source of truth for tax amounts , this script takes the nue computed line level tax value and reverse engineers a per line tax rate that netsuite can apply — ensuring transaction totals match between the two systems without duplicating or overriding nue's calculations how the connector and script work together this script is a companion to the nue connector bundle , not part of it it must be installed and configured separately the relationship between the two component responsibility nue connector syncs orders and invoices to netsuite; populates custcol nue tax with nue's computed tax per line nue tax calc script reads custcol nue tax and translates it into netsuite's native tax fields (taxcode, taxrate1, taxtotal) without this script, netsuite transactions will have nue's tax amount stored in the custom field but will not reflect it in netsuite's own tax total — causing a mismatch between subtotal + tax and the actual transaction total what it does 1\ reads the nue tax amount from a custom transaction column field (default custcol nue tax ) on each line 2\ calculates a per line tax rate `abs(customtax / lineamount) 100` 3\ overrides each line's tax code with a configured "dummy" tax code 4\ sets each line's taxrate1 to the computed rate 5\ updates the header taxtotal field with the sum of all nue tax amounts trigger beforesubmit on create and edit events only prerequisites before deploying the script, complete the following setup in netsuite 1\ create a "dummy" tax code create a generic tax code in netsuite (e g , " nue tax ") that will serve as a placeholder for all nue sourced tax amounts navigation setup → accounting → tax codes → new navigate to setup → accounting → tax codes from the top navigation bar if you don't see "tax codes" under accounting, check that the tax features are enabled at setup → company → enable features → accounting subtab click new enter a name such as "nue tax" and set the rate to 0% (the script will override the rate dynamically per line) assign it to the appropriate country and subsidiary for your instance click save after saving, note the internal id from the url bar — it will appear as id=xxx in the page url you will need this value as a script parameter later tip if you don't see internal ids in your urls or list views, enable them at home → set preferences → general subtab → defaults section → check "show internal ids" 2\ configure tax settings navigate to setup → accounting → set up taxes and configure the following go to setup → accounting → set up taxes this opens the tax preferences page for your netsuite account enable per line taxes on transactions under the tax settings, check the box for "enable per line tax on transactions" (or similar, depending on your netsuite version) this allows each transaction line to carry its own tax code and rate, which is required for the script to set taxcode and taxrate1 per line set the new dummy tax code as the default tax code in the "default tax code" dropdown, select the "nue tax" code you created in step 1 enable tax lookup on sales transactions check "enable tax lookup on sales transactions" this ensures that when new sales orders or invoices are created, netsuite automatically populates the default tax code on each line — so the nue tax code is pre populated before the script runs click save 3\ update customer records mass update all relevant customers to use the nue tax code as their default tax code this ensures that when transactions are created for these customers, the nue tax code is applied by default navigation lists → relationships → customers go to lists → relationships → customers to open the customer list view click edit view (or use an existing saved search) to add the tax item column if it's not already visible use list inline editing to update customers in bulk click the "edit" link at the top left of the list to enter inline edit mode (this lets you modify field values directly in the list without opening each record) in the tax item (or tax code ) column, change the value to "nue tax" for each customer that will have nue originated transactions click submit to save your changes 4\ disable conflicting tax scripts if you have existing tax automation scripts (such as avalara's avatax suitescript integration), they must be disabled on the transaction types where the nue tax calc script will run running both simultaneously will cause conflicts — avalara will try to calculate tax while the nue script tries to override it navigation customization → scripting → script deployments go to customization → scripting → script deployments this shows all active script deployments across your account use the filters at the top to narrow down script type user event applied to sales order (then repeat for invoice) or search by name — avalara scripts are commonly named "avatax" or contain "avalara" in the title for each avalara script deployment on sales order and invoice click the deployment name to open it change the status field from released to testing (which disables it in production) or not scheduled alternatively, uncheck the deployed checkbox click save important only disable avalara scripts on the specific transaction types where nue tax calc will run (sales order and invoice) if avalara is also used on other transaction types (e g , purchase orders, vendor bills), leave those deployments active how to verify you found all conflicting scripts after disabling, create a test sales order with a nue originated transaction if you see unexpected tax calculations or errors, go back to customization → scripting → script deployments, filter by the transaction type, and review all user event scripts with a beforesubmit trigger to check for any other tax related automations 5\ create the custom transaction column field this field will hold the nue tax amount per line, synced by the nue connector from nue's billing engine navigation customization → lists, records, & fields → transaction column fields → new go to customization → lists, records, & fields → transaction column fields click new configure the field label nue tax (or your preferred display name) id nue tax (netsuite will prepend custcol automatically, making it custcol nue tax) type decimal number store value checked (this is the default) on the applies to subtab, check the transaction types this field should appear on sale (covers sales orders and invoices) click save map this field in the nue connector configuration in the netsuite configuration within nue, ensure that the invoice item fields mapping includes the mapping "custcol nue tax\ currency" "taxamount" — this tells the connector to populate the custom column field with nue's line level tax amount when syncing invoices and orders verification after setup, sync a test transaction from nue to netsuite open the sales order or invoice in netsuite and click into a line item — you should see the custcol nue tax field populated with the tax amount from nue script setup in netsuite create the script record navigation customization → scripting → scripts → new go to customization → scripting → scripts click new (or the + button) upload the nue netsuite taxcalc js file when prompted configure the script record name nue tax calc script id nue tax calc (becomes customscript nue tax calc) type user event script api version 2 x script parameters parameter label parameter id type description nue tax code internalid custscript nue taxcalc taxcodeid integer number internal id of the dummy tax code created above nue tax customer transaction column field name custscript nue taxcalc custcolfield free form text custom column field holding the nue tax amount default custcol nue tax nue tax criteria field custscript nue taxcalc criteriafield free form text transaction body field used to determine whether the script should run default custbody nue transactionnumber nue tax criteria values (comma separated) custscript nue taxcalc allowedvalues free form text values on the criteria field that trigger script execution for checkbox fields, use true default !==null (runs when transaction number is present) script deployments deploy the script to two transaction types navigation from the script record, click deploy script (or go to customization → scripting → script deployments → new) deployment 1 sales order suggested id nue tax calc so applied to sales order event before submit status released log level error (use debug in sandbox for troubleshooting) deployment 2 invoice suggested id nue tax calc invoice applied to invoice event before submit status released log level error (use debug in sandbox for troubleshooting) parameter values for each deployment parameter recommended value nue tax code internalid internal id of the nue tax code created above column field name custcol nue tax criteria field custbody nue createdfromnue (checkbox) or custbody nue transactionnumber criteria values true (if checkbox) or leave default note the script uses an or condition — it runs if either `custbody nue transactionnumber` is populated or the configured criteria field matches the allowed values this ensures it only fires on nue originated transactions execution logic the script runs `beforesubmit` on create and edit events and follows this flow 1\ load script parameters (tax code id, column field name, criteria field, allowed values) 2\ check trigger criteria if custbody nue transactionnumber is populated → run or if criteria field value matches allowed values → run otherwise → skip (log audit entry and return) 3\ for each line in the "item" sublist a read lineamount (amount field) b read customtax (from custcol nue tax or configured field) c compute rate abs(customtax / lineamount) 100 d set taxcode = configured tax code internal id e set taxrate1 = computed rate 4\ sum all customtax values → set header taxtotal logging the script produces logs at three levels level message content error tax calc script begin document number, total line count, lines with nue tax, tax code internal id error tax to add total nue tax amount (sum across all lines) audit line \[#] audit tax code internal id and computed taxrate1 for each line debug line \[#] details full line detail amount, custom tax, computed rate debug totals (begin) header subtotal and initial tax total before processing debug totals (end) header subtotal and final computed tax total after processing \> tip in production, set log level to error to capture only begin/total summaries in sandbox/debugging, set to debug for full line by line detail how to view script logs navigation customization → scripting → script deployments → \[your deployment] → execution log subtab alternatively, go to customization → scripting → script log for a global view of all script logs you can filter by script, log level, and date to find relevant entries docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 setup nue permissions required the following permissions must be enabled in the user role integrations manage netsuite integration collections view payment application manage payment application system settings manage events and webhooks docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 docid 13ffc055909e0975ab7a14e4bae04b80ca0edcb2 setup netsuite connection please follow the steps below to setup connections to netsuite navigate to nue > settings (via the gear at the top right corner of the dashboard) in the search box, search for netsuite integration navigate to the netsuite integration setup page upon clicking on the 'new integration' button you will brought to the initial setup input an "integration name" you can select between two options as the integration use case "using nue for cpq and lifecycle manager" an order based integration as documented in docid\ lrfws28h1umn2 elujuvp if you select this option , you can skip "setting up your integration use case" and navigate to https //docs nue io/i8gr netsuite integration setup#inputting your netsuite configuration "using nue for lifecycle manager (cpq) and billing" an order and invoice based integration as documented in if you select this option , you can proceed to " https //docs nue io/i8gr netsuite integration setup#setting up your integration use case " click "save and next" setting up your integration use case upon clicking "save and next", you will be brought to the https //docs nue io/setup your integration use cases page if you leave both unchecked, it would mean that you are using the default netsuite integration solely for accounting (and collecting elsewhere) as detailed in this page docid\ p 8wlndvej mch7yigrul this ensures your invoices and payments make it from nue > netsuite if you check "payments and collections" it will enable the payments integration as explained on this page https //docs nue io/collect payments with netsuite this ensures that payments are synced from netsuite > nue if you check "revenue recognition" it will allow revenue recognition as explained on this page docid\ sl8sd iglch3cqdhoetpz inputting your netsuite configuration next, you will enter the main nue to netsuite authentication page this page is where you setup the main configuration variables to connect to your netsuite instance first, we will need to create "api key based" authentication for nue please find your api key in your settings > api keys as documented https //api docs nue io/api keys#configure api keys click on the three dots on the side and click "update" which will launch the config wizard on the config wizard page, you can paste your api key and then click save next we will setup the netsuite rest connecter here, we will utilize the credentials we created from step 7 upon inputting your account id and client id and secret, we can then click create your account id for netsuite is found in your netsuite instance under setup → company → company information your client id and secret was saved and created in netsuite in https //docs nue io/integration setup#step 6 create an oauth 20 integration record in ne upon creation, you will be redirected to a netsuite page after logging into your netsuite instance ensure that this integration shows the role you selected in https //docs nue io/integration setup#step 5 deploy the restlet script upon clicking continue, you will be brought back to the nue integration page if this integration is synced correctly, you will be shown a succesful message errors likely are a result of a mismatch in the role you selected when deploying your restlet script in step 6 finally, you can input your account id once more as well as the create product restlet url as per instructions in https //docs nue io/integration setup#step 5 deploy the restlet script while setting up netsuite congrats! we've finished the authentication for netsuite we will now proceed to further configuration for customers, products and transactions sync customers the nue netsuite connector ensures that customers are seamlessly synchronized between salesforce and netsuite, supporting two primary use cases 1\ sync customers from nue to netsuite upon customer creation in salesforce or 2\ sync customers when an (active) order is created in nue on salesforce and transferred to netsuite transaction hub in both use cases, nue ensures seamless synchronization by maintaining a transaction hub record that links the nue customer id with the corresponding netsuite customer id this mechanism prevents the creation of duplicate customer records in netsuite by verifying the existence of a mirrored customer id before any new record is created if a potential duplicate is detected, the connector retrieves and uses the existing netsuite customer id, ensuring data integrity and eliminating redundancy let's go through both scenarios step by step allowing us to configure the customers configuration page docid 05692a402d32680aeaa61825e4d06f0b6c5356d2 scenario 1 sync customers upon customer creation in salesforce (prior to transactions) if the requirement is to sync customers to netsuite prior to transaction creation, this configuration should be selected users can follow the steps below to setup this scenario check the "yes" checkbox for option " sync nue customers to netsuite when the "customer since" field is populated? " additionally, navigate to nue app → settings → salesforce integration check "migrate data" for setting " automatically synchronize salesforce accounts to nue customers when they are created or updated " this allows all new customers in salesforce to be synced to nue this can also be tested upon finishing configuration via the following steps create a customer in salesforce and populate the "customer since" field every 12 hours, the netsuite connector checks if the "customer since" field is populated for any customer if the field is populated and the customer hasn’t been synced to netsuite, the connector creates a corresponding customer in netsuite docid 05692a402d32680aeaa61825e4d06f0b6c5356d2 scenario 2 sync customers when an active order is transferred if the requirement, is to only sync customers upon active orders then we can leave this field unchecked in this scenario, when an order is transferred to netsuite, if the customer referenced by the order does not exist in netsuite, the netsuite connector automatically creates the customer using configured values and mapped data more specifically, the following is the business flow an order is created and activated in nue the netsuite connector checks if the customer is already mirrored in netsuite if not found, the connector creates the customer in netsuite and links the order to the new customer record customer field mapping we support custom field mapping at the https //docs nue io/netsuite connector fields mapping#customer for further documentation on what fields are available as a standard field in the integration you can refer to docid\ fwqncvvwlu0lp5ykwenj6 additionally, in order to set up custom fields for the netsuite integration you can refer to the instructions on https //docs nue io/netsuite connector fields mapping#custom fields mapping default customer subsidiary netsuite requires every customer to be associated with a subsidiary using the configuration wizard, users can set up a default custom subsidiary to assign when creating customers in netsuite currently the nue <> netsuite integration does not support multiple entities/subsidiaries out of the box in the near future, nue’s entity will be mapped to the subsidiary in netsuite this means that if a customer is associated with an entity in nue, the synchronized customer will automatically be created in the subsidiary mapped to that entity docid 05692a402d32680aeaa61825e4d06f0b6c5356d2 sync products the nue netsuite connector ensures that products are seamlessly synchronized between salesforce and netsuite the configuration page allows for custom field mapping at a product level to be set, tax schedules as well as gl account mapping let's go through this step by step product field mapping we support custom field mapping at the https //docs nue io/netsuite connector fields mapping#product for further documentation on what fields are available as a standard field in the integration you can refer to docid\ fwqncvvwlu0lp5ykwenj6 additionally, in order to set up custom fields for the netsuite integration you can refer to the instructions on https //docs nue io/netsuite connector fields mapping#custom fields mapping configure tax schedule id for suitetax if you are using netsuite with advanced tax (suitetax) enabled, or need specific tax schedule behavior for items, users can configure a tax schedule id when creating an item in netsuite in such scenarios, you can configure items to default to a tax schedule id, which will be used when items are created in netsuite configuring avalara tax with netsuite if you are using avalara tax with netsuite, you can enable the avalara integration in nue which will ensure that your transactions in netsuite have tax populated product sync the nue netsuite connector ensures that products are seamlessly synchronized between salesforce and netsuite, supporting two primary use cases 1\ sync products from nue to netsuite prior to order activation 2\ sync products when an (active) order is transferred from nue to netsuite scenario 1 sync products from nue to netsuite prior to order activation when transferring products from nue to netsuite, you can choose to send products prior to order activation by enabled a "sync to netsuite" field in the product page the following are the steps to do so create a custom field in salesforce called sync to netsuite i e ruby sync to netsuite c sync this field to nue via the button "sync custom fields from salesforce", and update the product layout page so that the new field is selectable create a product and ensure that product sync flag field in the configuration data is set to the custom field (i e ruby sync to netsuite c ) finally, you can test that the standalone product has been sent with the button enabled docid 05692a402d32680aeaa61825e4d06f0b6c5356d2 scenario 2 sync products when an (active) order is transferred from nue to netsuite when transferring active orders from nue to netsuite, the netsuite connector ensures that all products referenced by the order products are available as items in netsuite if a referenced item does not already exist in netsuite, the connector will automatically create the item using pre configured values and mapped data this ensures seamless order processing without manual intervention when an order is created and activated in salesforce and nue, the connector begins the synchronization process to netsuite if the mapped item already exists in netsuite, the sync process continues without any additional action otherwise, the connector creates a new item in netsuite using the configured values and mapped fields data the newly created item's record id is then stored in the transaction hub for future lookup and reference if item creation fails due to a deplicate id in netsuite, the connector retrieves the record id of the existing duplicate item, and then stored in the transaction hub to ensure proper synchronization and avoid further duplication issues docid 05692a402d32680aeaa61825e4d06f0b6c5356d2 record type mapping in the products / items configuration screen in the configuration wizard, users can configure the default record type for each types of asset in nue, as shown below the netsuite connector requires an item record type to create items in netsuite nue’s activation object determines downstream billing behaviors based on the product catalog types mapping path nue product catalog → nue activation object → netsuite record type the default mapping relationships are as follows subscription noninventorysaleitem entitlement servicesaleitem asset inventoryitem if the mapping is not configured properly, the netsuite connector will use the default record type when creating items in netsuite configuring gl account mapping general guidance for gl account mapping in nue netsuite config always verify each account exists in netsuite and has the correct account type for the intended use map based on both transaction type (inventory, service, non inventory) and your company’s accounting structure to ensure report accuracy use clear, standardized account names to reduce mapping errors and confusion review mappings after any chart of accounts changes in netsuite, and periodically audit mapped transactions for correct classification please note that the netsuite internal gl account ids need to be used subscription income account purpose defines the netsuite income account for subscription related sales (e g , saas or recurring product revenue) setup & usage map to a netsuite income account such as “subscription income” or “recurring revenue” applied to invoice line items tagged as subscription products best practice ensure the mapped account is of type income and aligns with your revenue recognition policy subscription revenue account purpose specifies the netsuite revenue account used for revenue recognition of subscription items setup & usage select a netsuite revenue account where deferred/recognized subscription revenue should post best practice use an account linked to your arm or revenue schedules for accurate recognition entitlement income account purpose defines the income account for entitlement related product sales (e g , support access or usage rights) setup & usage map to a netsuite income account such as “support income” or “entitlement revenue” best practice confirm account type is income and distinct from subscription or asset revenue for clarity entitlement revenue account purpose specifies the revenue account for recognized entitlement revenue setup & usage map to the netsuite revenue account tied to entitlement items in revenue arrangements best practice ensure alignment with your arm rules for entitlement recognition asset income account purpose designates the netsuite income account for tangible or fixed asset product sales setup & usage select an income account such as “product sales” or “hardware revenue” best practice confirm the account type is income and used only for asset type items asset revenue account purpose sets the netsuite revenue account used for recognizing asset based revenue setup & usage choose the account used in arm for asset related revenue schedules best practice keep separate from service/subscription revenue accounts for reporting clarity nue clearing acct purpose acts as a temporary clearing account for transactions synced between nue and netsuite useful for reconciling payments before final deposit setup & usage map to a clearing or suspense account to hold intermediate postings during sync best practice reconcile and clear balances regularly; should net to zero after sync completion
Have a question?
Get answers fast with Nue’s intelligent AI, expert support team, and a growing community of users - all here to help you succeed.
To ask a question or participate in discussions, you'll need to authenticate first.