Skip to main content
Back to tools
Mass Delete / NetSuite SuiteApp

Bulk cleanup, done on purpose

I built this for my own cleanup work, because clicking delete ten thousand times is not a plan. Dry-run first, see the dependencies, then execute with a full audit trail behind you. It runs as a SuiteApp inside NetSuite. If it would fit your environment, get in touch.

Not days for a cleanup
Minutes
Deep dependency detection
10 levels
Records per job
Unlimited
02 / Why I Built It

Cleanup is real work, so I treated it that way

Every NetSuite environment accumulates things that have to go: test data from a UAT cycle, duplicates from a bad import, old transactions a retention policy says to delete. That part is normal.

What was not normal was the way I kept doing it: clicking delete, confirm, delete, confirm, hoping I had not missed a dependency, with no record of what happened. So I built the version I actually wanted to use. Test before you commit. See the dependencies. Run the job with confidence. Keep a complete audit trail. Then get back to the work that moves the business.

03 / What It Does

The parts that make it safe

01

Dry-run testing

Simulate the deletion without removing anything. See exactly what would go before you commit to it.

02

Dependency detection

Finds child records up to 10 levels deep, so nothing gets orphaned and no relationship breaks.

03

Complete audit trail

Logs who deleted what, when, and why. Email notifications, and a record an auditor can read.

04

Full source code

Every SuiteScript file is unencrypted and commented. Modify it as you need. You own it.

04 / How It Works

Define, test, review, execute

01

Create a job

Use the custom record form. Pick the record type and criteria. No coding to define it.

02

Dry-run test

Simulate the deletion. See exactly what would be removed before anything happens.

03

Review dependencies

Check the child records and relationships. Confirm nothing gets orphaned.

04

Execute

Run it. Watch real-time progress. Get an email confirmation when the job finishes.

05 / When I Reach For This

The situations that call for it

A UAT cycle left thousands of test records behind

Testing is done and the environment is full of throwaway data. I run a job instead of clicking delete for three days.

A CSV import went sideways and made duplicates

An import created thousands of duplicates. Clean slate in minutes, re-import correctly, move on.

A retention policy needs old transactions gone

Policy says delete transactions past a certain age. Set the criteria, run the job, keep the log for the auditor.

Duplicate customers or items piled up over years

Clean them up without breaking relationships. The dependency detection is the part that makes that safe.

06 / Under The Hood

For the people deploying it into an account

  • SuiteScript 2.1, Map/Reduce architecture for scale
  • Custom record interface, no coding to use it
  • 10-level dependency recursion that catches nested relationships
  • Governance-compliant, respects NetSuite usage limits
  • Email notifications when jobs complete
  • Full source code, unencrypted, commented, yours to keep
Works with any record type
  • Customers, contacts, vendors
  • Sales orders, purchase orders
  • Invoices, bills, payments
  • Items, inventory records
  • Custom records
  • Journal entries
  • Opportunities, leads
  • Projects, tasks
  • Any standard or custom record

Setup time around 30 to 45 minutes. No ongoing maintenance.

07 / The Open Door

If this is how you want cleanup handled

There is no checkout here. I built Mass Delete for my own client work. If it fits your environment, get in touch and we can talk about putting it in your account.