For the things NetSuite was supposed to do and doesn’t
Every NetSuite account eventually hits a wall the platform was never going to clear. Approvals that lock the order so hard nobody can correct a price. A repair process that has no model. Serial numbers you need on the way out but not on the way in. A third-party warehouse that ships your orders and can’t tell your ERP.
That is what we build. And because we are usually still here in three years, we build it to be maintained rather than to be finished.
What we do
The build SuiteScript and SuiteQL. Workflows, custom records, saved searches, RESTlets and Suitelets. User Event, Client, Map/Reduce and scheduled scripts. Third-party API integrations. Customized transaction forms and Advanced PDF templates — including PDFs driven by a saved search, when NetSuite will not otherwise put the data on the page.
How it ships Deployed through SDF and kept in version control, so you can see what changed and when. Every project handed over with developer notes. Larger systems come with an architecture diagram, a dated log of the decisions we locked and why, and an explicit statement of what we deliberately left out of scope.
That last part is unusual enough to be worth spelling out. Our design documents record the version we would revert to, the hazards we found and did not fix, and the places where an earlier draft of our own thinking was wrong. It is the difference between being able to hire someone else next year and being stuck with us.
AI and MCP connectors We deploy NetSuite’s AI and MCP connectors in client accounts, including the custom role design that decides what an assistant can and cannot see. An AI connector sees exactly what its role permits — which makes role design a control decision rather than a technical one.
And knowing when not to build A request for custom development frequently turns out to be a module you are already paying for and have never switched on. We check that first. It is a shorter conversation and a smaller invoice, and it is why clients come back.
What that looked like
An approval that holds the order without freezing it. NetSuite’s SuiteApprovals locks the record once it is approved, so every correction afterwards means unwinding the approval to make it. We replaced the lifecycle on sales and purchase orders with a config-driven framework — six states, an approval portal, group-based approvers — that puts the control on the state instead of on a lock. The record stays editable. A material change to amount, quantity, item or price returns the order to re-approval needed, and fulfillment and receiving are gated against the state, so a held order cannot be shipped or received. Enabling it for a new subsidiary is a data change, not a code change. It ships with a developer guide and an architecture diagram.

Tracking the parts a repair gives back. Work orders reject negative component quantities, so NetSuite has no by-product model — the part a repair displaces simply vanished unless someone keyed a manual adjustment. We built a refurbishment lifecycle that posts it into a QC quarantine bin at quarantine status: visible, searchable, and out of available-to-promise until someone decides what happens to it. Average-cost basis, multi-subsidiary location resolution, and a double-entry guard across the whole return-authorization-to-work-order family.
Serial numbers outbound, without serialized inventory. Most companies asking for serialized inventory want to know which unit went to which customer — a much smaller problem than the one NetSuite’s serialization solves, and a much larger bill. We built capture at pick on handheld WMS devices, per-item format validation, sync through kits to invoice, and a closed return loop with blind-return handling and automatic reversal. No GL impact, no native serialized inventory.
A 3PL that could finally tell NetSuite. Shipment data pulled from a third-party warehouse by API, posted as item fulfillments, flowing straight through to invoicing — so goods stop shipping without the ledger knowing.
Where we usually get called in
- An approval that locks the record, so every correction means unwinding it first
- A process NetSuite has no model for — refurbishment, by-products, consignment
- Serial or lot tracking you need in one direction only
- A 3PL, marketplace or portal that has to exchange data with NetSuite
- A script the last consultant left with no documentation and no repository
- Something that worked until a release changed underneath it
- A report NetSuite will not produce, because the data is not on the form
- Someone wants to give an AI assistant access and nobody is sure what it would see
Common questions
Will we be able to maintain this without you? That is the point of how we hand over. Version-controlled, deployed through SDF, with developer notes and — on larger systems — an architecture diagram and a dated record of the decisions. We would rather you could leave and chose not to.
Can you take over someone else’s code? Yes, and often. The first step is usually working out what is actually deployed, which is not always what the documentation says. We will tell you honestly whether it is worth keeping or worth replacing.
What happens at the twice-yearly release? Customizations are where releases bite. We review what is coming against what you have deployed, test, and tell you what needs attention — before it breaks rather than after.
Do we need custom development, or are we missing a setting? Frequently the second. We check the native option first, every time, because the module you already own is cheaper than anything we could build and someone else will maintain it.
Can you work with our internal developer? Yes. We are often brought in for a specific system while an internal team handles the rest, and the handover documentation is what makes that work.
Is it safe to connect an AI assistant to NetSuite? It depends entirely on the role you give it, and that is a decision for whoever owns the data rather than for IT alone. We design that role as part of the deployment and tell you plainly which questions these tools answer reliably and which they do not.
How to start
The first hour is free. Bring the specific thing — the approval nobody can correct, the script nobody understands, the integration that keeps failing — and we will spend an hour on it with you, in your account. Written notes afterwards, whether or not you hire us.
Related reading: The NetSuite GL Impact screen is hiding your best columns · Closing the serial number gap in NetSuite WMS · NetSuite global search tips
