NetSuite Process Method: Hierarchical record balancing via workflow or mass update
This article is for NetSuite Administrators or Developers looking to execute record balancing using native functions only (No code!). We define a few native NetSuite functions that can perform Parent Record to Sub-Record data synchronization.
Our use case in the article relates to Customer (Entity) records; however, this can be applied to any record combination when controlling record is Parent. Another example could be a “Master Work Order” (Custom Record) that can control functions for multiple Work Orders that would lie beneath it.
This is a request we’ve repeatedly seen from our clients. Their users want to be able to manage data from a single record and have it apply down to the sub-records. Prior to engaging us, we’ve heard from clients where their users were spending hours updating records twice due to the fact that there are not dynamic connections between the parent and sub-records (similar to the capabilities of a Matrix item).
There are two methods you can use depending on your familiarity with NetSuite’s bulk update methods and depending on the configuration of the underlying customer records.
Scheduled Workflow Method
A scheduled workflow has the advantage of being able to update fields on the associated records regardless if the fields are shown on the default customer form or not. This method may be a bit more complicated to set up for users that are less familiar with NetSuite administrator configurations.
STEP ONE: Start by creating a new Saved Search looking for the sub-customers which would be updated from the parent customer record. We recommend configuring your criteria in a way where sub-customers that are already in-sync with the parent customer not be included in the results (since they do not need to be updated). Excluding already-synced sub-customers will also improve performance of the workflow.
In the example below, we’re looking for Sub-Customers who do not have the “2020 New Customer” flag set, but whose Parent Customer’s do have that flag set. Also, be sure to add any other custom criteria you have for customers which should not be updated (e.g. set certain classes of customers who shouldn’t be synced to each other).
STEP TWO: Create a NetSuite Customer workflow against your desired sub type(s). Configure the Initiation as Scheduled, and enter the Saved Search from STEP ONE as the Saved Search Filter. Configure the schedule on which you want the scheduled workflow to run (i.e. Daily, Weekly, etc).
STEP THREE: Create a new Set Field Value action within your workflow state, and configure the field you want to sync with the parent customer. In this example, we’re setting the sub-customer’s “2020 New Customer” field value to the parent customer’s “2020 New Customer” field value.
When the scheduled workflow executes, the sub-customers that are populated on the saved search from STEP ONE (which are out of sync with the parent customer) will have their field value updated to what is set on the parent customer.
Depending on your familiarity with saved searches and workflows, you can combine multiple fields to be balanced and synced within the same saved search/workflow combination by adding additional saved search criteria and Set Field Value workflow actions.
Mass Update Method
A Mass Update may be easier for users who are less familiar with administrator configurations within NetSuite, but it can be more limiting of fields that are available to be updated. For mass updates, the fields have to be visible and editable on the default customer forms.
A key advantage of the Mass Update method is that all update components are contained within the same Mass Update record, whereas the Scheduled Workflow method would require at least 2 components: a Workflow and a Saved Search.
How to do it
Start by creating a new Mass Update against the Customer record type under General Updates. Configure your mass update criteria to look for the sub-customers which would be updated from the parent customer record. We recommend configuring your criteria in a way where sub-customers which are in-sync with the parent customer are not included in the results (since they wouldn’t need to be updated). Excluding already-synced sub-customers will improve performance for the mass update.
In the example below, we’re looking for Sub-Customers who have shipping account numbers that are different than the shipping account numbers listed on the Parent Customer. Additionally, add any other custom criteria you have for customers which should not be updated (e.g. certain classes of customers who shouldn’t be synced to each other).
We recommend adding both the Sub-Customer fields and the Parent Customer fields to the Results subtab (as shown, below) so that you can visually validate that the criteria is pulling the expected records by viewing the results for each record.
On the Mass Update Fields subtab, configure the sub-customer fields to be set from the parent custom record. Note: for a field to show on this page, it must be visible on the default customer form, and it must be editable on the form.
Using a formula with the parentcustomer join, we’re able to access the values from the parent customer so that they can be set on the current sub-customer when the Mass Update is triggered.
Finally, run some tests to validate the results of the criteria and mass update functions. If everything looks as expected, navigate to the Mass Update’s Schedule tab and configure the schedule on which you want the mass update to run.
Ensuring hierarchical record balancing is a common requirement with many of our clients and thought to share a couple of methods.
If you have some methods you would like to share, or if you would like to have a discussion, drop us a line and let’s talk.
eXtendTech holds decades of NetSuite expertise as Business Users, Administrators, Implementers, and Developers working within the application daily. eXtendTech authors NetSuite bundles and provides professional services for businesses looking to streamline their operations, improve their profitability, and increase their customer satisfaction. We know NetSuite, and we know how to fill gaps and work around NetSuite limitations.
The eXtendTech team has two (2) primary offers:
- NetSuite Solution Design & Customization Services
- eXtendTech NetSuite Applications
eXtendTech builds applications to deliver powerful functionality to you efficiently and cost effectively. When engaged with services, we strive for exceptional care and quality behind our NetSuite solutioning and implementation delivery. Going deeper to create meaningful solutions in a thoughtful and deliberate manner is what we do.