How to Build an Approval Workflow in NetSuite SuiteFlow
A practical, step-by-step guide that turns the playbook into a real workflow — map the policy, create the workflow and trigger, lay out the states, add amount-based routing, wire the buttons and notifications, then roll out safely — with links to the official NetSuite documentation so you can verify everything for yourself.
Practical developer guide · Backed by the official NetSuite Help Center
This is the practical companion to our Approval Workflows in SuiteFlow guide. The main article explains why SuiteFlow is the right tool and how states, transitions, conditions, and actions fit together; this page is the plain checklist for actually building one. Work through the steps in order — map the policy first, roll out sandbox-first — and use the official NetSuite documentation link under every step to confirm the exact setting as you go.
Before you start — prerequisites
A sandbox: build and validate the whole workflow in a Sandbox or Release Preview account first — never in Production.
The SuiteFlow feature on: confirm SuiteFlow (Workflow) is enabled under Enable Features, and your role has the Workflow permission.
A written policy: have the approval thresholds, approvers, and notification rules agreed before you start clicking.
You can’t build a workflow you haven’t agreed. Write the policy down as a table before you create a single state — most failed workflows are unfinished policy, not bad clicks.
Plan: record type → thresholds → approvers → notify & lock rules
List each record type and sub-type in scope (e.g. Transaction → Purchase Order) and the amount bands that route differently.
Decide how each approver is determined — supervisor hierarchy, a specific role, a Next Approver field, or a formula.
Decide what happens on reject, who gets notified, and whether the record is locked while pending.
Create the workflow on the target record and decide when it should run. The trigger you choose determines whether the approval starts on create, on edit, or on submit.
Go to: Customization > Workflow > Workflows > New
Set the Record Type and Sub Type, and set Release Status to Testing so it runs only for you while you build.
Choose the initiation trigger — Event Based (On Create / On Update) or a Before/After Submit trigger — to match your policy.
Understand the trigger execution order so your setup runs before approvers see the form, not after.
Transitions are the arrows between states. Each can carry a condition — this is where amount-based routing lives. NetSuite fires the first transition whose condition is true, so order matters.
A note on accuracy: NetSuite menu paths, action names, and trigger options evolve between releases, and some behaviors differ by edition (for example, native approval routing availability and which records support it). Always confirm each setting against its official reference, and test the workflow in Sandbox before setting it to Released in Production.
Everything above builds a complete approval workflow with no code at all. What sits beyond point-and-click — dynamic approver lookups against a custom record, validation that spans several transactions, escalation timers, or a callout to an external system — is where a Workflow Action Script earns its place. The pattern stays the same: keep the policy in SuiteFlow and push the protocol detail into a small, tested script.
An approval workflow touches live financial controls, so build it in a Sandbox, walk every amount band and role, and confirm the audit trail before you set it to Released. For the full reasoning behind each decision — the state model, amount-based routing, and the locking strategy — read the companion guide.
Building an approval workflow?Our NetSuite engineers map your approval policy, build it in SuiteFlow with proper routing, notifications, and record locking, and roll out Sandbox-first — so nothing breaks at month-end.
Documentation links point to the official Oracle NetSuite Help Center (docs.oracle.com). Exact menu paths and feature names vary by NetSuite version and edition — confirm each step against the linked Help Center page and validate in Sandbox first.