Skip to main content

NetSuite Connector Sync Concepts

Zuora

NetSuite Connector Sync Concepts

Overview

These concepts apply to the Zuora NetSuite Connector sync processes. 

General Sync Behavior

If no records are found to be synced for a given type of record, that process stops and NetSuite Connector moves to the next record type.

Records are validated and synced individually. For example, if the Connector finds ten invoices to be synced, but one invoice fails the validation logic, that one invoice is logged as a warning. The other nine invoices continue to sync to NetSuite.

Deleting Records

NetSuite Connector does not support the deletion of records. If you delete a record in the source application, the record will not be deleted in the destination application, even if the record has been synced. 

Inactivating Records and Deleting Records Manually

For master data records such as Customers and Products/Items, Zuora strongly recommends you inactivate the records instead of deleting them. Deleting the records can have accounting impacts and often is prevented by the application.

However, if you need to delete a record due to an unintended sync, delete the record from each application manually. If you do not want to delete the source record, clear the Integration ID and Integration Status fields from the record.

Integration Status and Error Recovery

The Integration Status field is a custom field on every Zuora and NetSuite record that is synced. NetSuite Connector uses this field to determine which records have been synced (in conjunction with other record-specific criteria, including Transferred to Accounting), and what to do with a record in the event of an unexpected error. 

Integration Status

The Integration Status will be updated on the source record. For example, when syncing Invoices from Zuora to NetSuite, the Zuora invoice’s Integration Status will change from Creating to Sync Complete. However, the Integration Status on the NetSuite invoice or credit memo will remain empty.

The Integration Status field will contain one of the following values:

Value Description
Blank/no value NetSuite Connector has not attempted to sync the record.
Sync Complete The record was synced successfully to the destination application.
Creating/Updating record type NetSuite Connector is currently attempting to sync the record. If the sync is not currently running, this indicates that an unexpected runtime error occurred during the last sync attempt, and NetSuite Connector will try to recover the next time it runs. The record may or may not have been created in the destination application depending on at what point the error occurred.
Error Creating/Updating record type The record was attempted but failed to sync due to a validation warning returned from the destination application.

 Do not manually add or modify this value unless performing specific troubleshooting steps. Editing this value can cause the record to resync, and can potentially create duplicate records in the destination application.

Updating the Integration Status Field

The following describes how the Integration Status field is updated:

  1. When a record meets the selection criteria (typically if the Integration Status is not Sync Complete), it is extracted from the source application. After passing initial validations, the Integration Status on the source record is updated to Creating/Updating record type, depending on the specific sync situation.
    • For example, Creating Invoice or Updating Customer Account. This tells the Connector that this record has attempted to be synced and helps with recovery if an error occurs during the sync.
  2. Upon successfully creating or updating the record in the destination application, the source record’s Integration Status is updated to Sync Complete.
  3. If an application validation warning is returned by the destination application when attempting to sync the record, the Integration Status is updated to Error Creating/Updating record type (for example, Error Creating Invoice). The warning message is captured in the sync log and a notification email is sent (if configured in the NetSuite Connector preferences).

Some types of records have multiple "steps," and can have multiple intermediate Integration Status values. For example, when syncing a Zuora refund, its integration status will transition from Updating Payment to Creating Refund, then to Sync Complete.

Error Recovery

In the event of an unexpected error during the sync, NetSuite Connector will reprocess any records that were affected the next time that it runs. It uses the Integration Status field of the source record to determine how to process a given record:

  • If the Integration Status is blank, the record will be synced normally and create a new record in the destination application. No special logic is performed.
  • If the Integration Status is Creating/Updating record type or Error Creating/Updating record type, the record may or may not have been created in the destination application, depending on where the error occurred. NetSuite Connector queries the destination application to look for a corresponding record (it queries by Zuora ID or NetSuite ID, respectively). If it finds a match, the record was synced successfully and the source record’s Integration Status is updated to Sync Complete. If it does not find a match, the record is synced normally.

NetSuite Classifications

NetSuite has a series of classifications fields that you can be use to segment and categorize transactions and items for reporting and accounting rollup purposes. NetSuite Connector gives you flexibility in configuring the values and rules for applying classifications when syncing records from Zuora to NetSuite.

Classification Fields

The NetSuite classification fields include:

  • Location
  • Department
  • Class
  • Subsidiary (subsidiaries will be used only if you have NetSuite OneWorld edition.)

The use of classifications is optional, and any configuration will be determined by your NetSuite implementation and how you want to track transactions in NetSuite.

Classification fields will not be populated in Zuora for transactions synced from NetSuite.

Configuration

You can configure the classifications in multiple locations:

  • The "global" level within the NetSuite Connector setup
  • The Zuora customer account level
  • The Zuora product rate plan charge level

When specifying a value, enter the exact name of the classification found in NetSuite. If the classification is part of a hierarchy of values, you must enter the "full path" of the value, separating each level with three characters: space-colon-space (" : ").

For example, assume your NetSuite Location list looked like the following:

  • Americas
    • North America
      • Eastern
      • Western
    • South America
  • Europe

To specify the location Eastern, enter the following:

Americas : North America : Eastern

In addition, the NetSuite Connector setup includes preferences to determine the precedence that NetSuite Connector should use for department, location, and class values when syncing transaction header and detail records, whether from the Zuora Customer Account or the Product Rate Plan Charge. See "Classification Mapping Rules," below, for more information.

Classifications Mapping Rules

NetSuite Connector includes specific mapping rules that apply to department, location, and class values, and additional rules that apply to subsidiaries.

Department, Location, Class

Department, location, and class values will be mapped as follows:

  • For customer accounts, the value on the customer account will be used, if populated. Otherwise, the NetSuite Connector default will be used.
  • For product rate plan charges, the value on the product rate plan charge will be used, if populated. Otherwise, the NetSuite Connector default will be used.
  • For transaction "headers" (invoice, credit memo, payment, refund), the value on the customer account will be used, if populated. Otherwise, the NetSuite Connector default will be used.
  • For transaction "details" (invoice, credit memo), if the NetSuite Connector option Invoice Line xxx Mapping is set to Zuora Account, the value on the customer account will be used, regardless of whether it is populated or not (the NetSuite Connector default is not considered). If the NetSuite Connector option Invoice Line xxx Mapping is set to Zuora Charge, no value is mapped. This allows NetSuite to automatically populate the value from the referenced NetSuite Item.
    • If the NetSuite Connector option Invoice Line xxx Mapping is set to Zuora Account and there is no value set for Zuora Account, but the NetSuite item has a value, the value from the NetSuite item will be used on the transaction detail (populated automatically by NetSuite).
    • If you are using subsidiaries, the location referenced on a given invoice item must be valid for the subsidiary of the customer referenced on that transaction. Review the NetSuite item master for more information.

Subsidiaries

If the NetSuite Connector sync option NetSuite Subsidiaries is set to Yes, subsidiary values will be mapped as follows:

  • For customer accounts, the subsidiary value on the customer account will be used, if populated. Otherwise, the NetSuite Connector default subsidiary will be used.
  • For product rate plan charges, the subsidiary value on the product rate plan charge will be used, if populated. Otherwise, the NetSuite Connector default subsidiary will be used. In addition, the Include Children field is mapped from the product rate plan charge. There is no NetSuite Connector default value.
  • For transactions, the subsidiary is derived automatically by NetSuite from the referenced NetSuite customer record.

Subsidiaries will be used only if you have NetSuite OneWorld edition. 

The subsidiary cannot be changed for an existing customer record. Because of this, the subsidiary is not mapped when updating records.