Building a multi-level PO approval workflow, in NetSuite - part 1
SuiteApprovals, SuiteFlows, and everything in between.
Objectives
In this guide, we’re going to:
Understand what a PO & PO approval are [you are here]
Successfully build a multi-level PO approval workflow in NetSuite using SuiteFlow
What is a Purchase Order?
Suppose we run a chairs company called Chairs Inc. We make chairs out of raw materials like wood, linen, plastic, and paint. Our company has to buy these materials on a frequent basis from suppliers like timber companies and paint companies. In fact, our ability to reliably procure these materials have a huge impact on our business: no wood, no chair.
A Purchase Order (PO) is a formal document issued by a chair company like ours (the buyer) to a supplier like a timber company (the seller). Here’s an example of one for Chairs Inc:
What is a PO approval flow?
Once our team at Chairs Inc decides it needs these raw materials, it puts together a PO internally. Before it ready’s to reach the supplier, it has to be approved. This is a standard oversight mechanism that can happen for a couple reasons:
Finance needs to confirm there’s sufficient budget
Manufacturing needs to confirm it’s the correct materials
Legal needs to vet service agreements / contracts
Different companies will have different considerations. For our company, let’s assume the following flow:
I’m a software engineer so I like to view things in code. Here’s the pseudocode for the above:
def approve_po(po)
if manufacturing_approves(po):
if po.amount > 1000:
if finance_approves(po):
if po.amount > 10000:
if leadership_approves(po):
po.set_status(approved)
else:
po.set_status(disapproved)
else:
po.set_status(approved)
else:
po.set_status(disapproved)
else:
po.set_status(approved)
else:
po.set_status(disapproved)
How do we build this in NetSuite?
There are three ways to natively build approval flows in NetSuite: SuiteApprovals, SuiteFlow, and SuiteScript. Let’s try using SuiteApprovals because it’s a no-code method that anyone can approach.
Next
Click here to go to part 2 of our tutorial.
If you’re interested in my NetSuite services (technical or functional), I currently have availability for 2025. Please message me on LinkedIn.