Business Rule Designer
|
|
- 1 Overview of Business Rule Designer
- 1.1 What are Business Rules?
- 1.2 Benefits of using Business Rules
- 1.3 Business Rule Configuration
- 1.3.1 Trigger
- 1.3.2 Condition
- 1.3.2.1 Grouping of Conditions
- 1.3.2.2 Operator
- 1.3.2.2.1 Operator Examples
- 1.3.3 Action
- 1.3.3.1 Value
- 1.3.3.2 Update Action Type
- 1.3.3.2.1 Override Values
- 1.3.4 Notifications
- 1.3.4.1 Out of the Box Notifications
- 1.3.4.2 Custom Notifications
- 1.3.4.3 E- Mail Notification
- 1.3.4.4 SMS Notification
- 1.3.5 API
- 2 Business Rule Designer Use Cases:
- 3 Difference between Business Rule Designer and Workflow Designer
- 4 Best Practices
- 5 Prerequisites
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.
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).
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 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:
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 |