Business Rule Designer
- Enterprise IT
- Shilpa K (Deactivated)
- Mayuresh Balaji Kamble (Unlicensed)
- Enterprise IT (Unlicensed)
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 | checkbox | string | *PREVIOUS_SCHEDULED_INCIDENTS* |
Previous Medium | PREVIOUS_MEDIUM | dropdown | string | *PREVIOUS_MEDIUM* |
Previous Description | PREVIOUS_DESCRIPTION | textarea | string | *PREVIOUS_DESCRIPTION* |
Previous Solution | PREVIOUS_SOLUTION | textarea | string | *PREVIOUS_SOLUTION* |
Previous Symptom | PREVIOUS_SYMPTOM | text | string | *PREVIOUS_SYMPTOM* |
Previous Secondary Analyst | PREVIOUS_SECONDARY_ANALYST | dropdown | integer | *PREVIOUS_SECONDARY_ANALYST* |
Previous Sub Workgroup | PREVIOUS_SUB_WORKGROUP | dropdown | integer | *PREVIOUS_SUB_WORKGROUP* |
Date Attributes
Field_Name | Field_Key | Field_Type | Field_Data_Type | Notification_API_Key |
Log Time | LOG_TIME | date | date | *LOGTIME* |
Updated Time | UPDATED_TIME | date | date | *LAST_UPDATED* |
Closed Date | CLOSED_DATE | date | date | *CLOSED_DATE* |
Updated Since (in Days) | UPDATED_SINCE | number | integer | *UPDATED_SINCE* |
Pending For (in Days) | PENDING_FOR | number | integer | *PENDING_FOR* |
Resolution Deadline Time | RESOLUTION_DEADLINE | date | date | *RESOLUTION_DEADLINE* |
Resolution Time | RESOLUTION_TIME | date | date | *RESOLUTION_TIME* |
Response Deadline Time | RESPONSE_DEADLINE | date | date | *RESPONSE_DEADLINE* |
Response Time | RESPONSE_TIME | date | date | *RESPONSE_TIME* |
Scheduled Date Time | SCHEDULED_DATE_TIME | date | date | *SCHEDULEDATE* |
Target Completion Date | TARGET_COMPLETION_DATE | date | date | *TARGET_COMPLETION_DATE* |
Current Time | CURRENT_TIME | date | date | *CURRENT_TIME* |
Previous Log Time | PREVIOUS_LOG_TIME | date | date | *PREVIOUS_LOGTIME* |
Previous Updated Time | PREVIOUS_UPDATED_TIME | date | date | *PREVIOUS_LAST_UPDATED* |
Previous Resolution Deadline Time | PREVIOUS_RESOLUTION_DEADLINE | date | date | *PREVIOUS_RESOLUTION_DEADLINE* |
Previous Resolution Time | PREVIOUS_RESOLUTION_TIME | date | date | *PREVIOUS_RESOLUTION_TIME* |
Previous Response Deadline Time | PREVIOUS_RESPONSE_DEADLINE | date | date | *PREVIOUS_RESPONSE_DEADLINE* |
Previous Response Time | PREVIOUS_RESPONSE_TIME | date | date | *PREVIOUS_RESPONSE_TIME* |
Previous Scheduled Date Time | PREVIOUS_SCHEDULED_DATE_TIME | date | date | *PREVIOUS_SCHEDULEDATE* |
Previous Target Completion Date | PREVIOUS_TARGET_COMPLETION_DATE | date | date | *PREVIOUS_TARGET_COMPLETION_DATE* |
User Attributes
Field_Name | Field_Key | Field_Type | Field_Data_Type | Notification_API_Key |
Username/Caller | CALLER | user_search | integer | *CALLER* |
Logged By | LOGGED_BY | user_search | integer | *LOGGED_BY* |
User Type | USER_TYPE | dropdown | integer | *USER_TYPE* |
Customer | CUSTOMER | user_search | integer | *CUSTOMER* |
Location | LOCATION | user_search | integer | *LOCATION* |
Caller Location | CALLER_LOCATION | user_search | integer | *CALLER_LOCATION* |
Join Date | JOIN_DATE | date | integer | *JOIN_DATE* |
Time Zone | TIME_ZONE | dropdown | integer | *TIME_ZONE* |
User Designation | USER_DESIGNATION | dropdown | integer | *USER_DESIGNATION* |
Approval Required | USER_LEVEL | dropdown | integer | *USER_LEVEL* |
Previous Username/Caller | PREVIOUS_CALLER | user_search | integer | *PREVIOUS_CALLER* |
Previous User Type | PREVIOUS_USER_TYPE | dropdown | integer | *PREVIOUS_USER_TYPE* |
Previous Customer | PREVIOUS_CUSTOMER | user_search | integer | *PREVIOUS_CUSTOMER* |
Previous Location | PREVIOUS_LOCATION | user_search | integer | *PREVIOUS_LOCATION* |
Previous Caller Location | PREVIOUS_CALLER_LOCATION | user_search | integer | *PREVIOUS_CALLER_LOCATION* |
Operator
Based on the selected field value, the operators are displayed. Select the required operator from the drop-down list.
List of Operators Supported
Operator_Id | Operator Value |
1 | = |
2 | != |
3 | >= |
4 | <= |
5 | > |
6 | < |
7 | IN |
8 | NOT IN |
9 | Between |
10 | Contains |
11 | Today |
12 | Yesterday |
13 | Tomorrow |
14 | This Week |
15 | Last Week |
16 | Next Week |
17 | This Month |
18 | Last Month |
19 | Next Month |
20 | Last 3 Months |
21 | Last 6 Months |
22 | Last 9 Months |
23 | Last 12 Months |
24 | Last Quarter |
25 | Last Two Quarter |
26 | This Quarter |
27 | Next Quarter |
28 | Last year |
Operator Examples
When the Data Type is String.
In this example the Symptom is the field that is created in the Form Designer that is created using the Textbox control, hence the Operator field will show the options related to a Textbox. The user can select whether the Symptom Field Contains or Does Not Contain a particular String value.
Figure: Example for String
When the Data Type is Date.
When we select the Data Type as Log Time (which is a Date type), then the operators loaded will be related to the Date Field. The user can select any of the following values related to the Log Time as shown below:
Figure: Date Example
Figure: Log Time Operators Example.
When the user selects an Operator such as On or Before or Between, then the Value field loaded will be of table selection type which gives the user an option to select the Date from a table as shown below.
Figure: Date Table
Numeric Value
If the user has selected the Field as Pending for (in Days), then the user can enter any value in the Value field and the operators loaded will be as shown below:
Figure: Pending For (In days) example
When the Data Type is Textbox / Text Area:
Consider the example where the user has selected the Description field under the Conditions, then the Operators loaded will be related to the Textbox values.
Figure: Textbox Example
When Data Type is Numeric
The user can choose a Numeric Data type in the Field section, based on which the Operators will be loaded. For example, when the user selects a value for cost or price, then the operators loaded are as shown below:
Figure: Price Example
You can select other an operator such as Between to select the price between two different prices.
Figure: Between operator Example.
Similarly, the different operators that can be used are as shown below:
Figure: Cost Operator Example
Value
Based on the selected Field type and Operator the options are populated in the Value field.
The value field can be one of the following four types:
Date
Dropdown
Numeric
String
Examples
Date
When the Field is Log Time and the Operator is EQUAL TO, then the Value field will be of Date type since the field selected is of Date Type.
Similarly on selecting the different operators the Value field will subsequently change to accommodate the operator selected such as for Between and Is Empty etc. as shown in the below graphic.
Figure: Date Log Time example
Dropdown
When the Field selected is Priority then you will have the below four options (in infographic) as operators and the Value field displayed will be of Dropdown Type.
When IN / NOT IN is selected, the value field allows the selection of multiple values in the field such as ‘P1’, ‘P2’ etc.
Figure: Dropdown Examples
Numeric
When the Field selected is of Numeric type such as Cost then the Value field will be of Numeric type where the user can enter Numeric values as shown below:
Figure: Numeric Value Example
String
When the Field selected is of String type such as Description, then the Value field will be of String type.
Figure: String Value Example
To know more about how to configure conditions, refer Business Rule Configuration for IM.
Action
The Action is performed automatically once the condition is met. You can define Business Rules with only an action and no condition.
Business Rule Actions are a configurable way to:
Update fields
Send out Notifications.
Run APIs.
Note
A single action or a combination of actions can be executed using Actions.
Update Fields
As shown below, the first type of Action is to update the fields and the values which can be updated after the trigger and condition are set:
Figure: Example of action to Update Fields
List of supported Fields
Field_Name | Field_Key | Field_Type | Field_Data_Type | Notification_API_Key |
Workgroup / Assigned Workgroup | WORKGROUP | dropdown | integer | *WORKGROUP* |
Analyst / Assigned To | ASSIGNED_TO | dropdown | integer | *ASSIGNED_TO* |
Status | STATUS | dropdown | string | *STATUS* |
Category | CATEGORY | treeview | integer | *CATEGORY* |
Classification | CLASSIFICATION | treeview | integer | *CLASSIFICATION* |
Impact | IMPACT | dropdown | integer | *IMPACT* |
Urgency | URGENCY | dropdown | integer | *URGENCY* |
Priority | PRIORITY | dropdown | integer | *PRIORITY* |
SLA Service Window | SLA_SERVICE_WINDOW | dropdown | integer | *SLA_SERVICE_WINDOW* |
Pending Reason | PENDING_REASON | dropdown | integer | *PENDING_REASON* |
Closure Code | CLOSURE_CODE | dropdown | integer | *CLOSURE_CODE* |
Resolution Code | RESOLUTION_CODE | dropdown | integer | *RESOLUTIONCODE* |
Closure Category | CLOSURE_CATEGORY | treeview | integer | *CLOSURE_CATEGORY* |
Medium | MEDIUM | dropdown | string | *MEDIUM* |
Description | DESCRIPTION | textarea | string | *DESCRIPTION* |
Solution | SOLUTION | textarea | string | *SOLUTION* |
Symptom | SYMPTOM | text | string | *SYMPTOM* |
Secondary Analyst | SECONDARY_ANALYST | dropdown | integer | *SECONDARY_ANALYST* |
Sub Workgroup | SUB_WORKGROUP | dropdown | integer | *SUB_WORKGROUP* |
Scheduled Date Time | SCHEDULED_DATE_TIME | date | date | *SCHEDULEDATE* |
Target Completion Date | TARGET_COMPLETION_DATE | date | date | *TARGET_COMPLETION_DATE* |
Cancellation Remarks | CANCELLATION_REMARKS | textarea | string | *CANCELLATION_REMARKS* |
Response SLA Violation Reason | RESPONSE_SLA_REASON | text | string | *RESPONSE_SLA_REASON* |
Resolution SLA Violation Reason | RESOLUTION_SLA_REASON | text | string | *RESOLUTION_SLA_REASON* |
Incident Closing Mode | INCIDENT_CLOSING_MODE | dropdown | string | *INCIDENT_CLOSING_MODE* |
Auto Closing Days | AUTO_CLOSING_DAYS | number | string | *AUTO_CLOSING_DAYS* |
Note
Based on the module selected by the user, the relevant standard fields belonging to that module will appear in the Update Fields section.
To know more about how to configure Actions, refer How to Configure Actions.
Value
Based on the selected Field type the Values field gets auto populated.
Update Action Type
Update values first time: If selected, will update the fields only for the first time when the record is updated.
Example
S.No. | Use Case User Persona: Analyst | Solution |
1 | Sam wants to have a business rule that sets the category of an incident based on its description. Sam wants to update the category field on the incident record only for the first time when the incident is created. | Update values every time: If selected, will update the fields every time when the record is updated. |
Update values every time: If selected, will update the fields every time when the record is updated.
Example
S.No. | Use CaseUser Persona: Analyst | Solution |
1 | William wants to have a business rule that updates the status of an incident based on its progress. William wants to update the status field on the incident record every time a task related to the incident is completed. | This can be achieved in Business Rule Designer by creating a new rule and selecting the appropriate entity and trigger for the rule. In this case William can choose to trigger the rule Every time when a related task is updated or completed on an incident record. Next, William will need to add a condition to check the progress of the incident. For example, he might add a condition to check if all related tasks have been completed. If the condition is true, the status field on the incident record will be updated as desired. |
Note:
The Update Action Type field displayed only when the Trigger Type is selected as Update.
There are few mandatory fields based on status value selection. Based on the selected status value the following mandatory fields are displayed.
Override Values
If the Override Values = YES, then the values defined for the field in the Business Rule will override the values set for that field in the record.
If the Override Values = NO, then the values defined for the field in the Business Rule will be applied only if the value is not set (meaning empty) for that field in the record. As stated otherwise, if there is a value already available for a particular field in the record, then the Business Rule Value will not be applied.
Notifications
Under this tab, you can configure the notification templates for the business rule. You can create new notification template or use the existing notification template to send a notification to users.
Out of the Box Notifications
Out of the box notifications are notifications that are included in the default notification settings for a device or app. These notifications may include new messages, updates, or alerts.
Custom Notifications
Types of Recipients
Group | Members | Description |
By Caller Group |
|
|
By Analyst Group |
|
|
By Designation | Search and select the required Designations. | By selecting this option, you can search a recipient by searching with the Designation of the required user. |
By Workgroup | Search and select the required Workgroups. | By selecting this option, you can search a recipient by the required Workgroup. |
By User Type | Search and select the required User Types | You can search a user by the User Type such as a VIP User. |
By Customer | Search and select the required Customers. | You can select this option if you would like to search by and notify the Customer. |
Custom E-mail ID | Type in required e-mail id. | You can add the email id of the recipient manually using this option. |
You can configure the following notification types(mediums):
E-mail Notification
SMS Notification
Figure: Example of action to send SMS/Email Notifications
E- Mail Notification
Email notifications are a way to keep the recipients updated on the progress of your projects through emails. You can choose an email template and set rules to receive email notifications for events as shown in the below infographic.
Figure: Email Template Notification
To know more about how to create an Email notification, refer Business Rule Configuration for IM.
SMS Notification
You can also create SMS Notifications by selecting the SMS option under Medium.
To create an SMS notification, refer Business Rule Configuration for IM.
API
API stands for application programming interface. It is a set of protocols and tools that allow software to interact with other software. This can include anything from retrieving data to manipulating or controlling software.
The below infographic shows how the user can configure and run a new API once a particular trigger and condition are set.
Figure: Illustration of action to configure a new API
To know more about adding API, refer How to Add API.
Business Rule Designer Use Cases:
1. Send an email notification based on poor CSAT rating
Scenario: Ryan wants to send email notification to the Analyst & Incident Workgroup Owner working on the Incident based on poor CSAT rating.
Solution: Ryan can achieve this by configuring a Business Rule in the Incident module in Async mode. Here the Business Rule will be triggered based on the condition when the CSAT rating is equal to 1, as shown in the below Images.
Trigger:
- Module: Incident
- When: Async
- Trigger Type: Update
Figure: Example of Trigger configuration
Condition:
- CSAT Rating = 1
Figure: Example of Condition
Action:
- To send a SAD CSAT Notification Email to Analyst and Incident Workgroup Owner
Figure: Action to Send SAD CSAT Rating Notification
2. Call an API to create a ticket in Microsoft Vendor Portal
Scenario: Fredrick, an analyst wants to call an API to create a record in Microsoft Vendor Portal when there is any ticket for Microsoft Category.
Solution:
Trigger: Fredrick will update the trigger in Incident module in Async on Creation of an Incident.
Condition: The condition will be set to when the Category/Workgroup will be selected as ‘Microsoft’
Action: The action will be to call an API and create a record in Microsoft Vendor Portal when there is an Incident for Microsoft Apps Category as shown in the below Image.
Figure: Example of an API to create a ticket in Microsoft Vendor Portal
3. Auto Resolve Incidents which are not updated for more than 6 months using Scheduler based Business Rules
Scenario: Fredrick, an analyst wants to Auto-resolve Incidents which are pending and have not been updated for more than 6 months.
Figure: Scheduler Based Business Rules
Solution: Fredrick can achieve this task by creating a Business Rule in Async mode.
Trigger: Here the trigger will be set in Incident module in Async mode and Fredrick can schedule when the Business Rule should be executed. (E.g.: The Incidents to be resolved should be checked every Monday at 7:00 am. This can be achieved using the scheduler option)
Condition:
- Updated since (in Days) > = 180
- AND Status = Pending
- AND Pending Reason = User Response Awaited
Update Action:
- Status = Resolved
Figure: Action to update the fields
The Incidents which are pending and open for more than 6 months will be resolved with the below comments and Resolution Code:
Figure: Action to update the fields
4. Send Scheduled Notifications if the Incidents assigned to them are in Pending state and not updated since more than 5 days.
Scenario: Sam, an Incident Management lead wants to send scheduled notifications to analysts if the Incidents assigned to them are not updated since more than 5 days.
Figure: Scheduled Notifications for Incidents not updated since more than 5 days
Trigger: Here the trigger will be set in Incident module in Async mode and Sam can schedule when the notifications should be sent out to the analysts.
Condition:
- Status = Pending
- AND Pending For = 5 days
- AND Updated Since > 5 days
Figure: Example Condition
Action:
To send reminder notifications email to Analysts and Incident Workgroup if the Incidents assigned to them are pending & not updated for more than 5 days.
Figure: Example of action to send reminder notifications
5. Close the P1 Incidents manually when the workgroup is Security, Server, or Network
Scenario: Fredrick, an analyst wants to ensure that P1 Incidents are manually closed when the workgroup is either Security, Server, or Network.
Solution:
Trigger: Here the trigger will be set in Incident module in After mode and the Trigger Type should be On Update as the Business Rule should get triggered when the status is set to resolved along with the other conditions.
Condition:
- Priority = P1
- AND Status = Resolved
- AND Workgroup / Assigned Workgroup IN {Network Support L2 OR Security Team OR Server Support}
Action:
The Action would be to resolve the ticket and Update Fields as shown below:
Figure: Example of action to update the fields
Figure: example of action to update the fields
6. SLA Service Window Should be selected based on the CI but Priority should be based on the Urgency & Impact
Scenario: Sam, an analyst wants to make sure that while creating or updating an Incident, the Priority should be based on urgency and impact and the SLA window should be selected based on the CI.
Solution: Sam can configure the SLA Matrix by CI option to define the SLA Service Window based on CI. However, he must define the priority in this configuration because it is mandatory. But the requirement is that priority should not be based on CI, it should be based on Urgency & Impact.
Using Business Rule Designer, Sam can define the priority which is based on urgency and impact as shown below:
a. Create After/Async (Based on customer requirement) type on Create/Update trigger.
Figure: Trigger Type as Create/Update
b. Define the condition as Impact and Urgency as shown below:
Figure: Example Condition
c. Define the Actions in the update fields section and priority values as per the matrix.
Likewise, Sam will need to create the Business Rules as per the matrix that the customer wants to update priority with. (So basically, we can define the priority matrix configuration in Business Rule Designer to achieve these requirements.)
7. Send Auto Resolve notification after 2 days once the Incident has been resolved.
Scenario: Fredrick wants to send an automatic notification to end users to let them know that the Incident has been in resolved state for more than 2 days and will get auto closed.
Solution:
Trigger: Fredrick can configure this as a Business Rule on the Incident Module in Async mode. The trigger type will be Scheduled.
Condition:
Current Time ‘is more than’ ‘2’ Days 'After’ the “Resolution Time”.
AND Status = Resolved
Figure: Condition Example
Action: To send the auto resolve notification to caller after 2 days.
Figure: Action to Auto Resolve Notification After 2 days
8. Other Business Rule examples:
There are different workgroups – Tier 1, Tier 2, Tier 3, Lead Team, Accounting Team, Security Team, Database Team, Release Engineering Team
Tier 1 or Tier 2 team members navigate to ‘Log Incident for User’ screen > Update the details and set the Workgroup as Tier 3
Tier 3 team member (Analyst) updates a custom attribute (multi-valued dropdown) which has 3 values – Lead Approval, Accounting Approval, Security Approval
If Tier 3 selects all the 3 checkboxes in the above multi-valued dropdown, then first Workgroup should change to Lead Team. Below listed are all the permutations and combinations of Business Rules you can configure for such a scenario.
- BR 1:
- Condition:
- If Workgroup = Tier 3 & Approval Required = Lead, Accounting, Security
- Action:
- Set Workgroup = Lead
- Condition:
- BR 2:
- Condition:
- If Workgroup = Tier 3 & Approval Required = Accounting, Security
- Action:
- Set Workgroup = Accounting
- Condition:
- BR 3:
- Condition:
- If Workgroup = Tier 3 & Approval Required = Security
- Action:
- Set Workgroup = Security
- Condition:
- BR 4:
- Condition:
- If Workgroup = Lead & Lead Approval = Yes
- Action:
- Set Workgroup = Accounting
- Condition:
- BR 5:
- Condition:
- If Workgroup = Lead & Lead Approval = No
- Action:
- Set Workgroup = Tier 3
- Condition:
- BR 6:
- Condition:
- If Workgroup = Accounting & Accounting Approval = YesAction:
- Set Workgroup = Security
- Condition:
- BR 7:
- Condition:
- If Workgroup = Accounting & Accounting Approval = No
- Action:
- Set Workgroup = Tier 3
- Condition:
- BR 8:
- Condition:
- If Workgroup = Security & Security Approval = Yes & Change Type = Database
- Action:
- Set Workgroup = Database
- Condition:
- BR 9:
- Condition:
- If Workgroup = Security & Security Approval = Yes & Change Type = Code
- Action:
- Set Workgroup = Release Engineering Team
- Condition:
- BR 10:
- Condition:
- If Workgroup = Security & Security Approval = No
- Action:
- Set Workgroup = Tier 3
- Condition:
Difference between Business Rule Designer and Workflow Designer
Business Rule Designer and Workflow Designer are both used for automating certain tasks, however, there are some key differences which highlight the variation in which they can be used:
Business Rule Designer | Workflow Designer |
Uses rules for Triggering certain Actions based on Conditions. | Uses a workflow to automate specific processes which would otherwise be done manually. |
It is used to define and manage the Business Rules that control how a system works. | It is used to define and automate the steps that are needed to complete a task or process. |
Uses a rule engine. | Uses workflow based on if-else conditions. |
Actions are manually created when Business rule is created and execute when condition is matched. | Actions are performed by the Service Automation Scripts. |
There is no starting point for a Business Rule. User can create a Business rule for any activity such as Resolving an Incident, sending notification etc. | Workflow Design should have a starting point such as Incident, Service request, Work Order. |
Best Practices
The following Best Practices will enable your organization to get the most out of Business Rule Designer and produce the best outcomes.
Determine and outline business processes - Outlining the processes will help you identify which ones can be automated, resulting in a more effective system for handling routine procedures.
For example, if you routinely assign questions about one product to a certain queue, you can create a rule to automatically route those incidents to the queue. Or if opportunities aren’t followed up promptly, rules can escalate those opportunities after a certain amount of time.
Review this list of questions to trigger ideas for designing business rules that can increase efficiency in your organization:
How do you handle incoming customer questions?
What is the review process when answers are created?
What happens when incidents are reassigned to other agents?
How does management get involved when incidents remain unresolved?
What happens when sales opportunities are identified?
How are prospective customers contacted?
How do you identify target groups for promotions?
How can you group incoming customer questions and route them most effectively?
Create a rules flowchart - Using flowcharts to view and organise processes can help you choose how to apply business rules. Making a flowchart can assist you with:
Organize business processes.
Gain process consensus between management and staff.
Develop a blueprint for staff training.
Develop thorough testing methods with less backtracking.
Create an overview of the information management process.
Provide a future point of reference.
Create rules—You can write rules to automate business procedures once you have a basic understanding of how rules operate. To find the best strategies for automating routine processes, start by looking at the flowchart of the current processes.
Prioritize processes for applying rules—To make sure that rules function as you intend them to, you must take into account how states, functions, and rules are organised. Up until a rule transition to a function, a different state, or completely stops processing, all the rules in a state are processed sequentially.
Train staff— Your staff needs to be trained after you establish the rule bases. They should be acquainted with how your business conducts routine business operations. Staff members also need to understand how rules automate those processes and how their duties affect rule processing.
Evaluate the processes and rules as required—Once you begin automating processes with rules and gain experience with them, you can think about more effective and efficient ways to route and manage data. Re-examine your business procedures on a regular basis to look for ways to handle inquiries, responses, updates, and opportunities in a more efficient manner. Revaluate your organization's processes whenever they are modified. For instance, when new or existing staff accounts are added, routing rules should be updated.
Prerequisites
Rabbit MQ set up.
To set up Rabbit MQDownload Erlang version 23.0 for the respective operating system and install. Use the default options during the installation and complete the installation. (Link - https://www.erlang.org/downloads/23.0)
Set below environment variable under system variables
Variable name: ERLANG_HOMEVariable value: Path of erlang without bin
Add %ERLANG_HOME%\bin to the PATH environmental variable:
Variable name: PATHVariable value: %ERLANG_HOME%\bin
Download and install Rabbit MQ server 3.8.13 (Link - https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.14)
To install Rabbit MQ server 3.8.14, perform the following steps:Locate and double-click the rabbitmq-server-3.8.14.exe (It will usually be in your Downloads folder.)
A dialog box will appear. Click Yes. The Choose Components screen is displayed.
Figure: Choose ComponentsSelect components to install and click Next. The Choose Install Location screen is displayed.
Figure: Choose Install LocationSelect Destination Folder by clicking Browse and and click Install.
Figure: Installing
Figure: Installation CompleteClick Finish to complete the installation.
Make sure RabbitMQ is available in services and running.
Open the command prompt with admin privileges and navigate to the path where rabbitmq server is installed. Execute the below command to enable the management interface rabbitmq-plugins enable rabbitmq_management
Open a browser and access the management interface using the link, http://localhost:15672/
Login with credentials guest/guest
Troubleshooting Common Issues:Erlang home not set correctly
On executing rabbitmq-plugins enable rabbitmq_management command if Erlang home not set correctly error is encountered, then restart the server.
After server restarts, execute the same command again. The plugins will be installed.
Summit.BusinessRule.EventListenerService service installation
In case of first time upgrade to Tahoe and above versions, the below installation command needs to be executed.
Installation command for Business Rule Service
sc create "Summit.BusinessRule.EventListenerService" binPath= "<<InstallationDirectory>>\BusinessRuleEvent\Summit.BusinessRule.EventListenerService.exe" DisplayName= "Summit BusinessRule EventListener" start= auto sc start Summit.BusinessRule.EventListenerService Example: <<InstallationDirectory>> "E:\ToQA\v511\B013\01.Applications" So the binPath="E:\ToQA\v511\B013\01.Applications\BusinessRuleEvent\Summit.BusinessRule.EventListenerService.exe" sc create "Summit.BusinessRule.EventListenerService" binPath= "E:\ToQA\v511\B013\01.Applications\BusinessRuleEvent\Summit.BusinessRule.EventListenerService.exe" DisplayName= "Summit BusinessRule EventListener" start= auto
New Config keys are required to be added in web.config/app.config file
Config KeysThe below config keys are required to be added to the respective file for Business Rule Functionality.
Web.config of SummitWeb
<add key="BUSINESS_RULE_RABBITMQ_USERNAME" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PASSWORD" value="" /> <!--Comma Separated Hostname or IP Address--> <add key="BUSINESS_RULE_RABBITMQ_HOST" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PORT" value="5672" /> <!--Connection Timeout value in milli seconds--> <add key="BUSINESS_RULE_RABBITMQ_CONNECTION_TIMEOUT" value="1000" />
App.config of Summit.BusinessRule.EventListenerService
<add key="BUSINESS_RULE_RABBITMQ_USERNAME" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PASSWORD" value="" /> <!--Comma Separated Hostname or IP Address--> <add key="BUSINESS_RULE_RABBITMQ_HOST" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PORT" value="5672" /> <!--Connection Timeout value in milli seconds--> <add key="BUSINESS_RULE_RABBITMQ_CONNECTION_TIMEOUT" value="3000" /> <add key="BUSINESS_RULE_RABBITMQ_FETCH_COUNT" value="10" /> <add key="DEBUG_ENABLED" value="false" /> <add key="API_TIMEOUT" value="10000" /> <!--Email Processing Config Keys--> <add key="App:BaseURL" value="" /> <add key="Mail:From" value="" /> <add key="Mail:FromName" value="" /> <!--Orchestration Config Keys--> <add key="App:OrchestrationEnabled" value="true" /> <!--Orchestration connector in connection string--> <add name="RabbitConnector" connectionString="" /> <add name="SummitDB" connectionString="" />
ServerMonitor.exe.config
<add key="BUSINESS_RULE_RABBITMQ_USERNAME" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PASSWORD" value="" /> <!--Comma Separated Hostname or IP Address--> <add key="BUSINESS_RULE_RABBITMQ_HOST" value="" /> <add key="BUSINESS_RULE_RABBITMQ_PORT" value="5672" /> <!--Connection Timeout value in milli seconds--> <add key="BUSINESS_RULE_RABBITMQ_CONNECTION_TIMEOUT" value="1000" />
Note:
Data Migration across different Database Environment
If the data is migrated between DB environments, make sure that the value for Summit_BusinessRule_Identifier key in Summit_config table must be unique. The same value for Summit_BusinessRule_Identifier configuration key cannot be used across different DB environments.
Note:
If the queue connection is done successfully, it displays the message "Message queue connection check is successful."
If the queue connection is not done successfully, it displays the message "Message queue connection check has failed. Business rules will not be processed."
If the keys are not configured successfully, it displays the message "Message queue connection keys are not configured. Business rules will not be processed."
Confluence Cloud Migration Alert: Please refer to known issues you may encounter in Confluence Cloud: https://eitdocs.atlassian.net/wiki/x/wDGwAQ