FAQ: Maximizing CloudExtend Excel Data Management for NetSuite Performance

XLNS | Learn how CloudExtend handles queues, concurrency limits, and best practices for maximizing performance

Updated over a week ago

This article provides some tips on maximizing performance. Most readers will want to jump right there. For admins, we also discuss how we deal with NetSuite concurrency concerns.

NetSuite Concurrency

By default, NetSuite restricts integrations using basic credentials, ie username, and password,  to make only one NetSuite web services call at a time. CloudExtend supports basic credentials as well as token-based authentication (TBA).

CloudExtend’s Current Approach

NetSuite enforces strict per account concurrency limits. CloudExtend apps are designed to use only one queue (the first available) at a time, irrespective of the login mode (basic credentials or TBA). We want to be a team player with all of your other apps and not be overly aggressive in taking over queues. By ensuring that our apps occupy a single queue we minimize any impact on other real-time business-critical applications that customers may have running on their accounts. 

For example, if your account’s allowed concurrency is 10 and your current integrations are using all 10 queues, then CloudExtend app users logging in will run into concurrency issues and CloudExtend will go into retry mode (as outlined below). 

A future build of CloudExtend will allow admins to specify a maximum number of queues for CloudExtend when using TBA. Customers with sufficient NetSuite queues will have full control over CloudExtend performance.

Retry Approach

In the event, all of your NetSuite queues are occupied CloudExtend Apps have a built-in retry mechanism. Whenever the app notices that one of its requests is rejected due to concurrency restrictions, it continues to retry 3 times and then throws an error when it fails to make a call after all retries are done. In such cases, users will see an appropriate failure notification in the app and they will be required to retry the operation they were performing before. 

NetSuite does provide the ability to purchase additional queues and we recommend you add other integrations to those queues to leave room for CloudExtend in the event you consistently encounter concurrency issues.

Understanding your account concurrency levels:

Follow this cheat sheet from NetSuite to understand your concurrency limits and usage.

Find out the concurrency limits for your NetSuite account

Within NetSuite, NetSuite admins can go to Setup > Integration > Web Services Preferences and see their account’s Concurrency Governance called ACCOUNT CONCURRENCY LIMIT. The number listed here is the maximum number of concurrent requests that are allowed for the account.

Understanding your Integration application performance and usage:
NetSuite suggests installing Application Performance Management (APM) SuiteApp(You need to be logged in into your NetSuite to access this page) to understand and monitor your account Web Services and RESTlet concurrencies. 

Once installed the following video should help you to understand when and why you are running into concurrency issues and see which applications are causing concurrency issues (this is a NetSuite video that will open outside of the CloudExtend Help Center)

NetSuite Video

Best Practices for maximum performance

Change your scripts and workflows

When a user builds a workflow, they often only want it to run in the NetSuite UI. Because only one record is updated at a time the performance impact appears minimal. If, however, your workflow is also running in the context of SOAP web services it can dramatically slow down an upload because it will run on each record uploaded via CloudExtend.

Check with your admin or developer and see if it's possible to de-select SOAP web services in your workflow or your script.


  • If known, use internalID only in [[nnnn]] format for picklists 

  • Resolve values using Picklist prior to upserting (this inserts the NetSuite internalID for you behind the scenes)

  • Use Vlookups to other worksheets to retrieve internalID’s

  • Limit the number of columns to just those needed

  • Don't include line-level fields if you don't need them 


  • Use a data filter or pre-built NetSuite saved search to return only the records you need

  • Limit the number of columns to just those needed

  • Templates without sub-list columns can often lead to much faster downloads

  • If you don’t need to upsert data after downloading, consider adding CloudExtend Analytics (a separate paid feature) to be able to quickly run / rerun your saved searches and download the results to Excel for reporting.
    You can also leverage these searches to perform a look up of internal ID's to populate your template to speed up your uploads. Learn more here.

Did this answer your question?