The above approach is how we did it. We have two custom fields to hold “statuses” that a sales order has to pass through (two different approval teams) before the built-in NetSuite “Approve” button appears. The WF checks to see if the current user is assigned as one of the required “approvers” for the current step in the approval process, if so, shows the appropriate button which that person can click to transition to the next state in the WF.