How to Capture Rejection Reason Using NetSuite Workflow
We recently published a blog post on NetSuite Workflow Approval using Email. Due to popular demand, we will now discuss different ways to capture Rejection Reasons using NetSuite Workflows.
Below is an example of a traditional approval flow.
Unfortunately, the traditional method of handling rejections does not provide any details of the rejection reason. The rejected record simply returns to your queue, requiring you to research the rejection reason manually outside of the system. This results in unnecessary delays in the approval process.
Luckily, there are two ways to capture rejection reasons using custom workflows, custom records, and custom fields.
- Custom Suitelet
A “Reject” button is shown during the approval process which, when clicked, opens a custom Suitelet in a new browser window. The Suitelet presents the user with either a drop-down or text box to enter the rejection reason. This method requires implementation by a NetSuite developer.
- Custom Field
A custom field is displayed on the transaction record which allows the approver to provide a rejection reason. This method requires the approver to edit the record, which allows the potential for unwanted changes to the transaction during the approval process. We recommend the custom Suitelet option as it provides the best internal controls.
Our recommended approach
Joe Cadigan, our Technical Lead, designed a simple yet intuitive way to capture rejection reasons. His method utilizes NetSuite’s native workflow actions and custom records.
With this approach, a custom record stores the rejection with the following fields:
- Originating transaction
- Rejection reason
- Rejecting employee
When you click the “Reject” button, NetSuite’s native workflow “Go To Record” action navigates you to a ‘Custom Rejection’ record. The record requires that you provide an explanation for the rejection. Once saved, the original user is notified of the rejection via email and user dashboards. This option stores the rejection reason on the transaction history with an audit trail of the rejection reason and rejecting user. The auditors will love it!
Benefits of this approach:
- Minimum scripting is involved, requiring only a basic understanding of NetSuite workflows and custom records.
- Separate workflows should be used to generate email notification and redirection. This simplifies the workflow management.
- Each rejection is a new custom record entry. This allows additional reporting against rejections and a historical record of each rejection.
- Easy to implement!
What to keep in mind:
- Once the user lands on the rejection reason page an additional script is needed to block the user from navigating away and bypassing the entry of a rejection reason.
- Unfortunately, there isn’t anything we can do to stop the user from simply closing the browser window and never entering a rejection reason.
At Abaci, we have implemented many different versions of this method with great feedback from our customers. The ability to capture rejection reasons automates communication and improves response time. If you are interested in implementing rejection reasons or have a need for building out complex approval workflows, please feel free to contact us!