Customization vs. configuration with Creator Studio
Summarize
Summary of Customization vs. configuration with Creator Studio
This guide explains the differences between customizing and configuring ServiceNow applications, emphasizing best practices for maintaining platform integrity, supportability, and upgradeability. It highlights that while ServiceNow supports both customization and configuration, the approach you choose significantly affects ongoing support and future upgrades. The document also introduces App Engine developer tools like Creator Studio for creating new applications when customization is not appropriate.
Show less
What is Configuration
Configuration involves using ServiceNow's built-in tools to modify application behavior without altering the baseline code or flows. It includes:
- Adding tables, fields, and setting data types
- Modifying UI elements such as layouts and buttons
- Configuring Service Catalog portals
- Setting access controls and system property values
Configurations do not change the underlying installed code and can be reverted without impacting baseline functionality. However, any added code that does not modify baseline flows still requires ownership and maintenance by the customer.
What is Customization
Customization refers to changes that alter the baseline code or flows within ServiceNow. This includes:
- Writing scripts (client, server, business rules) that modify baseline logic
- Creating custom tables for specialized data
- Integrating with external systems via APIs and web services
- Developing custom widgets, portals, and workflows
Customizations require ongoing ownership by the customer and can complicate future upgrades since they must be manually reapplied or merged after platform updates.
What is Personalization
Personalization allows individual users to modify the application's look and feel for themselves without changing baseline code. Examples include selecting dark mode or adjusting visible table columns. Personalization does not affect support or upgrades.
Implications of Customizing ServiceNow Products
While ServiceNow embraces flexibility, excessive customizations can:
- Impact platform supportability since Customer Service and Support does not troubleshoot custom code
- Increase upgrade complexity and effort due to manual reapplication of customizations
- Potentially impair platform functionality and workflows
Customers are responsible for maintaining customizations, including addressing any issues arising from them. ServiceNow recommends maximizing configuration and only customizing when there is clear business value without alternatives.
Tools for Customization and Configuration
ServiceNow provides tools that can be used for either customization or configuration depending on their use:
- UI Policies: control visibility and attributes dynamically
- Business Rules: automate actions based on conditions
- UI Actions: add buttons and menu items with specific functions
- Client-side and Server-side Scripts: execute logic in browser or server
Whether these tools constitute customization or configuration depends on if they modify the baseline flows or code.
Alternatives to Customization
If customization is not ideal, customers can:
- Use configuration options instead
- Submit enhancement requests to ServiceNow for future releases
- Create new applications using App Engine developer products like Creator Studio, App Engine Studio, or ServiceNow Studio
When to Use App Engine Developer Products
Create new applications via App Engine tools when the requirement:
- Extends beyond the intended purpose of an existing application (e.g., adding a travel workflow to ITSM)
- Represents a novel use case not aligned with existing workflows
- Serves distinct user groups or business processes separate from out-of-the-box products
Guidelines for Customizing
- Prioritize configuration before customization
- Avoid copying objects; update existing ones where possible
- Add new fields rather than modifying existing ones ("add before edit")
- Use unique names to avoid conflicts with out-of-the-box objects
- Minimize field additions to optimize form performance
- Export and back up original records before customization
- Use scoped applications for new development
- Document all customizations with business justification and comments
- Create Automated Test Framework (ATF) tests for customizations
- Use HealthScan to identify unnecessary customizations
- Thoroughly test customizations including performance and unintended effects
Handling Customizations During Upgrades
Customizations generate sysupdatexml records stored in the Customer Updates table, which are skipped during automatic upgrades. Customers must manually review and reconcile these skipped changes via the Upgrade Monitor, deciding whether to retain, revert, or merge customizations with the new platform version.
ServiceNow Customer Support Stance
Support does not assist with issues caused by custom code because they cannot reproduce customer-specific logic or verify expected behavior. Customers are responsible for their customizations' maintenance and troubleshooting.
There are important differences between customizing and configuring ServiceNow applications. The ServiceNow platform is built to embrace customization and configuration but how you do so can have significant impacts on ServiceNow support, upgrading to future ServiceNow platform versions, and the functionality of the ServiceNow platform.
- Customize an application only if it extends the original intent of the application. For example, add IT functionality to ITSM but don’t add a travel workflow. Instead of over-customizing an application, create a new application using App Engine products, such as Creator Studio or ServiceNow Studio.
- Configure as much as you can before customizing an application.
- If you add code or make other modifications to out-of-the-box functionality, you own them.
What is configuration
Configuration is the process of using ServiceNow built-in tools and features to modify an application’s behavior without making changes to flows or the code that is part of the baseline installation on a ServiceNow instance.
Configuration can take the form of using ServiceNow built-in tools to add tables and more, setting instance-wide parameters, as well as using code to extend an application’s functionality to meet business needs as long as the code does not modify the baseline code installation. The entire platform is designed for you to add configuration code.
If you add code, such as workflow scripts, you own it, even if it doesn’t alter the baseline code installation. That includes owning the impact it has on the entire ServiceNow platform. Issues that arise from added code are beyond the scope of ServiceNow support to debug.
Reverting a configuration should not require any change to the baseline code.
- Forms: Configure tables, fields, data types, default values, and field dependencies to configure the data you capture and display.
- UI elements: Modify layouts, add related lists, add buttons, and change field names.
- Service Catalog: Configure portals where your customers can request catalog items such as service and product offerings.
- ACLs: Restrict unauthorized users from accessing forms and data.
- System property values: Modify the application’s experience for all users.
What is customization
Customization is any change made to the flows or the code that is part of the baseline installation on a ServiceNow instance. You use ServiceNow products or code to customize applications.
If you add code, you own it, even if it doesn’t alter the baseline installation. That includes owning the impact it has on the entire ServiceNow platform.
- Scripting: Customize ServiceNow through scripting using JavaScript. This includes creating client scripts, server-side scripts, and business rules with intricate logic that modify the baseline code.
- Custom tables: Develop custom tables to accommodate specialized data that doesn't fit within standard tables.
- Integration: Customize integration with external systems, such as APIs and web services, for seamless data exchange.
- Widgets and portals: Create custom widgets and portals to provide unique features and user experiences.
- Workflows: Create and modify workflows using Workflow Studio. Create and manage playbooks, flows, actions, decision tables, and integrations from one design environment to automate tasks. Upgrading to a new version of a flow requires reapplying your customizations.
Tools for customization and configuration
ServiceNow offers many tools and features, such as business rules, to modify the out-of-the-box behavior of ServiceNow applications. Whether they customize or configure an application depends on how they’re used. Using these tools to modify the installed code base constitutes customization. Using these tools to add code that does not modify the flows, or the installed code base constitutes configuration. In both cases, you own the code you add as well as the impact it has on the ServiceNow platform.
- UI Policies: Dynamically modify the visibility of fields and attributes on a form according to user inputs.
- Business rules: Automatically trigger actions based on specified conditions.
- UI Actions: Extend and customize forms and lists by adding buttons, context menu items, or other UI elements that perform specific actions when clicked.
- Client-side scripts: Scripts that execute within the user's browser when certain actions occur on a form or a UI page.
- Server-side scripts: Scripts that execute on the ServiceNow server or database, for example, to update record fields when a database query runs.
What is personalization
Personalization is when users use out-of-the-box application tools to modify an application’s look and feel only for themselves. Admins can change the look and feel for all users and that is considered configuration. Personalization examples include a user choosing to use dark mode or choosing which table columns to display.
Personalization does not change the baseline code installation on a ServiceNow instance. So, personalization does not impact customer support or interfere with upgrades to new ServiceNow versions.
Ramifications of customizing ServiceNow products
The ServiceNow platform is extremely flexible and built to embrace customization and configuration to fulfill a wide range of business requirements. How you customize ServiceNow applications, however, can have significant impacts on ServiceNow support, upgrading to future ServiceNow platform versions, and the functionality of the platform. Instead of customizing ServiceNow applications, consider using App Engine development products, such as App Engine Studio, Creator Studio, and ServiceNow Studio to create new applications.
The ServiceNow platform uses a framework that supports applications in how they process tasks, how forms are rendered in multiple browsers, and the overall user experience. ServiceNow relies on the framework's integrity to develop and provide support in a consistent manner. Customizations can impair this framework, change platform functionality, and impair workflows and upgradeability.
For more information, see the Customer Updates table. Note that the complexity of maintaining customizations dramatically increases as the number of customizations increases.
Customizing the installed code base can be costly, generate technical debt, lengthen your upgrade cycle, and complicate future platform upgrades because the custom code may not easily migrate to new platform versions. Custom code can change the standard functionality of the ServiceNow platform in unintended ways. Evaluate demands for customization carefully and only resort to customization where there is clear business value and no alternative. Wherever possible, avoid customization by using configuration instead.
- You are responsible for maintaining the customization going forward.
- Customer Service and Support will not support problems caused by custom code. If it is the cause of the problems, the support team will likely advise you to revert to the out-of-the-box code.
What is the Customer Service and Support stance on supporting customization
The ServiceNow Customer Service and Support stance on customization is if you add code, you own it and its consequences. Why? Customer Support is not privy to your custom business logic, doesn’t know what the expected behavior should be, is unable to reproduce the issue on an out-of-the-box instance, and customer support engineers are not certified implementation specialists, so they are not certified to review customized code logic.
Alternatives to customization
- Use configuration instead of customization.
- Submit an Enhancement Request to the ServiceNow development team. Each request is evaluated and, if approved, will be incorporated into a future release.
- Create an app using App Engine developer products to handle desired functionality.
When to use App Engine developer products instead of customizing
- If the customization extends the intended purpose of the application, it works better to customize. For example, you can add IT functionality to ITSM.
- If the customization doesn’t extend the intended purpose of the application, it works better to create a new application using App Engine developer products. For example, do not repurpose the ITSM workflow to create a travel request workflow.
For example, ITSM is designed to handle IT issues. To customize it to handle travel requests goes beyond the original intention of ITSM. Because IT and travel requests have different workflows, it’s better to create a travel request app using App Engine developer tools, such as App Engine Studio, Creator Studio, and ServiceNow Studio, instead of customizing ITSM.
For more information, see Creator Studio.
Examples of when to use App Engine developer products
ServiceNow products work best when they’re used as they were intended. If you find yourself heavily customizing an application to repurpose it, a better plan is to create a new application using App Engine developer products.
- You have a novel use case for an app that doesn’t align with any product workflow.
- You have a use case that could be built by heavily customizing an out-of-the-box application, but it doesn’t align with what the existing application was intended to do.
- Your company has a user group or business process that should be separate from the OOTB product workflow.
Guidelines for customizing ServiceNow products
- Maximize configuration options first.
- Avoid copying objects. Instead, update objects in place wherever possible, except for Service Portal widgets and other items designated to be reused.
- Default to “add before edit.” This means that you should, for example, add fields to forms rather than change the type of an existing field. Avoid using the same names as out-of-the-box objects, methods, or classes when adding them.
- Minimize the number of fields you add to a form. The more fields you have on a form, the longer it may take to load.
- Export original records as backups before customizing them. Keep track of their out-of-the-box sys_id’s in case you must restore them in the future.
- Use scoped applications as your default for any new custom development.
- Document all customizations. Add comments explaining why you customized (including business justification). Review all comments before upgrading to determine if you can revert to out-of-the-box code.
- Create tests for all customizations. Write Automated Test Framework (ATF) tests for all customizations where possible.
- Use HealthScan regularly to identify unnecessary customizations.
- Customizations should be made to baseline objects where necessary so that conflict resolution and decision-making can be appropriately recorded in the updates. Hidden customizations may cause administrators to overlook updates in future assessments in case reverts or merges are necessary.
- Test your customization for all use cases. Include performance testing and the introduction of unintended consequences.
- Administrators are responsible for verifying that their customizations work after a ServiceNow platform upgrade, and for keeping track of what customizations are made.
Handling customizations when you upgrade
Customizations trigger the platform to create sys_update_xml records, which are stored in the Customer Updates table. These records are not updated during platform version upgrades. ServiceNow marks them as skipped records in the ServiceNow Upgrade Monitor. To make sure they’re successfully ported to the upgraded instance, you must manually process the skipped changes. For more information, see the Customer Updates table.
- Retain each customization
- Revert to out-of-the-box
- Merge your customization with the base system to resolve conflicts