---
sourceDocument: Brazil Build or modify applications
sourceDocumentLink: https://www.servicenow.com/docs/r/application-development

 Release :

    - brazil

ft:locale :

    - en-US

ft:publication_title :

    - Brazil Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Business rules and script includes

# Business rules and script includes {#ariaid-title1}

Release version: Brazil  
Updated September 10, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Business rules and script includes

Business Rules in ServiceNow are server-side scripts that execute during CRUD (Create, Read, Update, Delete) operations on records.
They allow developers to automate processes such as setting values, validating data, triggering notifications, and updating related records.
Script Includes are reusable server-side JavaScript functions or classes that can be called from Business Rules and other server scripts to centralize and modularize code.
Show full answer Show less  

## Key Features

* **Business Rules Types and Timing:**
  * **Before:** Runs synchronously before database operations to set or validate field values.
  * **After:** Runs synchronously after database operations to trigger events and update related records.
  * **Async:** Runs asynchronously after database operations for longer-running processes or bulk updates without delaying user actions.
  * **Display:** Runs when a form loads to make server data available to client scripts.
* **Best Practices for Business Rules:**
  * Keep Business Rules small and focused on specific tasks.
  * Avoid modifying out-of-the-box Business Rules to maintain system integrity.
  * Use conditions to control when Business Rules run, which improves performance and debugging.
  * Limit records processed by using queries in Business Rules.
  * Avoid client-callable Business Rules to enhance client script efficiency.
  * Do not use `current.update()` inside Business Rules to prevent recursion and duplicate operations.
* **Script Includes:**
  * Serve as centralized libraries for reusable server-side JavaScript functions and classes.
  * Enable calling common logic from multiple scripts like Business Rules, UI Actions, workflows, and Scripted REST APIs.
  * Facilitate easier testing and maintenance by isolating reusable code.

## Practical Application for ServiceNow Customers

By using Business Rules appropriately, customers can automate data processing and enforce business logic efficiently during record operations. Leveraging Script Includes to store reusable code reduces duplication, simplifies maintenance, and accelerates development. Adhering to the best practices provided helps prevent unintended side effects such as performance degradation, recursive loops, or duplicate notifications, ensuring a stable and efficient ServiceNow environment.  
Business rules are server-side actions that can be run during CRUD (Create, Read, Update, Delete) operations on instance records.  
Note:  
Consider creating applications with help from agentic AI. For more information, see [Build applications with AI](https://www.servicenow.com/docs/yPoti5Lr780JDyylEDlZtQ "Build and edit applications with agentic AI development tools available with AI Workflow Factory.").

Some good practices when using Business Rules are:

* Keep Business Rules small and specific.
* Avoid modifying base system Business Rules.
* Use Script Includes instead of global Business Rules.
* Use scripting only when necessary.
* Store reusable script logic in a script include.
* Use queries to limit records processed within a Business rule.
* Avoid client-callable Business Rules to improve efficiency when running client scripts.
* Always use a condition with Business Rules to control when the Business Rule runs. Running Business Rules with conditions can also aid in debugging. Business Rules rarely run with no conditions.

{#business-rules-and-script-includes__ul_ecz_vy2_5xb}

Business Rules can be configured to run before or after a database operation. They can also be configured to run asynchronously and also before displaying a form or executing a query.  
{#business-rules-and-script-includes__table_sp2_yy2_5xb__entry__4}

| Value | Runs | When to Use | Example |
|-|-|-|-|
| Before | Synchronously before the database operation | Set or update values on the current object as part of the save operation. Validate and abort execution if required. | A developer wants to set the state of the current record based on another input in that record. |
| After | Synchronously after the database operation | Trigger events and notifications after the database update to access the previous object or to make something occur in sequence. Update related records other than the base table being updated to access the previous object or to make something occur in sequence. | A developer wants to cascade values from the current record down to child records. |
| Async | Asynchronously executed as a separate process after the database operation is completed | The process triggered by the rule may take a while to run. When the user who triggered the operation does not need the output right away. Trigger events, notifications, or related record updates when access to the previous values of the record or a specific sequence of actions is not required. | A developer needs to trigger an external process that may take a while or update a large number of records. |
| Display | Executed every time the corresponding form is displayed | Used to make server-side objects available to client-side scripts. | A developer wants to write information about a user associated with the current record to the g_scratchpad object to use in a client-side script. |
[ ]

{#business-rules-and-script-includes__table_sp2_yy2_5xb}  
Note:  
current.update()should not be used in any Business Rules. Using current.update()triggers an additional database operation, which could cause duplicate notifications, recursive loops, etc.

Use Script Includes to store JavaScript functions and classes for use by server scripts. Each Script Include defines either an object class or a function that can be reused among any server-side scripts. For more information, see [Script includes](https://www.servicenow.com/docs/access?context=c_ScriptIncludes&version=brazil&pubname=brazil-api-reference&ft:locale=en-US).

Store any code that might need to be used elsewhere in a Script Include. Call the Script Include from a Business Rule, UI Action, workflow script, Scripted REST API, etc. Instead of calling a Business Rule from a UI Action or a UI
Action from a Scripted REST API, put the code in a Script Include and call the Script Include from both places.

Keeping functions in a Script Include allows testing of the function before deploying the function in other scripted areas, thus reducing overall development and testing time.

For more information, see [Classic Business rules](https://www.servicenow.com/docs/access?context=c_BusinessRules&version=brazil&pubname=brazil-api-reference&ft:locale=en-US).

