Business Rule Designer

Business Rule Designer

Scroll Export Button


Overview of Business Rule Designer

What are Business Rules?            

Technology has enabled us to automate mechanical tasks. Business Rules are server-side scripts that are specifically designed to seed intelligence into the system by providing certain conditions that, when met, trigger specific actions such as sending notifications and calling APIs. These rules are adaptable and can be customized to automate day-to-day tasks.

Business Rule Designer is an interface for creating and managing your Business Rules. It provides a platform for creating, editing, and manage your rules. The Business Rule Designer also includes a Rule Engine that helps you manage and execute business rules.

Figure: Bird’s Eye View of Business Rule Designer

To better comprehend how business rules can be used to get better results, let's look at a few examples.

Let's explore the following use cases.

S.No.

Use Case

User Persona: Analyst

Solution

1

William is an analyst who wants a new Incident to be auto assigned to the Server team when the Symptom contains the word ‘Server’ and the Priority is P1. 

This can be achieved by configuring a Business Rule that triggers automatically for a new Incident where Symptom contains the word ‘Server’ & Priority is P1, the Workgroup will be auto updated to Server Team.  

2

Sam is an analyst who wants to notify the head of Workgroup server team whenever there is an update to a ticket wherein the Category is ‘Server’ and Priority is ‘P1’. 

This can be achieved using a Business Rule to set up notifications to be triggered whenever there is an update to an Incident to change the Category to ‘Server’ and Priority to ‘P1’.

3

The analyst Sam wants to auto-resolve low-priority open incidents awaiting end user input as the Pending Reason that belong to the ‘End user Computing’ Workgroup.

This can be configured using a Business Rule to auto-resolve low-priority incidents that belong to ‘End user Computing’ Workgroup where Pending Reason is ‘awaiting end user input’ and Incident status is ‘Open’.

Benefits of using Business Rules

The effective management and automation of Business Rules provide several valuable benefits to organizations. The Business Rule Designer, has a super-intelligent Rule engine that can decrease costs, increase revenue, improve compliance, and provide better customer experiences.

Figure: Benefits of using Business Rules

Business Rule Configuration

A Business Rule is made up of three main components:

  • Trigger

  • Condition

  • Action

When you create a Business Rule, you must define the trigger, and then set the conditions.  The action is performed automatically when the trigger and the condition is met.

Figure: Business Rule Framework

Trigger

A trigger lets you define when the Business Rule should execute. A trigger can be defined on the creation and on updating of a task. A trigger can also be defined using After or Async Business Rules.

Trigger Type – Create and Update

When the user creates a Business Rule, the user has the option to create the Business Rule,

Create: When a user Configures a Business Rule with the Trigger type as On create, the rule will trigger immediately once the ticket is created.

Update: When a user Configures a Business Rule with the Trigger type as On Update, the rule will only be triggered when a user updates any fields or if the conditions are matched.  (In this case the Business Rule will not trigger on creation of a new Incident even if the condition is matched).

Create

Ryan is an end-user who creates an incident where the Tenant is ‘IT’, Symptom is ‘Laptop Not Working’, and the Description is ‘Issues in rebooting Laptop’. Once Ryan has created the incident, the Business Rule will automatically trigger.

Update

Ryan is an end-user who creates an incident where the Tenant is ‘IT’, Symptom is ‘Laptop Not Working’. In this case if when the incident gets assigned to an Analyst Maxwell. Once Maxwell updates the incident and the condition is matched, only then the Business Rule will trigger.


Figure: Example of a trigger On Create and On Update

Execution Mode

After and Async Business Rules

After: Use the After Business Rule when a field needs to be updated and displayed immediately after the user submits a record. The After Business Rule gets executed whenever the user submits a form and the data is saved in the database.

When selected, the After Business Rule will trigger once the Incident is created or updated. Also, the incident will be frozen, and no update will be allowed on the incident until the Business Rule is processed.

Async: The Async Business Rule is processed asynchronously and runs in the background. In the case of Async, the Incident will not be frozen, and the rule will run in the background. Running on background means that the user can proceed with other functionality and code will run on the background which will not impact the user while doing other transitions.

Async Business Rule is required when some tasks need to be performed in backend for updating some table data etc and the user need not know about. Async Business Rule runs in the background simultaneously with other processes.

When to Use After & Async? (Examples)

After - Scenario 1

The end-user Ryan logs an Incident where a Business Rule has been configured in After. The Rule automatically updates Category as ‘Laptop’ and Workgroup as ‘Hardware Team’ if the Symptom contains the word ‘Laptop’. When this is configured in After, the Business Rule auto-updates fields and the page will get frozen till the update is carried out as shown in the below infographic.


Figure: Example of Business Rule in After

Scenario 2

Maxwell an analyst, has created a Business Rule which triggers After creating an Incident to perform an action to update certain fields once the conditions are matched.

In this case the Business Rule executes immediately After we click submit. The Record gets frozen until the Business Rule execution is complete, and the Analyst/Caller will not be able to update the record until the record is unlocked.


Figure: illustration of After Business Rule

Async - Scenario 1

Fredrick an Analyst needs to update an Incident with a Business Rule Configured in After to Notify the Head of IT & Server Team when there is a P1 Incident for Server Category. In this case the page does not get frozen, and the recipients get notified in the background. 


Figure: Example of Business Rule in Async

Scenario 2

Maxwell has created a Business Rule which executes in Async when an Incident record is created or updated to perform an Action to Notify Recipients.

In this case, Business Rule executes in Sync with the record submission. The Record is not frozen in this case. Analyst/Caller will be able to update the record during the execution of Business Rule.

Figure: illustration of Async Business Rule

When NOT to use After/Async (Examples)

Incorrect use of After Business Rule

Scenario: Fredrick, an analyst wants to update 100 Incident records simultaneously using a Business Rule.

As this operation would generally take a longer duration to complete, an end user/customer would not want to wait until this operation gets completed.

Right

This task should Ideally be performed in Async Business Rule as we give the control to the user, but action is performed at the back end. This can be done for non-critical tasks such as for sending notifications and Calculating the SLA.

Wrong

If Fredrick has configured such a Business Rule in After, then the users must wait till updates on 100 records are completed before they can resume working on the record. Hence this is not an ideal use of this Rule. 

 

Incorrect use of Async Business Rule

Scenario: Fredrick wants to update the short description of an Incident using Business Rules.

Right

This task should Ideally be performed using After Business Rule. Hence if the users are trying to update the short description, the control will be taken away from the user and the action will be performed, post which the control will be transferred back to the user. This will help in avoiding multiple entries in the database and ensure that all the users are seeing the same short description at once.

Wrong

If Fredrick performs this Business Rule in Async, the changes will happen asynchronously on every user’s machine. So, while a user might have already updated the short description on their machine, it might appear differently on another user’s machine.

To know more about how to configure Triggers, refer Business Rule Configuration for IM.

Difference between After and Async Business Rule

Let’s have a look at the differences between After and Async Business Rules with some examples.

After Business Rule

Async Business Rule

Rules are executed synchronously.

Rules are executed asynchronously.

 

The After Business Rule is used when some fields need to be updated and displayed to the user immediately after user submits the record.

Async Business Rule is required when some tasks are to be performed in backend for updating some other table data etc and user need not know about that.

 

Freezes the record and restricts any changes to be performed.

Does not freeze the record and performs the actions in back-end.

Example:

1.       To update an assignment group or work group in an Incident.

2.       To update a short description of an Incident.

Example:

1. To create an event & send notification. User changes some field, based on that an event must be created, and notification sent to user.

2. To Calculate the SLA.3. For updating multiple records simultaneously, advised to use Async BR.

 

Use Business Rules with Caution

Business Rules are intended to address common actions. Compared to what a developer can do by using form scripts, Business Rules have their limitations.

As a word of Caution, creating redundant and too many Business Rules can have a performance impact on your application. Summit recommends having regular checks and consolidating redundant Business Rules into a single rule whenever possible. In addition, Business Rules that are not being used should be removed to avoid redundancy.

Having too many or redundant Business Rules can have a negative impact on the SummitAI application as the system will need to compute and address all the Business Rules that have been configured before performing any action. Hence it is advised to use Business Rules in an efficient manner to get the best outcome of using them in your organization.

Condition

A condition is made up of a field, an operator, and a value. You can formulate complex conditions for rules that include several conditions by utilizing logical operators such as AND or OR operators.

You can use the condition builder to determine when the Business Rule actions should be executed. When a request arrives, there are two options the user can select: 

  • Conditions based on criteria: Select this radio button to specify the conditions based on which the action would be executed.

  • No Condition: Select this radio button if there are no conditions.


Figure: Condition Builder

Grouping of Conditions

When there are multiple conditions which need to be computed together, these conditions can be grouped together in a Business Rule. This can be achieved by using the AND/OR conditions and by using the grouping functionality provided in the tool.

Here is an example scenario which shows how we can use Grouping of Conditions to achieve the best results:

Scenario: Fredrick wants to auto close low priority Incidents which belong to the End user computing workgroup.

Solution:

Trigger: Here the trigger will be configured in the Incident Module in Async mode, and the Trigger type will be Scheduled

Condition:

Status = Resolved

AND Priority = P4

AND Impact = Low

OR {{Workgroup = Computing} AND {Impact = High}}


Figure: Example of grouped conditions

If this condition is to be written from left to right in normal code, it would appear as shown below.

{Status = Resolved} AND {Priority = P4} AND {Impact = Low} OR ({Workgroup = Computing} AND Impact = High})

Business Rule follows BODMAS rule and processes the conditions in the Brackets (ON RIGHT) first and then left to right as shown below:


Figure: Business Rule Condition processing order

Once it has completed processing the conditions in the Brackets, then AND/OR conditions are processed. In this way we can have multiple conditions grouped to achieve the desired result. 

Action: The action will be to close the Incident if the above criteria is met. 

 

Fields

Based on the selected module, the fields related to the module are populated in the drop-down list from which you can select the required option. The supported Fields and Field types are as listed below:    

List of fields Supported:

Standard Attributes

Field_Name

Field_Key

Field_Type

Field_Data_Type

Notification_API_Key

Incident ID

INCIDENT_NO

number

integer

*INCIDENT_NO*

Major Incident

MAJOR_INCIDENT

checkbox

integer

*MAJOR_INCIDENT*

Source

SOURCE

dropdown

string

*SOURCE*

Scheduled Incidents

SCHEDULED_INCIDENTS

checkbox

string

*SCHEDULED_INCIDENTS*

Has Attachment

HAS_ATTACHMENT

checkbox

bool

*HAS_ATTACHMENT*

Response SLA Violation

RESPONSE_SLA_VIOLATION

checkbox

bool

*RESPONSE_SLA_VIOLATION*

Resolution SLA Violation

RESOLUTION_SLA_VIOLATION

checkbox

bool

*RESOLUTION_SLA_VIOLATION*

Response SLA

RESPONSE_SLA

singleselection

string

*RESPONSE_SLA*

Resolution SLA

RESOLUTION_SLA

singleselection

string

*RESOLUTION_SLA*

CSAT Rating

CSAT_RATING

number

float

*CSAT_RATING*

Manual Escalation

MANUAL_ESCALATION

checkbox

bool

*MANUAL_ESCALATION*

Manual Escalation Level

MANUAL_ESCALATION_LEVEL

dropdown

string

*MANUAL_ESCALATION_LEVEL*

Auto Escalation

AUTO_ESCALATION

checkbox

bool

*AUTO_ESCALATION*

Auto Escalation Level

AUTO_ESCALATION_LEVEL

dropdown

string

*AUTO_ESCALATION_LEVEL*

Previous Workgroup / Assigned Workgroup

PREVIOUS_WORKGROUP

dropdown

integer

*PREVIOUS_WORKGROUP*

Previous Analyst / Assigned To

PREVIOUS_ASSIGNED_TO

dropdown

integer

*PREVIOUS_ASSIGNED_TO*

Previous Status

PREVIOUS_STATUS

dropdown

string

*PREVIOUS_STATUS*

Previous Category

PREVIOUS_CATEGORY

treeview

integer

*PREVIOUS_CATEGORY*

Previous Classification

PREVIOUS_CLASSIFICATION

treeview

integer

*PREVIOUS_CLASSIFICATION*

Previous Impact

PREVIOUS_IMPACT

dropdown

integer

*PREVIOUS_IMPACT*

Previous Urgency

PREVIOUS_URGENCY

dropdown

integer

*PREVIOUS_URGENCY*

Previous Priority

PREVIOUS_PRIORITY

dropdown

integer

*PREVIOUS_PRIORITY*

Previous SLA Service Window

PREVIOUS_SLA_SERVICE_WINDOW

dropdown

integer

*PREVIOUS_SLA_SERVICE_WINDOW*

Previous Pending Reason

PREVIOUS_PENDING_REASON

dropdown

integer

*PREVIOUS_PENDING_REASON*

Previous Closure Code

PREVIOUS_CLOSURE_CODE

dropdown

integer

*PREVIOUS_CLOSURE_CODE*

Previous Resolution Code

PREVIOUS_RESOLUTION_CODE

dropdown

integer

*PREVIOUS_RESOLUTIONCODE*

Previous Closure Category

PREVIOUS_CLOSURE_CATEGORY

treeview

integer

*PREVIOUS_CLOSURE_CATEGORY*

Previous Major Incident

PREVIOUS_MAJOR_INCIDENT

checkbox

integer

*PREVIOUS_MAJOR_INCIDENT*

Previous Source

PREVIOUS_SOURCE

dropdown

string

*PREVIOUS_SOURCE*

Previous Scheduled Incidents

PREVIOUS_SCHEDULED_INCIDENTS