Skip to main content

Approval Workflow

Guide to Purchase Contract approval routing, limits, and workflow customization.


Overview​

APPROVAL WORKFLOW PROCESS
═══════════════════════════════════════════════════════════════════

CREATE CONTRACT APPROVAL CHECK RESULT
─────────────── ────────────── ──────

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Employee │ │ Max Amount vs │ │ Approved │
│ Creates │────►│ Employee │────►│ OR │
│ Contract │ │ Purchase Limit │ │ Sent for │
└─────────────────┘ └─────────────────┘ │ Approval │
└─────────────────┘

If Max Amount > Employee Limit → Requires Approval
If Max Amount ≤ Employee Limit → Auto-Approved

Default Approval Workflow​

Purchase Contract Approval Workflow​

NetSuite includes a standard workflow: Purchase Contract Approval Workflow

STANDARD WORKFLOW STATES
───────────────────────────────────────────────────────────

┌─────────────┐
│ Entry │
└──────┬──────┘
│
▼
┌─────────────┐ Approval ┌─────────────┐
│ Check If │────► Required ───────►│ Pending │
│ Approval │ │ Approval │
│ Required │ └──────┬──────┘
└──────┬──────┘ │
│ │
│ No Approval Approved│ Rejected
│ Needed │
│ │
▼ ┌──────┴──────┐
┌─────────────┐ │ │
│ Approved │◄──────────────────────┤ Review │
└─────────────┘ └─────────────┘

Approval Limits​

Employee Purchase Limit​

EMPLOYEE LIMIT SETUP
───────────────────────────────────────────────────────────

Navigation: Lists > Employees > Employees > [Employee]

Purchasing Subtab:
┌────────────────────────────────────────────────────────┐
│ Purchase Limit: $50,000 │
│ │
│ This employee can: │
│ • Create contracts up to $50,000 without approval │
│ • Contracts > $50,000 require supervisor approval │
└────────────────────────────────────────────────────────┘

Supervisor/Approver Limit​

APPROVER LIMIT SETUP
───────────────────────────────────────────────────────────

Navigation: Lists > Employees > Employees > [Supervisor]

Purchasing Subtab:
┌────────────────────────────────────────────────────────┐
│ Purchase Approval Limit: $100,000 │
│ │
│ This approver can: │
│ • Approve contracts up to $100,000 │
│ • Contracts > $100,000 go to next level │
└────────────────────────────────────────────────────────┘

Approval Routing Logic​

APPROVAL ROUTING DECISION
───────────────────────────────────────────────────────────

Employee: John Smith
Purchase Limit: $50,000
Supervisor: Jane Doe

Supervisor: Jane Doe
Purchase Approval Limit: $100,000
Supervisor: CFO

Contract Max Amount: $75,000

Routing:
$75,000 > $50,000 (John's limit) → Needs approval
$75,000 < $100,000 (Jane's limit) → Jane can approve

Route: John → Jane (approved)

─────────────────────────────────────────────────────────────

Contract Max Amount: $150,000

Routing:
$150,000 > $50,000 (John's limit) → Needs approval
$150,000 > $100,000 (Jane's limit) → Jane can't approve
$150,000 < CFO's limit → CFO can approve

Route: John → Jane → CFO (approved)

Workflow States​

State Descriptions​

StateDescriptionActions Available
EntryInitial stateSystem evaluates
Pending ApprovalAwaiting approvalApprove, Reject, Reassign
ApprovedContract approvedCreate POs
RejectedContract rejectedEdit and resubmit

Approver Actions​

APPROVER VIEW
───────────────────────────────────────────────────────────

Pending Approval: Contract PC-00125

┌────────────────────────────────────────────────────────┐
│ Contract: PC-00125 │
│ Vendor: ABC Supply Inc. │
│ Max: $75,000 │
│ Requestor: John Smith │
│ │
│ Actions: │
│ [Approve] [Reject] [Reassign] │
│ │
│ Comments: │
│ [________________________________] │
└────────────────────────────────────────────────────────┘

Workflow Customization​

Accessing Workflow​

CUSTOMIZE APPROVAL WORKFLOW
───────────────────────────────────────────────────────────

Navigation: Customization > Workflow > Workflows
Search: Purchase Contract Approval

┌────────────────────────────────────────────────────────┐
│ Workflow: Purchase Contract Approval Workflow │
│ Record Type: Purchase Contract │
│ Status: Released │
│ │
│ [Edit] [Copy] [Deactivate] │
└────────────────────────────────────────────────────────┘

Recommendation: Copy workflow before customizing

Common Customizations​

CustomizationHow To
Add approver levelAdd new state and transition
Email notificationAdd Send Email action
Department-based routingAdd condition based on department
Amount thresholdModify condition formula
Parallel approvalCreate additional approval paths

Example: Email Notification​

ADD EMAIL NOTIFICATION
───────────────────────────────────────────────────────────

State: Pending Approval
Action: Send Email

Email Configuration:
┌────────────────────────────────────────────────────────┐
│ Action: Send Email │
│ Trigger: On Entry │
│ │
│ Recipient: Supervisor │
│ Subject: Contract Pending Approval: ${record.name} │
│ │
│ Body: │
│ Contract ${record.tranid} requires your approval. │
│ Vendor: ${record.entity} │
│ Amount: ${record.maximumamount} │
│ │
│ Click here to review: ${record.recordurl} │
└────────────────────────────────────────────────────────┘

Multi-Currency Limitation​

[!WARNING] The standard Purchase Contract Approval Workflow does not support the Multiple Currencies feature.

MULTI-CURRENCY LIMITATION
───────────────────────────────────────────────────────────

Issue:
Employee limit: $50,000 (USD)
Contract amount: €45,000 (EUR)

System compares: 45,000 vs 50,000
Result: No approval needed (incorrect!)

Actual USD value: €45,000 × 1.08 = $48,600

Resolution Options:
1. Use base currency amounts only
2. Custom workflow with currency conversion
3. Manual approval process for multi-currency

Approval Dashboard​

Pending Approvals Portlet​

PENDING APPROVALS VIEW
───────────────────────────────────────────────────────────

Navigation: Home > Pending Approvals Portlet
OR: Transactions > Purchases > Approve Purchase Contracts

┌────────────────────────────────────────────────────────────────┐
│ Pending Contract Approvals │
├────────────────────────────────────────────────────────────────┤
│ Contract Vendor Amount Requestor Date │
│ ──────── ────── ────── ───────── ──── │
│ PC-00125 ABC Supply $75,000 John Smith 01/15 │
│ PC-00126 XYZ Parts $120,000 Mary Jones 01/16 │
│ PC-00127 Global Co. $45,000 Bob Lee 01/17 │
└────────────────────────────────────────────────────────────────┘

Click to view and approve

Approval History​

Viewing Approval History​

CONTRACT APPROVAL HISTORY
───────────────────────────────────────────────────────────

Contract: PC-00125
System Notes Subtab:

┌────────────────────────────────────────────────────────────────┐
│ Date User Action │
│ ──── ──── ────── │
│ 01/15/26 John Smith Created (Pending Approval) │
│ 01/15/26 System Routed to Jane Doe │
│ 01/16/26 Jane Doe Approved │
│ 01/16/26 System Status changed to Approved │
└────────────────────────────────────────────────────────────────┘

Rejection Handling​

Reject and Revise​

REJECTION PROCESS
───────────────────────────────────────────────────────────

1. Approver rejects contract
┌────────────────────────────────────────────────────┐
│ Rejection Reason: │
│ [Amount exceeds budget. Reduce to $50,000.] │
│ │
│ [Confirm Reject] │
└────────────────────────────────────────────────────┘

2. Requestor notified (if email enabled)

3. Requestor edits contract
• Reduce maximum amount
• Modify terms

4. Resubmit for approval
• Enters approval workflow again

Best Practices​

Approval Configuration​

PracticeRecommendation
LimitsSet realistic employee limits
LevelsKeep approval chain short (2-3 levels)
NotificationsEnable email notifications
DelegationConfigure approval delegation
DocumentationRequire comments on rejection

Common Issues​

IssueCauseResolution
Contract stuck pendingApprover not assignedCheck supervisor setup
Wrong approverLimit not setSet approval limits
No notificationEmail action missingAdd to workflow
Can't resubmitWorkflow state issueCheck rejection transitions