Approvals are used to authorize operations, process stages, and confirm decisions that require additional control by responsible users (also called approvers). Approvals are obligatory for normal and emergency changes, absences, vacations, etc. They help to minimize risks, keep high-level service, and conduct secure processes.

Example

In the out-of-the-box ITSM application, there is a predefined approval process for implementing a new request template. Before implementation, it should be approved by the service owner. The owner of the service is defined by the referenced record in the Service Category field.

After filling in the fields, an agent switches the state from New to Waiting for Approval.

The Approval Rules are the following:

  • the approval is created only when the request template state is Waiting for Approval
  • the request template will be rejected if one of the approvers rejects their ticket

The service owner will decide whether to implement the request template or return it for further improvement.

  • If the template is not approved, it goes to the New state and should be deleted or improved and sent to approval process once again.
  • If the template is approved, it goes to the Published state.

Conclusion:

The approval stage ensures the quality and secures the system from implementation of inappropriate elements. A request template will not be implemented until the service owner or all owners approve it.

You can implement approvals to any table according to your business processes. Approvals are automatically created according to an approval rule or within a workflow with the User-approval activity.

Approvals associate users or groups with a record to be approved or rejected. If users reject an approval, they need to give a reason in the comment.

When a new approval is assigned to a user, they will be notified via email. Refer to the Available Notifications article to learn more.

Refer to the My Approvals article to learn how to process approvals via the Self-Service Portal.

If you create a new custom table and set up approvals for it, you need to define the portal approval card appearance from scratch. As this table is new, the system does not have information about what fields it should display on the portal. See the Customizing portal and agent interface article to learn how to add fields to the portal approval card.

Approvals


To view the list of created approvals, navigate to Approvals → All Approvals.

In the table below, you will find description of approval form fields.

Approval form fields 

FieldMandatoryDescription
StateY

Approval state. Available choice options:

  • Requested
  • Approved
  • Rejected
  • Cancelled.
ApproverYUser responsible for approving the related record.
Approval TypeY

The approval type depending on the type of the participant. Available options:

  • Mandatory
  • Non-mandatory.

For more information, please refer to the Flexible Approvals article.

ItemN

Reference to the record for which the approval is created. Approver makes decision on this item.


SubjectN

Approval subject is copied from the Item subject if it has the corresponding field. Describes the approval item briefly.

DescriptionN

Approval description is copied from the Item description if it has the corresponding field. Edit approval description.

CommentsYA text field for storing comments regarding the approval.


Approval states


Generally, the approval state flow is as shown below: 

But the state flow may differ depending on the abortion rules. For example, if One of the tickets rejected abortion rule is specified, when one of the approvers rejects the ticket, the approval state will turn to the Cancelled state.

Other states may depend on issue types and their state models. For example, approvals for Change Request have another state flow defined by its workflow. On the approval stage, the change request will have the Authorization state. If the request is approved, it will pass to the Scheduled state; otherwise, it will return to Registered.

Approval tickets


In SimpleOne, once a record requiring authorization is submitted, the transition stage is initiated. For this, approval tickets are sent to all persons responsible for approval. In tickets, every recipient is proposed to approve or reject the request. An approver can also get information about an object of approval from the Summary and Activity Feed.

An approval ticket is a record in the Approval (sys_approval) table, which the system sends to every user responsible for approval: one ticket per user, that is, one approval may contain several approval tickets. It is the ticket you see on the My Approvals page. In other words, a user approves or rejects a ticket within one approval.

Approval sets 


Approval Set is a group of Approval (sys_approval) records created by the same approval rule for the same item. That is, these approvals share the same values in the Item field, same approval rules, and are included into one approval set. Approvals created by a workflow are not marked with set number.

Example:

An approval rule has the following abortion rule: one of the approval tickets is rejected. One of three approvers rejected their approval ticket. It is Approval Set 1, and after some required changes, approval was requested once again. This is Approval Set 2, and all three approvers received approval tickets. This process will repeat until the conditions are met (all users approve their tickets).


Creating approvals


Approvals cannot be created manually. They are created by the system when conditions defined in an approval rule or a workflow are met. That is, there are two ways to implement approvals into your processes:

  • via Approval Rules
  • via Workflow

Approval Rules 


Approval rule is a flexible instrument able to trigger on a predefined event. Once triggered, they send a set of approval tickets and process feedback (approves and rejects). Approval rules also can automatically create a set of approvers.

A diagram below illustrates the flow how an approval is created with an approval rule.


Role required: admin.

To define an approval rule, please complete the steps below:

  1. Navigate to Approvals → Approval Rules.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exit to apply changes.

Approval Rule form fields

FieldMandatoryDescription
NameNSpecify approval rule name.
TableYSpecify a table which will be processed by this approval rule (for example, Incident).
DescriptionNDescribe the approval rule in details.
Approve ConditionN

Approval rule start condition. When the conditions are met, the rule will send approval tickets.

Use non-dynamic and dynamic filter conditions (like is (dynamic) or is not (dynamic)) when composing conditional expressions with the Condition Builder to fit process requirements. You can create complex AND and OR filters, more than one in one approve condition.

An empty condition always returns 'true'.

ApproverY

A choice field specifying the category of users responsible for the request approving. Available choice options:

  • Users
  • Group
  • Script.
UsersNIf the Users option is selected in the Approver field, choose one or more users responsible for the approval process in this dictionary field.
GroupNIf the Group option is selected in the Approver field, choose the group responsible for the approval process in this dictionary field. All the group members will have approval tickets to process.
ScriptN

If the Script option is selected in the Approver field, enter the script extending your approval condition: define users who will receive approval tickets. You can use SimpleOne server-side API.

Example:

Script
(function approvalRuleScript(current) {
  if (current.assignment_group) {
    return current.assignment_group.getValue('responsible');
  }
})(current);

The approvalRuleScript() function will return data in one of the following formats:

  • return '156956878014585856';
  • return ['156956878014585856', '156956851511250859'];
  • return '156956878014585856,156956851511250859';

Approval Abortion Rule

Y

Specify the condition of the approval request reject. Available choice options:

  • More than half tickets rejected 
  • Set rejected tickets limit
  • All tickets rejected
  • One of the tickets rejected.
CountN

Specify a limit of the rejected tickets for the approval request reject.

The field appears if the Approval Abortion Rule field value is Set rejected tickets limit.

ActiveNSelect this checkbox to enable the approval rule.

The server-side business logic may not work for system tables if the creation or updating of records is initiated by the backend. For example, an Import Set is created as part of loading an Import Source, or an Email is created as a result of a notification rule, and so on.

A list of table examples for which server-side business logic may not work:

  • Main Log (sys_log)
  • Script Log (sys_log_script)
  • Exception Log (sys_log_exception)
  • Record Deletion Log (sys_record_deletion_log)
  • Import Set (sys_import_set)
  • Activity Feed Item (sys_activity_feed_item)
  • Email (sys_email)

Workflow


You can implement automatic creation of approvals using the User-approval activity in your workflow

In the example below, we have a simple process of approving new partner inclusion to a custom table. The flow begins when a new record is inserted into the Partner table. By default, new records are in the Pending state. To make the partner record relevant, their state must be confirmed by approvers. Here, the user-approval activity comes in handy. Before transferring the record to the Relevant state (the set values activity), all approvers must confirm that the new partner is relevant and can be transferred to the Relevant state. If one of the approvers rejects the approval, the state of this partner record will be Cancelled.

See the Workflow articles to learn more.

Please note that when you add approval via the Workflow, there will be no related records in the Approval Rule table. Editing of this approval creation conditions and other attributes will be available only through the relevant workflow.

Tracking approvals


If an approval is created for a particular record, it will be displayed in the Approval related list. Newly created custom tables may not have this tab. You can add it using the related lists configuration (Approval->Item). After that, related approval tickets will be displayed.

In our example case described above, a new record in the Partner table with the Pending state will have the Approval related list as this:

Refer to the Related Lists article to learn how to add the Approval tab to the Related Lists area.

  • No labels