Approval Automation
Automate your approval process for all employees without complicated NetSuite Workflows
Last updated
Was this helpful?
Automate your approval process for all employees without complicated NetSuite Workflows
Last updated
Was this helpful?
The Approval Automation feature is available as a NetSuite Bundle that can be downloaded and installed in your NetSuite environment after a license has been purchased.
Log into your NetSuite account with the Administrator role
Navigate to Customization > SuiteBundler > Search & Install Bundles
Search for the keyword 310718
Click on the bundle name (SQW Automate: Approval Automation)
Press Install
On the Preview Bundle Install screen, press Install Bundle
You will be redirected to a list of installed bundles in your account. Wait for the bundle to install. Once installed, you will see a green check mark in the status column.
Email Plugin In order to configure email-based approvals, the SquareWorks email plugin must be enabled in your NetSuite account prior to using Approval Workflow Automation:
Go to Customization > Plug-ins > Manage Plug-ins.
Check the box next to “AEA Email Capture” and press Save.
Store a copy of the email address below the “AEA Email Capture” label. This email address will be using when setting up Approval Settings.
Approval Routing
If adding approvals to Expense Reports, Purchase Orders, Vendor Bills, Vendor Payments, Vendor Prepayments, Time Bills, Invoices or Journal Entries, NetSuite should be configured to enable Approval Routing. Enabling Approval Routing will stop NetSuite from using basic native approval routing if it exists (e.g. on POs) and allows transactions to be non-posting before being fully approved.
Go to Setup > Accounting > Accounting Preferences > Approval Routing.
Check the applicable box(es) and press Save.
Note: If setting up check printing approvals or Electronic Payments Bundle is used, approval routing on Vendor Payments should not be enabled.
Approval Settings define global settings for Approval Workflow Automation. As an Administrator, go to Setup > Approval Workflow Automation > Approval Settings to view this page.
Email Capture Address: This is the email address that’s used to send all approve or reject email responses back to NetSuite. This field should be set to the email address found in the Email Plugin (see Prerequisites).
Send Emails From: Defines the employee whose email address should be used to send all approval emails.
Super Approver Roles: One or more roles who are allowed to act as super approvers.
Inbound Email End of Message Keyword: Keyword that designates the end of an email message. This is useful to strip out disclaimer messages that are often added by email servers – if not removed, the end up getting included in the comments from email approvers.
Disable Field Display Changes for Administrators: When enabled, AWA will not make changes to how fields are displayed on the form for Administrators (e.g. hiding the native Next Approver field)
Email Rejection Reason Required: When checked, the employees approving via email are required to provide a rejection email. If they don't they will receive a follow up email with an error that a rejection reason is required.
In the Record Type Settings tab, you will find all record types which have approvals enabled.
For each record type requiring approvals, at least one Approval Record Type Settings record must be created. You can view the Approval Record Type Settings created by going to Setup > Approval Workflow Automation > Approval Settings.
Prerequisite: If a record type will be sending approval emails, create an Email Template Preset before creating an Approval Record Type Settings record. Go to Setup > Approval Workflow Automation > Email Template Presets and create a new preset. The preset will auto-generate email templates in NetSuite and automate the section of the email templates when creating an Approval Record Type Settings record.
Approval Process Definition: This defines the Approval Process Definition to be used by default when submitting records of the specified record type for approval.
Subsidiaries: Optionally select one or more subsidiaries where these settings should be enabled. If a record type doesn't support subsidiaries, this field will be ignored. Selecting no subsidiaries is the same as selecting all subsidiaries.
Email Communication
The Email Communication tab controls various settings related to the sending of approval emails during the approval process. If no email communication is needed, all of the fields in this tab can remain empty.
Email Template Preset: Select a pre-defined set of email templates and record fields to use for this record type. Selecting a preset will automatically set email templates and record fields below.
Include Approval History In Email Templates: When enabled, an approval history table will be added to all emails sent out during the approval process. If a {{SW_AEA_APPROVAL_HISTORY}} placeholder is found in the email template body, the table will replace the placeholder. Otherwise, the approval history table will be added to the end of the email body.
Approval Request Email Template: Select the email template to use when sending approval request emails. This will be pre-defined when using an Email Template Preset. If not defined, approval request emails will not be sent.
Send Follow Up Emails: If the email recipient has not approved or rejected, send follow-up notification emails.
Follow Up Interval: Number of hours/days/weeks to wait between notifying recipients to approve or reject. Note: emails are not sent on weekends.
Follow Up Period: The period used for sending notification emails. Notifications are not sent during weekends.
Maximum Follow Up Attempts: Number of follow-up attempts not including the initial email. Leave blank for indefinite.
Follow Up Email Message Subject Prefix: Email subject prefix used for follow-up notification emails. Leave blank to use the same email subject as the initial notification.
Follow Up Email Message Alert: Text to show in an alert box at the top of the follow-up email. Leave blank to not show the alert box.
Rejection Email Template: Select the email template to use when sending approval rejection emails. This will be pre-defined when using an Email Template Preset. If not defined, approval rejection emails will not be sent.
Email Submitter Rejection Email: Enable if you would like the employee who submitted a record for approval to receive rejection notifications via email.
Rejection Email Recipient Lookup: Optionally define a lookup (search column id) to lookup an employee to receive rejection notifications via email. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record.
Approved Email Template: Select the email template to use when sending fully approved emails (once the recording being approved as been fully approved). This will be pre-defined when using an Email Template Preset. If not defined, fully approved emails will not be sent.
Email Submitter Approved Email: Enable if you would like the employee who submitted a record for approval to receive fully approved notifications via email.
Approved Email Recipient Lookup: Optionally define a lookup (search column id) to lookup an employee to receive fully approved notifications via email. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record.
Approval Exception Email Template: Select the email template to use when sending approval exception emails. This will be pre-defined when using an Email Template Preset. If not defined, approval exception emails will not be sent. Approval exception emails are sent when there’s an unexpected error routing a record for approval. The employees receiving this email can log into NetSuite and retry routing the record for approval (assuming they have native NetSuite permissions to view the record in question).
Route Exception to Employees: Select the employees who will receive approval exception emails.
Route Exceptions to Role: Select the role to receive approval exception emails. This takes priority over the Route Exception to Employees setting above.
Notification Email Template: Select the email template to use when sending approval notification emails. This will be pre-defined when using an Email Template Preset. If not defined, approval notification emails will not be sent. This email template is only used when an Approval Process Step Definition has been configured to send notification emails.
Email Template Record Fields: Enter a comma separated list of body or line fields to include in the email (specify as field ids). These fields are typically shown at the bottom of the email to give details about the record being approved. These will be pre-defined when using an Email Template Preset. The formatted version of these fields will be appended to the end of the email template. If a {{SW_AEA_RECORD_DETAILS}} placeholder is found in email template body, the fields will replace the placeholder instead. Otherwise, the record details will be added to the end of the email body.
Custom Attachment Template: Optionally specify an Advanced PDF template file to render and show within or attach to email notifications. Use the Template Attachment Mode below to control how the rendered template is included. It’s preferred to use the Email Template Record Fields over this field.
Template Attachment Mode: Controls how the Custom Attachment Template is included in email communication. If included as Inline HTML, the {{SW_AEA_HTML_ATTACHMENT}} placeholder in email template bodies will be replaced with the rendered version of this template.
Custom Attachment Field Id: Optionally specify the field id (search column id) that references a body field (type: Document) on the recording being approved. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. If the field is defined, the referenced file will be attached to email communication. If the referenced file is more than 10MB, no file will be attached.
Attach All Files from Entity: When enabled, if associated to an entity (e.g. Customer, Vendor), all files that are attached the entity will be attached to email communication (limits: up to 10 files, up to 15mb combined and up to 10mb per file)
Record Locking
If you want to prevent users from editing a record during an approval process, configure the settings below. It’s recommended to always lock both while pending approval and after fully approved. This feature applies to historical records as well that weren’t approved via Approval Workflow Automation.
Lock Records Pending Approval: When enabled, users (except for the roles defined below) will be unable to press the Edit button on a record while it’s pending approval.
Edit Locked Submitted Records Roles: Enter the role(s) allowed to edit the record while pending approval. It’s recommended to set this to the Administrator role.
Lock Records Approved: When enabled, users (except for the roles defined below) will be unable to press the Edit button on a record once it has been fully approved.
Edit Locked Approved Records Roles: Enter the role(s) allowed to edit the record once it has been fully approved. It’s recommended to set this to the Administrator role.
Approval Resubmission
If a record isn’t fully locked for all roles during an approval process (see Record Locking settings above), you can configure approval resubmission. The settings below will monitor for changes to a transaction’s total (this only supports transactions with a total field). If the total of a transaction exceeds thresholds defined below, the transaction can be automatically placed in a non-approved state or automatically resubmitted for approval again.
Total Percent Threshold: Enter percent the record's total is allowed to change without requiring additional approval.
Total Amount Threshold: Enter amount the record's total is allowed to change without requiring additional approval.
Total Amount Currency: Enter the currency of the Total Amount Threshold. Record totals not in this currency will be converted using current exchange rates before checking the Total Amount Threshold.
Must Be Within Both Thresholds: When enabled, if the Total Percent Threshold OR Total Amount Threshold are exceeded, additional approval will be required.
Decreases Must Be Within Threshold: When enabled, decreases to the record's total will be evaluated against the thresholds defined.
Auto Resubmit: When resubmission is required, automatically resubmit for approval.
Any Change Requires Resubmission: When enabled, any edit to the record through the UI will require resubmission.
Exclude Administrators from Resubmission Logic: When enabled, changes by an Administrator will not trigger resubmission logic.
Permissions
Permissions can be used to control various features of Approval Workflow Automation at a role level.
Allow Cancel Approval: Controls if employees are allowed to cancel an approval process using the Cancel Approval button. This is enabled by default.
Allow Submit for Approval: Controls if employees are allowed to submit for approval using the Submit for Approval button. This is enabled by default.
Show Approval Comments Dialog: Controls if employees should see a comments dialog when approving via the NetSuite UI. This is enabled by default.
Advanced
There are advanced settings that can further control the approval process on the Advanced tab. These are not commonly used and are mostly used for supporting approvals on custom record types and record types that don’t support Approval Routing.
Custom Approval Status Field Id: Specify the field id to set with an approval status on the record being approved. This must reference a custom field (type: List/Record - AEA Approval Status).
Approval Action Field Id: Specify the field id that contains approval actions (type: Free-Form Text). This is a way for scripts or workflows to trigger this approval solution to take an action (e.g. Submit for Approval). If a record is updated and one of the following values are defined in this field, an action will be taken by Approval Workflow Automation. All of the actions below are handled asynchronously. There can be a delay between updating a record and an action being taken. Once the action has been queued to be handled, the original value stored in this specified field will be removed.
{“action”:”RESUBMIT”}
{“action”:”SUBMIT”}
{“action”:”CANCEL”}
{“action”:”APPROVE”}
{“action”:”REJECT”}
Hide Submit Button: Specify if the Submit button should not be shown.
Custom Total Field Id: Specify the field id on the record being approved that represents the transaction total. This is only needed when you need an Approval Hierarchy approval step to use a custom field to lookup the record’s total. This is not applicable to most records being approved and will default to “total”.
Current Approval Request Field Id: Specify the field to populate on the record being approved to reference the current approval request record. This must be a custom field (type: List/Record - AWA Approval Process Request). This is not applicable transactions since this is done automatically via custom hidden field (called AWA Current Approval Request, id: custbody_sw_awa_current_approval_req )
Approval Process Definition Lookup: Specify a field to lookup the Approval Process Definition to use when a record is submitted for approval. This must be a custom field (type: List/Record - AWA Approval Process Definition) and will override the Approval Process Definition defined on the Approval Record Type Settings. This is not commonly used, but is a way to control which approval process is used via a custom workflow or script.
Hide Step Order: When enabled, the Step Order will not be shown on the Approval History tab. Only the Step Name will be shown.
Enable Check Printing Approval: When enabled, payment approval for SquareWorks Check Printing will be used. SquareWorks Check Printing license required.
Inactivate Unapproved Records: When enabled, all records will be marked as inactive (if supported by NetSuite) if they are not fully approved.
Hold Payment for Unapproved Bills: When enabled, all Vendor Bills will be placed on payment hold if they are not fully approved.
Submit for Approval on Creation (All): When enabled, all records will be automatically submitted for approval when created.
Submit for Approval on Creation (Non-UI Only): When enabled, records will be automatically submitted for approval if they are not created through the UI.
Approval Process Definitions define one or more steps a record must go through to be fully approved. The Approval Record Type Settings (above) control which Approval Process Definition is used when a record is routed for approval. The steps will be followed in the order defined (1 is first). Once all steps have been completed, the record routed for approval will be considered fully approved. You can find a list of Approval Process Definitions by going to Setup > Approval Workflow Automation > Approval Process Definitions.
Associated to each Approval Process Definition are one or more Approval Process Step Definitions. Each Step Definition can be configured to control how approval routing functions and who is requested to approve.
Type: Defines the type of approval that will be used. Each type is outlined in the section below.
Name: Specify the name of the step. This name will appear in the Approval Step column on the record’s Approval History tab.
Step Order: This defines the order in which steps are evaluated (e.g. 1 goes first)
Description: This is for reporting purposes only and can be used to describe how the step has been configured.
Inactive: If you a make a step inactive, it will not be used when routing a record for approval
Approval Type Settings
These settings can vary between Approval Process Step Definition Types and are outlined Approval Process Step Definition Type section below.
Approval Coordination
If you would like to send the approval request emails to someone other than the identified approvers, approval coordinators can be configured for an approval step. This is not applicable for System or Hierarchy approval step types.
Approval Coordinators: Specify the employee(s) that will coordinate the approval for this approval step. By default, only the coordinator will be sent approval request emails, which they can forward internally to approvers.
Approval Coordinators Lookup: Specify the employee(s) that will coordinate the approval for this approval step (via a search column id). By default, only the coordinator will be sent approval request emails, which they can forward internally to approvers. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. When this field is used, the Approval Coordinators field above is ignored.
Advanced Settings
These advanced step settings are shared across approval types and are used to control how an approval process step functions.
Enabled Lookup: Enter the field (search column id) to lookup if this step should be enabled. If not enabled, the step will be skipped. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record.
Enabled Condition: Enter a Freemarker expression to evaluate if this step should be enabled (e.g. ${(record.total > 1000})). The expression must evaluate to yes, no, true, false, enabled, disabled, on, off, T, F, 1 or 0 (case insensitive, ignoring white space). This is the same syntax used in Advanced PDF templates. When defined, the Enabled Lookup field will be ignored. Below are some common conditions:
Description
Enabled Condition
Record’s total must be greater than $100,000
${(record.total > 100000)}
Record’s total must be greater than $100 and less than $1,000.
${(record.total > 100 && record.total < 1000)}
Vendor Bill is not associated to a PO
${!record.custbody_sw_awa_po?has_content}
Vendor Bill is associated to a PO
${record.custbody_sw_awa_po?has_content}
Record’s total must be greater than or equal to 1000 or a custom field on the record refers to a related record with internal id 367.
${(record.total >= 1000) || record.custbody_field_id.id == '367'}
If you need to create a condition based on the value stored on a related record, a custom field can be added (with store value disabled) to the record being approved. The custom field can source the value you want to use from the related record. Then, you can write an Enabled Condition by referencing the field id of the custom field.
You can validate your Enabled Condition formula using Enabled Condition Validator. You can find this by navigating to Setup > Approval Workflow Automation > Enabled Condition Validator or using the Validate Enabled Condition Button while editing the AWA Approval Process Step Definition record.
Exclude Approver if Already Approved: When enabled, any employee who has already approved in this or a prior approval step will be excluded from this step as an approver.
Exclude Approvers: Select one or more employees who should be excluded as approvers from this step.
Employees Allowed to Change Approver: Select one or more employees who are allowed to change the approvers on this step. Note: Super Approvers are always allowed to change approvers, regardless of the selected employees.
Custom Delegate Approver Field: Enter the field id to look at to determine the delegate approver (e.g. for handling out of office).
Custom Delegate Start Date Field. Enter the field id to look at to determine the delegate approver start date on the Employee record. If no field is specified, the included Delegate Approver Start Date field on the Employee record will be used.
Custom Delegate End Date Field. Enter the field id to look at to determine the delegate approver end date on the Employee record. If no field is specified, the included Delegate Approver End Date field on the Employee record will be used.
Enable Delegate Approval: When enabled, any employee requested to approve as part of this step can have their approval request delegated to another employee. Delegation will only occur if the approver's Employee record is updated to specify their delegate. If no value is specified, delegates will not be supported. When used in a hierarchy approval, the original approver's hierarchy will be followed if the delegate approves.
Approve Transaction After Step: When enabled, the transaction being approved will be marked as Approved (in the native Approval Status field) when this step is complete. This will impact the posting status of the transaction. This will not prevent additional approval steps from being required.
Prevent Approval if Period Not Open: When enabled, this step cannot be approved if the period corresponding to the Transaction Date is not open. The employee will be shown an error message if they attempt to approve via the UI. When approving via email, the employee will be sent an error message via email.
Prevent Approval if Variances Exist: When enabled, this step cannot be approved if SquareWorks 3-Way Match Add-On has detected variances. This setting is only applicable for approvals on Vendor Bills and Item Receipts. The employee will be shown an error message if they attempt to approve via the UI. When approving via email, the employee will be sent an error message via email.
Employee Hierarchy (Purchase)
Supports the use of NetSuite’s employee hierarchy to route approvals. This leverages the native Purchase Limit, Purchase Approval Limit, Purchase Approver and Supervisor fields on the Employee record. This approval type will mimic native approval routing that’s found on Purchase Orders.
Employee: Specify the employee that should be used to define the approval hierarchy.
Employee Lookup: Specify a field id (search column id) to lookup the employee to be used to define the approval hierarchy. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. When this field is used, the Employee field above is ignored.
Approver Search: This is an advanced way to lookup an approver via a Saved Search and is used in combination with the Approver Search Filter and Approver Filter Search. If specified, Employee and Employee Lookup are ignored.
Employee Must Approve: Specify if the identified employee (either via the Employee, Employee Lookup or Approver Search fields above) should be requested to approve prior to routing up their hierarchy.
Skip Step Based on Purchase Limit: When enabled, this step will be skipped if the first employee in the hierarchy has a purchase limit greater than or equal to the record's total.
Single Level Approval: When enabled, only one approval will be required for the hierarchy to be complete. Approval limits are ignored. As long as you don't have Employee Must Approve enabled, this functions the same as NetSuite's basic approval routing.
Missing Approval Limit is Exception: If an employee in an hierarchy is missing an approval limit, treat that as an exception instead of a $0 approval limit. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Missing Approver is Exception: If an approver is missing, treat that as an exception instead of skipping the approver. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Custom Limit Field: Enter the field id to look at to determine the limit (e.g. purchase limit). If no value is specified, the standard Purchase or Expense Limit fields will be used.
Custom Approval Limit Field: Enter the field id to look at to determine the approval limit (e.g. purchase approval limit). If no value is specified, the standard Purchase or Expense Approval Limit fields will be used.
Employee Hierarchy (Expense)
Supports the use of NetSuite’s employee hierarchy to route approvals. This leverages the native Expense Limit, Expense Approval Limit, Expense Approver and Supervisor fields on the Employee record. This approval type will mimic native approval routing that’s found on Expense Reports. All approval settings from the Employee Hierarchy (Purchase) type are included.
Employee
This type is used when you want to route to one or more employees for approval. The following settings are supported:
Employees: Specify the employee(s) that should be requested to approve.
Employee Lookup: Specify a field id (search column id) to lookup the employee(s) to be used. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. When this field is used, the Employees field above is ignored.
All Employees Must Approve: When enabled, all employees included in this step must approve before moving on to the next step.
Approver Search: This is an advanced way to lookup an approver via a Saved Search and is used in combination with the Approver Search Filter and Approver Filter Search. If specified, Employees and Employee Lookup are ignored.
Missing Approver is Exception: If an approver is missing, treat that as an exception instead of skipping the approver. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Send Notifications Only: When enabled, the employee(s) will be sent notification emails only. No approval will be required and the approval process will continue to the next step.
Exclude Submitter: When enabled, the employee who pressed the submit button will be excluded as an approver.
Role
This type is used when you want to route a role for approval. The following settings are supported:
Role: Specify the role that should be requested to approve.
Role Lookup: Specify a field id (search column id) to lookup the role to be used. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. When this field is used, the Role field above is ignored.
All Employees Must Approve: When enabled, all employees included in the role must approve before moving on to the next step.
Only Send Role Approvals To: Optionally select the employees who should receive approval emails, instead of having all members of a role receive an email. (Note: This has been deprecated in v1.5.0 and replaced with Approval Coordination functionality)
Approver Search: This is an advanced way to lookup an approver via a Saved Search and is used in combination with the Approver Search Filter and Approver Filter Search. If specified, Role and Role Lookup are ignored.
Missing Approver is Exception: If an approver is missing, treat that as an exception instead of skipping the approver. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Send Notifications Only: When enabled, the role will be sent notification emails only. No approval will be required and the approval process will continue to the next step.
Exclude Submitter: When enabled, the employee who pressed the submit button will be excluded as an approver.
Group
This type is used when you want to route to a group for approval. The following settings are supported:
Group: Specify the group that should be requested to approve.
Group Lookup: Specify a field id (search column id) to lookup the group to be used. Similar to a NetSuite saved search formula, join syntax can be used to join to a related record. When this field is used, the Group field above is ignored.
All Employees Must Approve: When enabled, all employees included in the group must approve before moving on to the next step.
Only Send Group Approvals To: Optionally select the employees who should receive approval emails, instead of having all members of a group receive an email. (Note: This has been deprecated in v1.5.0 and replaced with Approval Coordination functionality)
Missing Approver is Exception: If an approver is missing, treat that as an exception instead of skipping the approver. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Send Notifications Only: When enabled, the group will be sent notification emails only. No approval will be required and the approval process will continue to the next step.
Exclude Submitter: When enabled, the employee who pressed the submit button will be excluded as an approver.
Matrix
Supports the use of an Approval Matrix to lookup and route transactions for approval to specific Employees. This is used when approvers need to vary based on multiple segmentations (e.g. Subsidiary and Department). The following settings are supported:
Approval Matrix Definition: Specify the approval matrix definition to be used for this step. See details below.
All Employees Must Approve: When enabled, all employees found for each matrix level must approve before moving on to the next level in the matrix.
Missing Approver is Exception: If an approver is missing (meaning no approvers found at all in the matrix), treat that as an exception instead of skipping the step. The approval process will be canceled automatically (or if defined, route to a specific employee/role for exception review)
Send Notifications Only: When enabled, the employees from the first level of the matrix will be sent notification emails only. No approval will be required and the approval process will continue to the next step.
Exclude Submitter: When enabled, the employee who pressed the submit button will be excluded as an approver.
An Approval Matrix is defined as a custom record type in NetSuite. At a minimum the custom record type must contain fields for the following data:
Approver: This field must be a List/Record or Multiple Select field of type Employee. It should be used to specify the approver(s) for a row in the Approval Matrix.
Optionally, the custom record type can contain fields for the following data:
Level: This field must be an Integer field. Values should be 1 or greater. This field is used to specify order in which approvers are requested to approve (starting with 1).
Limit (Minimum): This field must be a Currency field. This field is used to define the minimum transaction total the approver is requested to approve. (e.g. an approver would not be requested to approve a transaction if its total is $100 and the limit (minimum) is set to $200.
Limit (Maximum): This field must be a Currency field. This field is used to define the maximum transaction total the approver is requested to approve. (e.g. an approver would not be requested to approve a transaction if its total is $100 and the limit (maximum) is set to $50.
In addition to the fields above, the custom record type can include any number of fields to represent approval segmentation. In the screenshot above, you can see fields for Subsidiary and Department have been defined (any fields are allowed). When populating these additional segmentation fields, the following applies:
An empty field value means “match if no other values match” (if the Empty Matrix Fields Match All setting is disabled). For example, in the screenshot above, a transaction being routed for approval with Subsidiary “Subsidiary A” and Department “Marketing” would use the row 3 in the matrix. However, a record being routed for approval with Subsidiary “Subsidiary A” and Department “Corporate Facilities” would use rows 1 and/or 2.
The order of the segmentation fields is important and will impact how approval matrix rows are defined and used. For example, if approvers vary between Subsidiaries but infrequently vary between Departments within a Subsidiary, Subsidiary should come first in the Approval Matrix and Department should come second. When configuring how the Approval Matrix is used, the order of the approval segmentation fields are defined using a Priority.
The record being routed for approval will require the same level of segmentation as the Approval Matrix. (e.g. in the screenshot above, a transaction being routed for approval would need fields for Subsidiary and Department in order to lookup the applicable rows in the Approval Matrix). The transaction can have these segmentations at either the body and/or line level.
When defining an Approval Step of type Matrix, you can select an Approval Matrix Definition. The Approval Matrix Definition defines the Approval Matrix to use, and how to lookup approvers based on custom segmentation:
Matrix Record: Specify the script id of the custom record type that represents your approval matrix
Matrix Approver Field: Specify the script id of the custom record’s approver field.
Matrix Level Field: Optionally specify the script id of the custom record’s limit field.
Matrix Limit (Minimum) Field: Optionally specify the script id of the custom record’s minimum limit field.
Matrix Limit (Maximum) Field: Optionally specify the script id of the custom record’s maximum limit field.
Is Line Level: Enable if you want to look at a transaction’s lines to lookup segmentation vs body fields.
Prioritize Field Comparisons Over Levels: When enabled, the field comparisons defined below will take priority over the level when looking up approvers. When disabled, matrix rows will first be filtered to the current applicable level before evaluating the field comparisons.
Empty Matrix Fields Match All: When enabled, empty fields on a matrix row match all values. When disabled, empty fields on a matrix row match all values not defined on other applicable matrix rows.
Within the Approval Matrix Definition, you can define how segmentation on the transaction maps to fields on the approval matrix.
Matrix Field: Specify the script id (or search formula if you enable Matrix Field is Formula) of the segmentation field on the custom record.
Comparison: Define the logic to compare the Matrix Field to the Record Field to lookup rows in the approval matrix.
Record Field: Specify the script id (or search formula if you enable Record Field is Formula) of the segmentation field on the transactions being routed for approval.
Data Type: Specify the data type of the segmentation field.
Priority: Specify the order in which the comparisons should be evaluated (1 is first).
System
The System type is used when you want to check if a condition is met before moving onto the next step of an approval process. If the condition is not met, NetSuite will check every 15 minutes until the condition is met.
Approved Condition: Enter a freemarker expression to evaluate if this step should be marked as approved (e.g. ${record.total > 1000}). The expression must evaluate to yes,no,true,false,enabled,disabled,on,off,T,F,1 or 0 (case insensitive, ignoring white space).
The Enabled Condition Validator can be used to help write and test enabled condition formulas. An administrator can use it by navigating to Setup > Approval Workflow Automation > Enabled Condition Validator or using the Validate Enabled Condition button while editing an Approval Process Step Definition record. When the Validate Enabled Condition button is used, the Record Type and Enabled Condition Formulas values will be prepopulated.
Record Type: Select the record type which the formula is validating against.
Record Internal Id: Select the internal id of the record which the formula is validating against.
Enabled Condition Formulas: Enter an enabled condition to evaluate.
Pressing the Validate button will evaluate the enabled condition formula against a record. The results will be displayed in the Validation section
Enabled Condition Result: The enabled condition will result in a “true” or “false” value. If an error occurs, the text will be displayed in this field.
Field Values: This sublist will show the field ids and field values referenced by the enabled condition formula. These values come directly from the record matching the Record Type/Record Internal Id, and are useful for testing the formula.
When I click on the approve or reject buttons in an approval email, my browser opens instead of an Outlook message. How do I resolve this in Windows 10?
On the Default apps screen, choose Outlook as the default Email app:
How do I add new fields (body or line fields) to the approval emails?
At the bottom of approval emails, you will typically see fields (highlighted below) from the record being approved. You can edit these fields by modifying Record Type Approval Settings.
As an Administrator, go to Setup > Approval Workflow Automation > Approval Settings.
Click Edit next to the Record Type you would like to modify.
Save the Record Type Settings.
Search your computer for “Default apps”:
Update the Email Template Record Fields field. This is comma separated list of field ids. The fields in the example below that start with “item.” and “expense.” are line-level fields.