Approvals

Overview

Approvals are a process whereby a transaction needs to be approved by a particular individual or individuals before the transaction can be transitioned from one state to another. For instance, a purchase order over a certain value may need approval from a manager before it can be firmed.  

An approval begins with a trigger, this is the action being taken. There can be a condition on the trigger so it is only fires if the condition is met.  

A series of actions then defines the workflow of the approval. This is generally sending notifications to individuals for them to action. 

Setup

Enable Notification Events

Navigate to Notification Events and click on “Add System Events”.
Tick all the Approval events and click “Save”.

Modify each Approval Notification Event and set Platform Enabled to “On” then Save.

The approval notification events will now be active and you can modify them if needed to make custom alterations.

Create Approval

Navigate to the Approvals module and click on “Add Approval”.

  • Trigger: when to check if an approval request is required. Each trigger can only be applied to one approval.
  • Condition: a dynamic Linq statement to determine if an approval request is required when the trigger is activated.
    • Example for Purchase Order Firm trigger:
      item_value_transaction > 1000
    • Example for Sales Order Firm trigger:
      sales_order_items.Any(soi => (soi.product_system.is_purchased || soi.product_system.is_manufactured) && soi.price_system < (soi.product_system.standard_material_cost * (1 + (0.15m * (soi.product_system.is_manufactured ? 2 : 1)))))


  • Ignore Security Roles: a comma separated list of any security roles that are exempt from needing an approval request.
  • Ignore Departments: a comma separated list of any departments that are exempt from needing an approval request.

Create Approval Action(s)

Navigate to the view screen of the approval you created and click “Add Action” on the Actions widget.

  • Type: there are 2 types of action, notification and approval.
    • Notification: sends a notification to the selected recipient.
    • Approval: starts the approval request process.
  • Send To Recipient Type: determines who will receive the notification / be the approver of an approval
  • Escalate To Recipient Type: for “Approval” type, determines which user the approval request will be escalated to if the request is not actioned within a set amount of attempts which is set on the reminders tab.
  • Body Text Tab: overwrite the default body text with a custom message.
  • Reminders Tab: only applies to “Approval” type actions and will be hidden for “Notification” type actions. Determines how often we will send reminders for an approval request and how many times we will remind.
    Once the reminder count has been reached, the approval request will be escalated to the escalate user. If this is not set then it will default to the manager if applicable.
    the escalate user will then receive the same number of reminders and if the reminder count is reached again then the approval request will fail.

When an Approval is triggered, the actions on it will run in order from top to bottom.
Actions can be re-ordered using the “Move Up” and “Move Down” actions.
Actions after an “Approval” type action will only run once the approval has completed.

An Approval is only considered valid if it has at least one action.

Viewing Pending Approvals

Approval transactions can be viewed from the following places depending on the user’s eligibility:

  • Manager Hub: shows approval requests that the user is the approver of on the Approvals tab > Action Required widget.
  • User Hub: shows approval requests that the user is the approver of and approvals the user initiated on the Approvals tab > Action Required and Awaiting Approval widgets respectively.
  • Approval Entity View Page: e.g. Purchase Order for an Approval with the “Purchase Order Firm” trigger. The Relations tab has an Approval History widget showing the approval transactions related to this record. The History tab also shows approval related activities that have happened for this record.

Process

Once an approval is setup and a user attempts to perform the trigger action for it then we check if the approval condition has been met and start an approval request if it has.

A Pending Approval record will be created against the entity record that triggered the request.
The triggering user will be notified that an approval request has been created and that the action they were attempting to run cannot be completed until the request has been approved.

The approver (determined buy the Approval setup) will be informed via notification that an approval has been requested for the record. They can click the “Approve” or “Reject” button on the notification to instantly complete the approval or click on the notification to go to the view page of the record in question to see further information and/or perform approval related actions on it.

Actions

The following actions can be run via notifications, from the view page of the record (e.g. Purchase Order) or from the Manager/User Hub Approval widgets provided the user is eligible:

  • Approve: approving the request will complete the triggering process that the initiator was trying to perform (e.g. Purchase Order Firm) that started the approval process and send them a notification to let them know the request has been approved.
  • Reject: returns the triggering record to its original state and notifies the initiator that the request has been rejected.
    A new approval request can be started on the record.
  • Cancel: ends the approval request and returns the record to its original state.
  • Delegate: select any user to take over as the approver. They will receive a notification and the reminder counter will be reset for this approval request.
  • Request Information: if the approver needs more information to make a decision then they can click this action to send a notification to the initiator asking for more information.
    When the initiator clicks on this notification they will be able to write a reply which will then be sent back to the approver as another notification. The approver can then Approve, Reply or View the record from this notification.
  • Provide Information: if the initiator wants to add any information to the approval request then they can click on this action to write a message and send it as a notification to the approver.

Eligibility

Actions can be run on an approval request depending on the user’s eligibility:

  • The approver or anyone in their management chain: Approve, Reject, Request Information, Delegate, Cancel
  • The initiator: Provide Information, Cancel
  • Admin: Cancel

Housekeeping

Once an approval request has finished (Approved/Rejected/Failed) it will be deleted by housekeeping after 90 days.
The activity records will remain against the entity record to show the history of the approval actions run against it.

Updated on April 3, 2025
Was this article helpful?

Related Articles