This article applies to NetSuite custom objects, which are not a part of the standard set of objects or tables available in NetSuite by default. These custom objects in NetSuite are generally created by an admin/dev or by addition of 3rd party tools. Breadwinner for NetSuite is a managed package but can be configured to incorporate custom and non-standard object data syncing to and from NetSuite.
You can see a list of available NetSuite custom objects in the ‘Custom’ category under the NetSuite Objects section of Breadwinner for NetSuite tab.
Breadwinner can sync NetSuite custom objects with Salesforce and can keep them updated over time.
The first method is from the Breadwinner for NetSuite -> NetSuite Objects page, shown above. Clicking the 'Create in Salesforce' button will have Breadwinner create the custom Salesforce object based on the custom NetSuite object selected.
The new Salesforce custom object label will be the same as the NetSuite custom object label, however, the custom object API name will be a bit different. The custom object API name in NetSuite always starts with the prefix “customrecord_”, but Breadwinner replaces that with the prefix “nco_” (NetSuite Custom Object).
On clicking Yes, in the popup displayed, Breadwinner will attempt to dynamically create a new Salesforce custom object by using the schema of NetSuite custom object. However, due to Salesforce limitations and to respect your organization security, Breadwinner will not create a tab for the new custom object. Furthermore the object and its fields are hidden from all users until you expose them by applying standard Salesforce security such as using Profiles, Permission Sets, Field Level Security.
Breadwinner can’t populate the data in the new custom object created unless the user who set up Breadwinner and scheduled the syncs (aka running user) has necessary permissions on the object and its fields.
So, in order to provide permissions, you can either use Salesforce Profile level permissions or create a Permission Set and assign it to desired users who need access to the object. Optionally, you can create a custom tab for the new custom object.
For example, below is shown a permission set called “NetSuite Custom Object Permissions” and given custom object and field permissions in the following screenshot.
The second method is to create custom Salesforce objects yourself and point Breadwinner to those objects by enabling the sync below.
If you choose this method, you must use specific API naming standards defined by Breadwinner in order for data to sync successfully.
- The custom object you create must have an API name prefixed with “nco_” (NetSuite Custom Object). Although the custom object API name in NetSuite always starts with the prefix “customrecord_”, but Breadwinner considers an object when the prefix is “nco_”.
- The custom object must contain the field “InternalId__c” text field, to store the NetSuite object record id.
- Avoid inadvertently creating or renaming objects in Salesforce whose api name starts with "nco_". This being the key for Breadwinner to find and integrate the table may cause unwanted side effects.
Once the object is created, you can visit the Custom category of NetSuite Objects section in the Breadwinner for NetSuite tab, and click the Sync Status toggle to enable or disable the sync and click Save.
After following all the steps above, you can start fetching the NetSuite custom object records into Salesforce by clicking the "Restart NetSuite Custom Object Sync" button available from the Troubleshooting section of the Breadwinner for NetSuite tab.