NOTE
This version of the NetSuite Integration, released in 2023, does not support Revenue Recognition in NetSuite ARM and advanced collection use cases. For the most up-to-date NetSuite Integration with support for Revenue Recognition and advanced Collections, please refer to this document. |
NetSuite Connector Overview
Nue's Netsuite connector allows data and transactions from Nue's Revenue Lifecycle Management Platform to be synced with your Netsuite ERP instance.
The following systems are in scope for this Nue integration:
- Nue
- Salesforce
- NetSuite
Record Overview
The following objects are in scope for this Nue integration:
- Account/Customer
- Product/Item
- Transactions
Integration Flows
Nue's Everything BillingTM Platform enables:
- powerful yet intuitive billing schedule management
- consolidated billing (multiple orders can easily translate to consolidated invoices)
- incorporation of multiple different revenue/subscription types (e.g., usage)
Because of the power of Nue Everything BillingTM, invoice-based integration is the preferred approach.
A. Invoice Integration
B. Invoice Integration with Sales Orders for Fulfillment
For customers that have phyical goods (inventory items) that need to be fulfilled, we offer the following functionality. This example also specifies the case whereby NetSuite ARM is being used for Revenue Recognition.
NetSuite Connector Setup
Permissions/Roles: NetSuite configuration and connector installation requires someone with an Administrator or a similar role with adequate permissions.
Sandbox vs. Production: We recommend using a NetSuite sandbox account to test the Nue integration before deploying it to production.
Configure Nue/Salesforce
Your Nue Implementation/Account Manager will take the responsibility for access and configuration of your Nue/Salesforce environments to enable the Nue Connector.
Configure NetSuite
Enable Features
NetSuite must be enabled to allow token-based authentication connectivity, and SuiteAnalytics, in order for Nue to be able to connect to your Netsuite account. This requires either Administrator privileges or at least Role | Permissions | Setup | Enable Features = Full permission.
- Navigate to Setup > Company > Enable Features
- On the SuiteCloud tab, ensure Token-Based Authentication is checked
- On the Analytics tab, ensure that SuiteAnalytics Workbook is checked.
Install Bundle
Installing the Nue Connector bundle streamlines the configuration of integration with Nue. This requires either Administrator privileges or at least Role | Permissions | Setup | SuiteApp Marketplace = Full and SuiteApp Deployment = Full permissions.
Instructions:
- Navigate to Customization > SuiteBundler > Search & Install Bundles (or search for "Page: Search & Install Bundles")
- Search for "Nue Connector" by Nue.io
- Install the Nue Connector bundle (it must be shared with your NetSuite account; if not please contact your Account Executive or email usa at netsuite-integration@nue.io)
The Nue Connector bundle comprises:
- Role: Nue Connector Role with permissions appropriate for the Nue Integration
- Custom Fields: Nue-specific custom fields for the entity(customer) master, the item master, and transaction header (body) and transaction lines
- Saved Searches: Nue saved searches to facilitate management of the Nue Integration
Integration
An integration must be created. This will require Administrator privileges or at least the ability to create integrations
TAKE NOTE OF CUSTOMER KEY/SECRET: the Customer Key / Client ID and Customer Secret / Client Secret are only displayed for the creator. Although you can Edit-Reset Credentials for the Integration, best to copy and save these in a secure place in accordance with company policies. |
Create Access Token
An access token must be created for each Nue Integration: Nue.io REST; Nue.io SOAP. This will require Administrator privileges or at least Role | Permissions | Setup | Access Token Management = Full permission.
Instructions:
1. Determine the User to be associated with the Access Token.
USER for ACCESS TOKEN: The user you choose to associate with the access token will be listed against all item, customer and transaction records created or modified by the Nue Connector (i.e., CreatedBy and ModifiedBy). Take this into account when selecting (or creating) the user for this purpose. You can create a new Employee (or other entity if you have configured NetSuite to allow other entities such as Vendors to have login access to NetSuite). You can also create/use a record and name it something like FirstName: Nue || LastName: Connector and use the email netsuiteintegration+[customername]@nue.io for this purpose.
Also note that if you have any email automations related to invoice creation or the like, that you should log in as such user and set preferences at Home | Set Preferences | Transactions: choose PDF or HTML. |
2. Assign the Role Nue Connector Role to the user (employee) who will be attached to the access token you will be creating. Search for and edit Employee, go to the Access tab, add the Nue Connector Role.
3. Search for "Page: Access Tokens" and go there.
4. Create New Access Token: choose Application (Nue.io REST), User, Role (Nue Integration Role). Save.
TAKE NOTE OF TOKEN ID/SECRET: the Token ID and Token Secret are only displayed once upon creation of the access token. Make sure to copy and save these in a secure place in accordance with company policies. If you lose these credentials you will have to create a new access token. |
5. Create additional Access Tokens for additional integrations as necessary (e.g., Nue.io SOAP)
NetSuite Credentials
The following credentials need to be provide to Nue:
1. Integration Credentials: (a) Consumer Key and (b) Consumer Secret.
You may need to Edit | Reset Credentials to obtain these (unlike the access token the integration credentials can be reset), and ensure to save these in a secure place in accordance with company policies.
2. Access Token Credentials: (a) Token ID and (b) Token Secret
You will need a token pair for each integration.
3. Account ID: AccountID is usually the prefix of your NetSuite URL (https://[accountID].app.netsuite.com/) but it is also locate-able via Setup > Company > Company Information.
Other NetSuite Considerations
The following considerations apply:
Currencies: the currencies present in Nue/Salesforce should be present in NetSuite.
Override Documents Numbers: if you want Nue Invoice numbers to become Netsuite Invoice numbers (as opposed to just being referenced in the custom field created by Nue), you can go to Setup > Company > Auto-Generated Numbers and check "Allow Override" for appropriate transactions (e.g., Credit Memo, Invoices, Journal, Sales Order). The Nue Connector can then be updated to write the Nue transaction number to the NetSuite tranid field as well as to the custom Nue Transaction # field.
External IDs: Best practices is to have externalIDs in NetSuite reference the corresponding source-of-truth ID in Nue/Salesforce. There are occasions where customers, items and transactions already have externalIDs associated with them that may prompt the customer to not have this happen - using instead Nue-created custom fields in NetSuite for this purpose.
Accounting Periods Closed/Locked: any accounting periods that are closed/locked will not be able to have transactions created or edited in them.
Default Subsidiary/Tax Schedule: For accounts with multiple subsidiaries, the default subsidiary for posting customer and transaction information will be defined. Default Tax Schedule for item creation should also be spedified.
Taxes: Tax calculations can be done within Nue (Avalara and your credentials for that service), or within Netsuite. This needs to be specified as part of the implementation. In addition, Customers will be created in Netsuite as taxable / not-taxable according to selection made in NetSuite Setup | Accounting | Set Up Taxes.
Revenue Recognition Field Mapping: For customers who have ARM configured, source fields for Start Date, End Date, Forecast Start Date, and Forecast End Date should be configured as the Nue-Date Start and Nue-Date End fields.
Nue Connector Usage
There are three core NetSuite objects related to the Nue Connector: (a) Entity(Customer), (b) Item, (c) Transaction.
Entity/Customer: Salesforce Accounts are created as NetSuite Customers and subsequenly synced. Once identified as a synced Customer record, Nue/Salesforce becomes the source of truth for the fields in scope of the Nue Connector; fields outside of scope can be updated in either system independently.
Item: Products in Nue are created in NetSuite and then subsequently synced. Once identified as a synced Item record, Nue/Salesforce becomes the source of truth for the fields in scope of the Nue Connector; fields outside of scope can be updated in either system independently.
Netsuite has a variety of item types; the ones used by the Nue Connector are as follows:
- Inventory Item: items which have fulfillable, countable inventory as managed in Netsuite ("Asset" in Nue). These correspond to Nue Products where Product Family/Product Category is mapped to the Activation Object = ASSET.
- Non-Inventory Item for Sale: These correspond to "Subscriptions" in Nue. Specifically, Nue Products where Product Family/Product Category is mapped to the Activation Object = SUBSCRIPTION.
- Service Item for Sale: These generally correspond to "Entitlements" in Nue to the extent that you actively use the Service item type in NetSuite. An example of this would be one-time professional services, which would be a Nue Product in a Product Family/Product Category that would be mapped to the Activation Object = ENTITLEMENT. NOTE, HOWEVER, that if a customer does not actively use in NetSuite the Service item type... that in such case Entitlements can alternatively create Non-Inventory Items in NetSuite.
Transaction: The Nue integration syncs Nue Transactions to NetSuite, and also adds transaction status (e.g., invoice payment and balance) to Nue/Salesforce. For transactions created by Nue, Nue is the source of truth for the fields in scope of the Nue Connector; fields outside of scope can be updated in either system independently. Transactions, which depend on the Customer and Item records mentioned above, include the following:
- Invoice (or Sales Order, if using the Sales Order approach)
- Payment
- Credit Memo
- Refund
Sync Functionality Overview
Record Type | From | To | Functions | Notes |
Account/Customer | Nue/Salesforce | NetSuite | create, update | auto-sync upon save when meeting criteria |
NetSuite | Nue/Salesforce | create | when "Create in Nue/SFDC" checkbox is checked | |
Product/Item | Nue/Salesforce | NetSuite | create, update | auto-sync upon save when meeting criteria |
NetSuite | Nue/Salesforce | create | when "Create in Nue/SFDC" checkbox is checked | |
Invoice | Nue/Salesforce | NetSuite | activation, cancel/void | auto-sync upon save when meeting criteria |
NetSuite | Nue/Salesforce | update | when Payment Status changes in NetSuite | |
Credit Memo | Nue/Salesforce | NetSuite | activation | |
NetSuite | Nue/Salesforce |
Customer Fields & Sync Criteria
The following data fields are in scope for sync via Nue-NetSuite Connector functionality:
Customer Sync Field | Nue Field | Salesforce Field | NetSuite Field |
Name | name | Name | companyName |
Account Number | accountNumber | AccountNumber | accountNumber |
Customer Email | Ruby__OrderPrimaryContactEmail__c | ||
Customer Since | customerSince | Ruby__CustomerSince__c | startDate |
Description/Comments | description | Description | comments |
Phone | phone | Phone | phone |
Parent Customer | parentCustomerId | ParentId.nuens_netsuiteID__c | parent |
Subsidiary | nuens_netsuite_subsidiary__c | nuens_netsuite_subsidiary__c | primarySubsidiary |
The following fields are system ID and status fields related to the Nue Connector:
ID / Status Field | Nue/Salesforce Field | NetSuite Field |
SFDC AccountID | Id | custentity_nue_sfdcaccountid |
SFDC AccountID | Id | externalId |
NetSuite Customer ID | nuens_netsuiteID__c | id |
URL Link | nuens_netsuite_url__c | custentity_nue_sfdc_url |
Sync: Last | nuens_netsuite_sync_last__c | custentity_nue_sync_last |
Sync: Status | nuens_netsuite_sync_status__c | custentity_nue_sync_status |
The following fields do not sync but rather factor into sync criteria or outputs:
Field Description | System | Field Name | Notes |
Account Type | Salesforce | Account.Type | Type=Customer is default sync criteria |
Sync: Skip | Salesforce | nuens_netsuite_sync_skip__c | Checkbox: skips sync from Nue/SFDC to NetSuite |
Sync: Test | Salesforce | nuens_netsuite_sync_test__c | Checkbox: used during testing phase (only) |
Created from Nue | NetSuite | custentity_nue_createdfromnue | Checkbox: indicates record created from Nue |
Customer Sync Criteria. Standard criteria for becoming source of a create/sync action from Nue/Salesforce is:
- Account Type=Customer
- NetSuite Sync:Skip (checkbox)=false/unchecked
The field "NetsuiteID" will be populated after auto-creation of such Customers in NetSuite, and the NetSuite Sync:Last and Sync:Status fields will also be updated. Note that if you already have un-synced records in both NetSuite and Nue/Salesforce, you can link those existing records to prevent the Nue Connector from creating duplicates by populating the NetSuiteID field (nuens_netsuiteID__c). The Nue Implementation Team can assist you with this process.
Item Fields & Sync Criteria
The following fields are in Scope in core Nue Connector functionality:
Item Sync Field | Nue Field | Salesforce Field | NetSuite Field |
Product SKU | sku | StockKeepingUnit | itemId |
Product Item/Name | name | Name | displayName |
Product Description | description | Description | description |
Nue: Product Category | productCategory | Family | custitem_nue_productfamily |
The following fields are system ID and status fields related to the Nue Connector:
ID / Status Field | Nue/Salesforce Field | NetSuite Field |
SFDC ProductID | Id | custitem_nue_sfdcproductid |
SFDC ProductID | Id | externalId |
NetSuite Item ID | nuens_netsuiteID__c | id |
URL Link | nuens_netsuite_url__c | custitem_nue_sfdc_url |
Sync: Last | nuens_netsuite_sync_last__c | custitem_nue_sync_last |
Sync: Status | nuens_netsuite_sync_status__c | custitem_nue_sync_status |
The following fields do not sync but rather factor into sync criteria or outputs:
Field Description | System | Field Name | Notes |
Product Status | Salesforce | Ruby__Status__c | Status=Active is default sync criteria |
Sync: Skip | Salesforce | nuens_netsuite_sync_skip__c | Checkbox: skips sync from Nue/SFDC to NetSuite |
Sync: Test | Salesforce | nuens_netsuite_sync_test__c | Checkbox: used during testing phase (only) |
Created from Nue | NetSuite | custitem_nue_createdfromnue | Checkbox: indicates record created from Nue |
Item Sync Criteria. Standard criteria for becoming source of a create/sync action from Nue/Salesforce is:
- Product Status=Active
- NetSuite Sync:Skip (checkbox)=false/unchecked
The field "NetsuiteID" will be populated after auto-creation of such item in NetSuite, and the NetSuite Sync:Last and Sync:Status fields will also be updated. Note that if you already have un-synced records in both NetSuite and Nue/Salesforce, you can link those existing records to prevent the Nue Connector from creating duplicates by populating the NetSuiteID field (nuens_netsuiteID__c). The Nue Implementation Team can assist you with this process.
Transaction Fields & Sync Criteria
The following fields are in Scope in core Nue Connector functionality:
Transaction Sync Field | Nue Field | Salesforce Field | NetSuite Field |
BODY/HEADER FIELDS | |||
Invoice Number | name | Name | custbody_nue_transactionnumber |
Invoice Date | invoiceDate | Ruby__InvoiceDate__c | tranDate |
Start Date | startDate | Ruby__StartDate__c | startDate |
End Date | endDate | Ruby__EndDate__c | endDate |
Due Date | dueDate | Ruby__DueDate__c | dueDate |
Account/Customer | customerId | Ruby__AccountId__c | entity |
Status | paymentStatus | Ruby__PaymentStatus__c | status |
Balance | balance | Ruby__Balance__c | foreignamountunpaid |
TRANSACTION LINE FIELDS | |||
Product/Item ID | productId | Ruby__ProductId__c | item |
Transaction Quantity | transactionQuantity | Ruby__TransactionQuantity__c | quantity |
Start Date (line) | startDate | Ruby__StartDate__c | custcol_nue_date_start |
End Date (line) | endDate | Ruby__EndDate__c | custcol_nue_date_end |
Amount (line) | transactionAmount | Ruby__TransactionAmount__c | amount |
Price/Rate | [transactionAmount/transactionQuantity] | rate |
NOTE: NetSuite Transaction Number (tranid) can take the Nue transaction number if respective transactions allow override on auto-generated numbers.
The following fields are system ID and status fields related to the Nue Connector:
ID / Status Field | Nue/Salesforce Field | NetSuite Field |
Nue TransactionID | id | custbody_nue_transactionid |
Nue TransactionLineID | name | custcol_nue_transactionlineid |
Sync: Last | nuens_netsuite_sync_last__c | custbody_nue_sync_last |
Sync: Status | nuens_netsuite_sync_status__c | custbody_nue_sync_status |
The following fields do not sync but rather factor into sync criteria or outputs:
Field Description | System | Field Name | Notes |
Invoice Status | Nue | status | Status=Active is default sync criteria |
Nue: Created from Nue | NetSuite | custbody_nue_createdfromnue | Checkbox: indicates record created from Nue |
Price Level (line) | NetSuite | price | configuted as Custom price level on transaction lines |
Transaction Sync Criteria. Standard criteria for becoming source of a create/sync action from Nue/Salesforce is:
- Transaction Status=Active
Status Field Messages
Status fields start with one of the following 3 codes:
- SUCCESS: the create or sync action was successful, e.g., "SUCCESS: Invoice created from Nue"
- NOTICE: the action was notable in some respect but short of a failure or an error, e.g., "NOTICE: record was not created in NetSuite because Skip Sync was checked"
- ERROR: the action failed or could not be completed for a reason that should be addressed, e.g., "ERROR: could not create Customer in NetSuite because a customer with the same name already exists."
Workflows
- NetSuite List Views & Saved Searches
- Salesforce List Views and Reports