Solving the NetSuite CSV Import Queue Bottleneck

Two Small Bugs That Taught Me a Big Lesson About Building NetSuite Solutions
October 27, 2026 by
Solving the NetSuite CSV Import Queue Bottleneck
Marvin Romen

One of my NetSuite clients had a problem that many growing companies run into: they import a lot of CSV files, and their import queue keeps stacking up. The client has no SuiteCloud Plus license, which means NetSuite defaults to a single queue (Queue 1) only. With every import competing in the same queue, urgent imports waited behind routine ones, and processing delays were becoming a daily frustration. 

So I built a CSV import queue solution that works within that limitation. The idea was simple: not every import is equally important, so they shouldn’t be treated equally. 

The solution uses three priority levels, each with its own deployment:

  • Immediate, for imports that can’t wait
  • Standard, for everyday imports
  • Non-Urgent, for large or low-priority jobs that can run in the background


It worked. The queue moved, and the team stopped fighting over what got processed first.

But the real lessons came a few weeks later.



Lesson 1: Time zones will find you

After a few weeks of use, the client told me that imports were staying in Pending status. Immediate imports were processing normally, but both Standard and Non-Urgent imports just sat there.

I checked the script logic first, then the deployment settings. Everything looked correct. The problem wasn’t in the code at all. The client’s local time and the NetSuite account’s time zone were not the same.

The scheduled deployments were running exactly when I told them to run, just not when the client expected. I adjusted the deployment schedules by 2 hours so they lined up with NetSuite’s time, and both Standard and Non-Urgent imports started processing as expected.

What I took from this: when a solution depends on scheduling, always confirm which time zone the schedule actually follows. The user’s clock, the server’s clock, and the account’s clock can all be different, and the system will always follow its own.

Each priority has its own deployment and schedule. Immediate runs 24/7, so urgent imports are picked up right away. Standard runs from 7 PM to 6 AM in the client’s local time, and Non-Urgent runs from 12 AM to 5 AM, so routine and low-priority imports run overnight, away from the working day. Because the client’s time zone is different from the NetSuite account’s time zone, the deployment schedules have to be set in NetSuite server time. That is 2 hours earlier than the client’s local time: 5 PM to 4 AM for Standard and 10 PM to 3 AM for Non-Urgent.


Lesson 2: Copying records copies more than you think

The second issue came from a habit that makes perfect sense. When users needed to run a similar import, they would copy an old CSV import record instead of creating a new one from scratch.

The problem was that the copy kept the field values from the old record. When the new record was submitted, those old values came along with it. Users thought they were starting fresh, but the system was working from stale data.

To fix it, I created a user event script that resets those fields whenever a record is copied. Now a copied record starts clean, and the new import never carries values from the old one.

What I took from this: don’t just build for how users should use the solution. Build for how they will actually use it. If there’s a shortcut available, someone will take it, and your solution needs to handle that safely.


The bigger takeaway


Neither issue was a flaw in the core design. The queue logic did exactly what it was built to do. But both issues only showed up once real people used the solution in real conditions over several weeks.

That’s why I now treat the go-live as the beginning of the project, not the end. A good NetSuite solution isn’t just one that works in testing. It’s one that keeps working when time zones differ, when users take shortcuts, and when the business moves faster than the documentation.

If your team is dealing with import backlogs, processing delays, or any other NetSuite bottleneck, I’d be glad to talk about what might work for your setup.


Have you run into a time zone or record-copying surprise in your own NetSuite or ERP projects? I’d like to hear about it in the comments.


Share this post
Archive