Sort by Topics, Resources
Clear
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Salto for

NetSuite

Articles

SHARE

NetSuite Customization - CSV Import Best Practices

Sonny Spencer, BFP, ACA

January 23, 2025

14

min read

Introduction

NetSuite CSV imports are not just a tool used to support data migration activities when implementing NetSuite. When used effectively, CSV imports can streamline daily processes in NetSuite. Why create records in the system one by one when you can import them in bulk from a simple CSV file?

In fact, companies that have had the most success with CSV imports will establish a scripted solution to automatically trigger a CSV import when a file is saved to a certain location, generally a centralized server such as an AWS3 bucket or a local server.

Salto Tip: Even the most adept NetSuite Administrators still run into CSV import errors, check out this blog post that explores 7 common NetSuite CSV import errors and how to solve them.

Experience the Ease & Confidence of NetSuite Customizations with Salto

Automate the way you migrate Jira configurations from sandbox to production

STAY UP TO DATE

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Importance of getting your CSV imports right

CSV imports are a powerful tool that allow for the mass creation and update of system records. As such, getting a CSV import wrong can lead to a painful clean up exercise, especially if the import triggers other processes such as custom workflows and scripts.

Field Mapping

The mapping of fields between the CSV file and the corresponding NetSuite fields is critical. If just one field is mapped incorrectly it could have significant downstream consequences if not caught. The best case scenario is that the incorrectly mapped field results in the import failing altogether, perhaps due to the field having the incorrect data type. Worst case you are recording transactions with incorrect dates or amounts and sending them to your customers for payment.

Luckily, NetSuite has some built in functionality to help minimize some of this inherent risk in the process. Firstly, if the CSV file column header name matches the field name in NetSuite, the fields will automatically match in the field mapping vs needing to be mapped manually. In addition, the pencil icon next to fields on the left (from the CSV file) allows you to set default values or change the reference type for the field value.

A good example is referencing the Internal ID or External ID for a NetSuite field value as opposed to the name of the field value. It is often simpler to reference an ID as opposed to a name when completing CSV imports in NetSuite to reduce the risk of errors.

Screenshot of NetSuite CSV import field mapping with CSV file on the left and NetSuite fields on the right

Salto Tip: When creating a CSV import, reference the internal ID of a field value as opposed to the name. The name of a field value can change, but the internal ID cannot. For example imagine you are mapping the department field value and the name of the department changes in the future. The next time you try to import a related CSV import it could fail if the CSV import file was not updated, whereas this would not be a consideration were the internal ID of the department referenced in the first place.

Templates

The ability to create CSV import templates that can be reused over and over in NetSuite is huge. Even when imported manually (and a few clicks later) it is still significantly more efficient than creating or editing large volumes of records manually.

It is also a great way for NetSuite Administrators to add value for their end users. The end user need not deeply understand the mechanics behind the CSV import process. With a well constructed CSV import template, they need only click on the template link (which can be saved as a favorite/shortcut), drag and drop the input file and click on “Next” 3 times before clicking on “Run”.

Access to CSV import templates can be granted at the user role and even specific user level. This allows NetSuite Administrators to build a library of CSV import templates for use across the business, but keep the list of templates small for each user group to avoid getting lost in a sea of stale or irrelevant templates.

Screenshot of CSV import screen where you can save the import as a template for future use

Salto Tip: Create a CSV import template when performing a one-off import. If the import fails after the fact and you do not save it you will need to manually recreate the mapping again, which is not fun especially if mapping 10 or more columns. Simply name the template “temporary”, complete your input successfully and then delete the template afterward, so you don’t end up with hundreds of stale templates in your NetSuite environment that will never be used again.

Advanced Options

On the “Import Options” page it is easy to overlook the “Advanced Options” section when it is not expanded and yet it houses the most important settings for any CSV import. There might be valid use cases where you want to ignore mandatory custom fields in order to update data on existing records. Instead of forcing values into the mandatory custom fields you can leave them blank and uncheck the “Validate Mandatory Custom Fields” check box.

Ensure you have the “Run Server SuiteScript and Trigger Workflows” check box enabled. This will ensure all related NetSuite customization triggers under the CSV import context, as prescribed in those customizations. This does have an impact on the performance (speed) of the CSV import process.

If you’re looking to speed things up, don’t forget to spread your CSV imports across multiple queues and leverage multi-threading where the order the records are imported in is not important. Multi-threading is not recommended when importing data with parent-child relationships due to the risk of attempting to create the child record before the parent record exists, leading to an import error.

Screenshot of advanced options available when importing records via CSV import

NetSuite continues to innovate across all key areas of the platform. Let’s explore some of the latest enhancements to these features in 2024.

STAY UP TO DATE

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

****

New NetSuite Features

In the 2024.1 release, NetSuite released a number of new features related to CSV imports. Two new record types were added to the list of supported records available for CSV imports.

  1. Revenue Recognition Field Mapping Enhancements
  2. Work Order Import - it is available only when the Work Order and Advanced BOM feature is enabled.

Additional features added include the ability to use CSV import to revalue multiple assets in a single transaction, within FAM. The “Import CSV” button on the Asset Revaluation page opens the Bulk Asset Revaluation page and includes a link to a sample CSV file that can be downloaded and used to import data.

Screenshot showing the “Import CSV” button on the Asset Revaluation page

In the 2024.2 release, functionality was added related to wholesale distribution. Specifically, users can now set default rebate tiers when importing rebate tier data via CSV import. On the CSV import file simply enter True under the Default column for your preferred default tier level. See here for additional details on this functionality.

Here are links to the 2024 NetSuite Release Notes for quick reference.

Challenges with Managing Customization Manually

NetSuite Administrators manage the deployment process for system customizations from custom roles to custom forms to custom workflows to custom records. They typically have to manage this process in addition to their support of end user requests.

Each custom solution deployment to Production takes time, even something as small as a custom field or a custom saved CSV import! Some customizations can be incredibly difficult to deploy manually without some risk of human error. When leveraging some of the out of the box tools available, NetSuite Administrators can run into dependency issues that delay the deployment process.

Something as small as a mis-mapped field on a CSV import mapping table can have significant downstream impacts for a business running NetSuite. As mentioned earlier, if a date field or an amount field is mapped incorrectly on a transaction record type and it is not caught in time, it could result in incorrect invoices being issued to customers or incorrect amounts paid to vendors. These are not scenarios any business wants to deal with, but can become a reality without the right processes in place to migrate the CSV import template that has been tested (hopefully) in a lower environment.

Often businesses will have the right checks and balances in place to catch errors that slip through the cracks, but for those not so lucky it could have a very real impact on customer or vendor relationships. All because of a manual deployment process.

To reduce the risk of running into these issues, some NetSuite Administrators will execute redundant checks and balances to make sure that everything has been deployed correctly. This might involve more than one member of the NetSuite Admin Team overseeing the deployment to cross reference the custom solution in the Sandbox environment with what is being deployed in the Production environment. All of this simply slows the deployment process down and is a waste of time for these strong technical resources that could be adding value in other meaningful ways.

Not sure how costly getting deployments wrong can be to your business? Check out this blog post (with a calculator) to help you make that assessment.

Now, let’s explore solutions to these challenges.

Solutions for Managing NetSuite Customizations

Now that we understand some of the key challenges and risks with managing these system customizations manually across NetSuite environments, let’s explore some of the solutions available.

NetSuite has a number of solutions for deploying your NetSuite customizations. These solutions include Suitebundle, Copy to Account and SuiteCloud Development Framework (SDF). You will need to consider which option is best based upon the custom solution you are deploying to Production and factor in any limitations.

NetSuite Administrators are typically faced with numerous projects running simultaneously at any given time, making it even more challenging to stay on top of dependencies introduced (intentionally or not) within the NetSuite environment. Given this uphill battle, NetSuite Administrators are exploring alternate solutions. One solution they are exploring is Salto. You can see more details about the Salto SuiteApp here. The Salto SuiteApp is helping NetSuite teams in a multitude of ways and you don’t need to be a NetSuite Developer to use it. 

The SuiteApp allows them to perform environment comparisons across all of their NetSuite environments, helping quickly identify any dependencies.

In addition, Salto gives NetSuite Administrators the flexibility to execute deployment rollbacks with a few clicks. Rollbacks are generally a top priority when they need to occur and having the tools available to manage this process in a matter of minutes (if not seconds) is a lifeline for any NetSuite Admin Team.

Now that you have successfully deployed your custom NetSuite solutions to Production, let’s consider some best practices that NetSuite Administrators should adopt when working with CSV imports.

Best Practices When Working With NetSuite CSV Imports

  1. Leverage External IDs - When linking records back to an external system it is best to use external IDs for ease of reference/reconciliation.
  2. Reporting Segments - Make sure you check on things like subsidiary and department access to underlying records before completing your import, so you can address any gaps in advance.
  3. Templates - Create CSV import templates for repeatable processes. Create them for one-off processes, then delete them after they have served their purpose.
  4. Key Data Points - Certain records require very specific field values to function correctly e.g. the Item record type should have a “Base Price” populated, even if the value is zero.
  5. User Access - Make sure the intended users of the CSV import process have access to the underlying record they are trying to create/update as well as having access to any related templates.
  6. Field Mapping - Double (and triple) check your field mapping. This is where things can go wrong pretty quickly if fields are not mapped appropriately.
  7. Leverage Internal IDs - Reference internal IDs instead of Name references. The internal IDs will not change in the future, whereas the names could. Setup your process for scale and reference internal IDs instead, where possible.
  8. Error Library - Consider starting your own library of all CSV import errors and how they were ultimately solved. While more general errors can be resolved by researching in SuiteAnswers (or referencing related articles here), many will be specific to your NetSuite environment, so it is best to track them and learn from them collectively.
  9. Multi-thread - Improve the speed of your CSV import jobs by multi-threading when appropriate.
  10. Multi-queue - If you have at least one SuiteCloud plus license you can leverage up to 5 CSV import queues. Make use of all available queues, so that one import does not directly hold up another.

Salto Tip: Check out this FREE NetSuite Administrator training course on Salto Leap to see how you can become a Master NetSuite Administrator and NetSuite guru for your company.

Useful references

For more Best Practices to manage your NetSuite customizations, check out Salto’s blog posts that explore some of the things that NetSuite Developers and NetSuite Administrators should be leveraging within the NetSuite ecosystem.

Final thoughts

NetSuite CSV imports should be part of the day to day processing for any company leveraging NetSuite. If they are not, then you are likely creating transactions manually when they could be imported with a simple template. Yes, there is a one-time setup commitment to get the CSV file in the correct format and build the mapping, but once it is tested and ready for use it will save time from that point on.

If you are constantly running into CSV import errors, take the time to understand why you are running into these errors. Perhaps system records do not have the correct subsidiary or department access, which is causing the errors. Perhaps the field type does not match the data that is being imported. Whatever the issue may be, the better you understand your NetSuite environment dependencies the fewer errors you will run into.

Don’t get frustrated if your CSV import doesn’t execute for 100% of records on the first try. There is a learning curve. For those that have imported many NetSuite CSV imports you will know the satisfaction of completing a CSV import on the first attempt with no exceptions. It is a great feeling!

WRITTEN BY OUR EXPERT

Sonny Spencer, BFP, ACA

Director of Finance Operations

Sonny is a seasoned NetSuite veteran, with more than 7 years experience implementing NetSuite and architecting NetSuite solutions for a wide variety of public and private companies, on a global scale. He leverages his background both as a Chartered Accountant and Certified NetSuite Administrator to design and build NetSuite solutions that solve real world problems. Sonny is an active member of the NetSuite community, participating in local NetSuite meetups, NetSuite forums and groups focused on financial system optimization.

Sort by Topics, Resources
Clear
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Salto for

NetSuite

NetSuite

SHARE

NetSuite Customization - CSV Import Best Practices

Sonny Spencer, BFP, ACA

January 23, 2025

14

min read

Introduction

NetSuite CSV imports are not just a tool used to support data migration activities when implementing NetSuite. When used effectively, CSV imports can streamline daily processes in NetSuite. Why create records in the system one by one when you can import them in bulk from a simple CSV file?

In fact, companies that have had the most success with CSV imports will establish a scripted solution to automatically trigger a CSV import when a file is saved to a certain location, generally a centralized server such as an AWS3 bucket or a local server.

Salto Tip: Even the most adept NetSuite Administrators still run into CSV import errors, check out this blog post that explores 7 common NetSuite CSV import errors and how to solve them.

What if Zendesk was 4x less work?

Request a Demo Get started with Salto

Importance of getting your CSV imports right

CSV imports are a powerful tool that allow for the mass creation and update of system records. As such, getting a CSV import wrong can lead to a painful clean up exercise, especially if the import triggers other processes such as custom workflows and scripts.

Field Mapping

The mapping of fields between the CSV file and the corresponding NetSuite fields is critical. If just one field is mapped incorrectly it could have significant downstream consequences if not caught. The best case scenario is that the incorrectly mapped field results in the import failing altogether, perhaps due to the field having the incorrect data type. Worst case you are recording transactions with incorrect dates or amounts and sending them to your customers for payment.

Luckily, NetSuite has some built in functionality to help minimize some of this inherent risk in the process. Firstly, if the CSV file column header name matches the field name in NetSuite, the fields will automatically match in the field mapping vs needing to be mapped manually. In addition, the pencil icon next to fields on the left (from the CSV file) allows you to set default values or change the reference type for the field value.

A good example is referencing the Internal ID or External ID for a NetSuite field value as opposed to the name of the field value. It is often simpler to reference an ID as opposed to a name when completing CSV imports in NetSuite to reduce the risk of errors.

Screenshot of NetSuite CSV import field mapping with CSV file on the left and NetSuite fields on the right

Salto Tip: When creating a CSV import, reference the internal ID of a field value as opposed to the name. The name of a field value can change, but the internal ID cannot. For example imagine you are mapping the department field value and the name of the department changes in the future. The next time you try to import a related CSV import it could fail if the CSV import file was not updated, whereas this would not be a consideration were the internal ID of the department referenced in the first place.

Templates

The ability to create CSV import templates that can be reused over and over in NetSuite is huge. Even when imported manually (and a few clicks later) it is still significantly more efficient than creating or editing large volumes of records manually.

It is also a great way for NetSuite Administrators to add value for their end users. The end user need not deeply understand the mechanics behind the CSV import process. With a well constructed CSV import template, they need only click on the template link (which can be saved as a favorite/shortcut), drag and drop the input file and click on “Next” 3 times before clicking on “Run”.

Access to CSV import templates can be granted at the user role and even specific user level. This allows NetSuite Administrators to build a library of CSV import templates for use across the business, but keep the list of templates small for each user group to avoid getting lost in a sea of stale or irrelevant templates.

Screenshot of CSV import screen where you can save the import as a template for future use

Salto Tip: Create a CSV import template when performing a one-off import. If the import fails after the fact and you do not save it you will need to manually recreate the mapping again, which is not fun especially if mapping 10 or more columns. Simply name the template “temporary”, complete your input successfully and then delete the template afterward, so you don’t end up with hundreds of stale templates in your NetSuite environment that will never be used again.

Advanced Options

On the “Import Options” page it is easy to overlook the “Advanced Options” section when it is not expanded and yet it houses the most important settings for any CSV import. There might be valid use cases where you want to ignore mandatory custom fields in order to update data on existing records. Instead of forcing values into the mandatory custom fields you can leave them blank and uncheck the “Validate Mandatory Custom Fields” check box.

Ensure you have the “Run Server SuiteScript and Trigger Workflows” check box enabled. This will ensure all related NetSuite customization triggers under the CSV import context, as prescribed in those customizations. This does have an impact on the performance (speed) of the CSV import process.

If you’re looking to speed things up, don’t forget to spread your CSV imports across multiple queues and leverage multi-threading where the order the records are imported in is not important. Multi-threading is not recommended when importing data with parent-child relationships due to the risk of attempting to create the child record before the parent record exists, leading to an import error.

Screenshot of advanced options available when importing records via CSV import

NetSuite continues to innovate across all key areas of the platform. Let’s explore some of the latest enhancements to these features in 2024.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

****

New NetSuite Features

In the 2024.1 release, NetSuite released a number of new features related to CSV imports. Two new record types were added to the list of supported records available for CSV imports.

  1. Revenue Recognition Field Mapping Enhancements
  2. Work Order Import - it is available only when the Work Order and Advanced BOM feature is enabled.

Additional features added include the ability to use CSV import to revalue multiple assets in a single transaction, within FAM. The “Import CSV” button on the Asset Revaluation page opens the Bulk Asset Revaluation page and includes a link to a sample CSV file that can be downloaded and used to import data.

Screenshot showing the “Import CSV” button on the Asset Revaluation page

In the 2024.2 release, functionality was added related to wholesale distribution. Specifically, users can now set default rebate tiers when importing rebate tier data via CSV import. On the CSV import file simply enter True under the Default column for your preferred default tier level. See here for additional details on this functionality.

Here are links to the 2024 NetSuite Release Notes for quick reference.

Challenges with Managing Customization Manually

NetSuite Administrators manage the deployment process for system customizations from custom roles to custom forms to custom workflows to custom records. They typically have to manage this process in addition to their support of end user requests.

Each custom solution deployment to Production takes time, even something as small as a custom field or a custom saved CSV import! Some customizations can be incredibly difficult to deploy manually without some risk of human error. When leveraging some of the out of the box tools available, NetSuite Administrators can run into dependency issues that delay the deployment process.

Something as small as a mis-mapped field on a CSV import mapping table can have significant downstream impacts for a business running NetSuite. As mentioned earlier, if a date field or an amount field is mapped incorrectly on a transaction record type and it is not caught in time, it could result in incorrect invoices being issued to customers or incorrect amounts paid to vendors. These are not scenarios any business wants to deal with, but can become a reality without the right processes in place to migrate the CSV import template that has been tested (hopefully) in a lower environment.

Often businesses will have the right checks and balances in place to catch errors that slip through the cracks, but for those not so lucky it could have a very real impact on customer or vendor relationships. All because of a manual deployment process.

To reduce the risk of running into these issues, some NetSuite Administrators will execute redundant checks and balances to make sure that everything has been deployed correctly. This might involve more than one member of the NetSuite Admin Team overseeing the deployment to cross reference the custom solution in the Sandbox environment with what is being deployed in the Production environment. All of this simply slows the deployment process down and is a waste of time for these strong technical resources that could be adding value in other meaningful ways.

Not sure how costly getting deployments wrong can be to your business? Check out this blog post (with a calculator) to help you make that assessment.

Now, let’s explore solutions to these challenges.

Solutions for Managing NetSuite Customizations

Now that we understand some of the key challenges and risks with managing these system customizations manually across NetSuite environments, let’s explore some of the solutions available.

NetSuite has a number of solutions for deploying your NetSuite customizations. These solutions include Suitebundle, Copy to Account and SuiteCloud Development Framework (SDF). You will need to consider which option is best based upon the custom solution you are deploying to Production and factor in any limitations.

NetSuite Administrators are typically faced with numerous projects running simultaneously at any given time, making it even more challenging to stay on top of dependencies introduced (intentionally or not) within the NetSuite environment. Given this uphill battle, NetSuite Administrators are exploring alternate solutions. One solution they are exploring is Salto. You can see more details about the Salto SuiteApp here. The Salto SuiteApp is helping NetSuite teams in a multitude of ways and you don’t need to be a NetSuite Developer to use it. 

The SuiteApp allows them to perform environment comparisons across all of their NetSuite environments, helping quickly identify any dependencies.

In addition, Salto gives NetSuite Administrators the flexibility to execute deployment rollbacks with a few clicks. Rollbacks are generally a top priority when they need to occur and having the tools available to manage this process in a matter of minutes (if not seconds) is a lifeline for any NetSuite Admin Team.

Now that you have successfully deployed your custom NetSuite solutions to Production, let’s consider some best practices that NetSuite Administrators should adopt when working with CSV imports.

Best Practices When Working With NetSuite CSV Imports

  1. Leverage External IDs - When linking records back to an external system it is best to use external IDs for ease of reference/reconciliation.
  2. Reporting Segments - Make sure you check on things like subsidiary and department access to underlying records before completing your import, so you can address any gaps in advance.
  3. Templates - Create CSV import templates for repeatable processes. Create them for one-off processes, then delete them after they have served their purpose.
  4. Key Data Points - Certain records require very specific field values to function correctly e.g. the Item record type should have a “Base Price” populated, even if the value is zero.
  5. User Access - Make sure the intended users of the CSV import process have access to the underlying record they are trying to create/update as well as having access to any related templates.
  6. Field Mapping - Double (and triple) check your field mapping. This is where things can go wrong pretty quickly if fields are not mapped appropriately.
  7. Leverage Internal IDs - Reference internal IDs instead of Name references. The internal IDs will not change in the future, whereas the names could. Setup your process for scale and reference internal IDs instead, where possible.
  8. Error Library - Consider starting your own library of all CSV import errors and how they were ultimately solved. While more general errors can be resolved by researching in SuiteAnswers (or referencing related articles here), many will be specific to your NetSuite environment, so it is best to track them and learn from them collectively.
  9. Multi-thread - Improve the speed of your CSV import jobs by multi-threading when appropriate.
  10. Multi-queue - If you have at least one SuiteCloud plus license you can leverage up to 5 CSV import queues. Make use of all available queues, so that one import does not directly hold up another.

Salto Tip: Check out this FREE NetSuite Administrator training course on Salto Leap to see how you can become a Master NetSuite Administrator and NetSuite guru for your company.

Useful references

For more Best Practices to manage your NetSuite customizations, check out Salto’s blog posts that explore some of the things that NetSuite Developers and NetSuite Administrators should be leveraging within the NetSuite ecosystem.

Final thoughts

NetSuite CSV imports should be part of the day to day processing for any company leveraging NetSuite. If they are not, then you are likely creating transactions manually when they could be imported with a simple template. Yes, there is a one-time setup commitment to get the CSV file in the correct format and build the mapping, but once it is tested and ready for use it will save time from that point on.

If you are constantly running into CSV import errors, take the time to understand why you are running into these errors. Perhaps system records do not have the correct subsidiary or department access, which is causing the errors. Perhaps the field type does not match the data that is being imported. Whatever the issue may be, the better you understand your NetSuite environment dependencies the fewer errors you will run into.

Don’t get frustrated if your CSV import doesn’t execute for 100% of records on the first try. There is a learning curve. For those that have imported many NetSuite CSV imports you will know the satisfaction of completing a CSV import on the first attempt with no exceptions. It is a great feeling!

WRITTEN BY OUR EXPERT

Sonny Spencer, BFP, ACA

Director of Finance Operations

Sonny is a seasoned NetSuite veteran, with more than 7 years experience implementing NetSuite and architecting NetSuite solutions for a wide variety of public and private companies, on a global scale. He leverages his background both as a Chartered Accountant and Certified NetSuite Administrator to design and build NetSuite solutions that solve real world problems. Sonny is an active member of the NetSuite community, participating in local NetSuite meetups, NetSuite forums and groups focused on financial system optimization.