Application Menus and Modules
In ServiceNow, Application Menus and Modules are fundamental components used to organize and navigate applications within the platform. They form the navigational structure that users interact with in the Application Navigator (left sidebar). **Application Menus** serve as the top-level containers… In ServiceNow, Application Menus and Modules are fundamental components used to organize and navigate applications within the platform. They form the navigational structure that users interact with in the Application Navigator (left sidebar). **Application Menus** serve as the top-level containers or categories in the navigation pane. They represent the main application grouping and act as parent entries under which related modules are organized. When you create a new application in ServiceNow, an application menu is typically generated automatically. Key properties of an application menu include its title, order (which determines its position in the navigator), roles required to view it, and its active status. Application menus can be customized to control visibility based on user roles, ensuring that only authorized users can access specific applications. **Modules** are the individual navigation items nested beneath application menus. They function as links that direct users to specific pages, lists, records, or content within the platform. Modules can point to various types of content, including list views of tables, filtered record lists, URLs, content pages, scripts, homepages, and more. Each module has properties such as its title, order within the menu, link type, roles required for access, and optional filter conditions. When designing an application, developers configure application menus and modules through the **Application Navigator** or via **Studio**. You can create modules by navigating to System Definition > Modules and specifying the link type and target content. Key considerations when designing menus and modules include: - **Role-based access**: Assign appropriate roles to restrict visibility. - **Ordering**: Use numeric ordering to arrange menus and modules logically. - **Naming conventions**: Use clear, descriptive names for easy navigation. - **Filter conditions**: Apply conditions on list-type modules to display relevant records. Proper organization of application menus and modules ensures a seamless user experience, enabling users to efficiently navigate and interact with the application's features and data within the ServiceNow platform.
Application Menus and Modules in ServiceNow – Complete Guide for CAD Exam
Introduction
Application Menus and Modules are fundamental building blocks of navigation in ServiceNow. When you design and create applications on the ServiceNow platform, understanding how to configure Application Menus and Modules is essential — both for real-world development and for success on the ServiceNow Certified Application Developer (CAD) exam. This guide covers why they matter, what they are, how they work, and how to confidently answer exam questions about them.
Why Are Application Menus and Modules Important?
Application Menus and Modules define how users navigate your application. Without them, users would have no structured way to access forms, lists, records, or other resources within the platform. Here is why they matter:
• User Experience: Well-organized menus and modules ensure users can quickly find the functionality they need, improving productivity and adoption.
• Application Structure: They provide a logical grouping of related features, making your application intuitive and maintainable.
• Security and Access Control: Modules can be restricted by roles, ensuring that only authorized users see certain navigation items.
• Customization: ServiceNow allows extensive customization of menus and modules, enabling developers to tailor navigation to specific business needs.
What Are Application Menus?
An Application Menu (sometimes referred to simply as an "Application" in the navigation context) is a top-level grouping in the ServiceNow navigation pane (the left-hand sidebar in the platform UI or the Application Navigator). Think of it as a folder or category that contains related modules.
Key characteristics of Application Menus:
• They appear in the Application Navigator (left sidebar).
• Each Application Menu can contain one or more Modules.
• They are stored in the sys_app_application table.
• They have properties such as Title, Order, Active, Roles, and Hint.
• The Roles field determines which users can see the Application Menu. If no roles are specified, all users can see it.
• The Order field determines the position of the menu relative to other menus.
What Are Modules?
A Module is a navigation item nested under an Application Menu. When users click on a module, it typically opens a list of records, a form, a URL, a content page, a homepage, a script result, or other types of content. Modules are the actual links that users interact with to access functionality.
Key characteristics of Modules:
• They are stored in the sys_app_module table.
• Each module belongs to one Application Menu (referenced by the Application field).
• Modules have a Link type field that determines what happens when the module is clicked.
• They support roles for access control — only users with the specified role(s) can see the module.
• The Order field determines the sequence of modules within the Application Menu.
• They can include a Filter condition to display a pre-filtered list of records.
• Modules support arguments and query strings for advanced configuration.
How Do Application Menus and Modules Work?
Here is how the pieces fit together:
1. Creating an Application Menu
• Navigate to System Definition > Application Menus (or search for "Application Menus" in the navigator).
• Click New to create a new Application Menu.
• Fill in the Title (the name displayed in the navigator), Order, Description, Hint, and optionally specify Roles.
• Set the Active field to true to make it visible.
• Save the record.
2. Creating Modules
• Navigate to the Application Menu record you just created, or go to System Definition > Modules.
• Click New to create a new module.
• Set the Application field to the Application Menu under which this module should appear.
• Set the Title — this is the label users will see.
• Choose the Link type. Common link types include:
- List of Records: Opens a list view for a specified table (optionally with a filter).
- Form: Opens a blank form for a specified table (for creating new records).
- URL (from arguments): Opens a specified URL (can be internal or external).
- Content Page: Opens a specific content page.
- Homepage: Opens a specified homepage/dashboard.
- Timeline Page: Opens a timeline view for a table.
- Script: Runs a server-side script and renders the result.
- Separator: Inserts a visual separator line between modules (a horizontal line for grouping).
• Set the Order field to control the position within the menu.
• Optionally set Roles to restrict access.
• Optionally set a Filter to pre-filter the list of records that appears when the module is clicked.
• Save the record.
3. Using the Application File (for Scoped Applications)
When building scoped applications using Studio or App Engine Studio, Application Menus and Modules are automatically created as part of the application scaffolding. You can also manually add them through the Studio file explorer. All menus and modules associated with a scoped application are tracked as application files and travel with the application during deployment (via Update Sets or the App Repository).
4. Role-Based Visibility
Both Application Menus and Modules use the Roles field to control visibility:
• If the Application Menu has a role specified, only users with that role will see the menu in the navigator. If they don't have the role, the entire menu (and all its modules) is hidden.
• If a Module has a role specified, only users with that role will see that specific module. The menu may still be visible if it has other modules the user can access.
• If no role is specified on an Application Menu, it is visible to all authenticated users.
• If no role is specified on a Module, it is visible to all users who can see the parent Application Menu.
5. Module Arguments and Filters
For modules with the link type List of Records, you can define a filter condition. For example, a module called "Active Incidents" under an Incident Application Menu could filter the Incident table to show only records where active=true. This filter is defined using the condition builder on the Module form. You can also use the Arguments field to pass URL parameters.
Key Tables to Remember
• sys_app_application — Stores Application Menu records.
• sys_app_module — Stores Module records.
Key Fields on the Module Record
• Title — Display name of the module.
• Application — Reference to the parent Application Menu.
• Order — Numeric value that determines display order.
• Roles — Comma-separated list of roles required to view the module.
• Link type — Determines the behavior when the module is clicked.
• Table — The table referenced (for list/form link types).
• Filter — A pre-defined filter condition (for list link types).
• Arguments — Additional URL arguments.
• Active — Boolean field to enable or disable the module.
• Hint — Tooltip text shown on hover.
Practical Example
Suppose you are building a Fleet Management application:
1. Create an Application Menu with the title Fleet Management.
2. Create the following modules under it:
- All Vehicles (Link type: List of Records, Table: x_fleet_vehicle)
- Create New Vehicle (Link type: Form, Table: x_fleet_vehicle)
- Active Reservations (Link type: List of Records, Table: x_fleet_reservation, Filter: active=true)
- Dashboard (Link type: Homepage, targeting a custom fleet dashboard)
- --- separator --- (Link type: Separator)
- Admin Settings (Link type: URL, Roles: x_fleet.admin)
This gives users a clean navigation experience with role-based access control for admin-only settings.
Exam Tips: Answering Questions on Application Menus and Modules
The CAD exam frequently tests your understanding of Application Menus and Modules. Here are strategies and key points to remember:
1. Know the Tables
Be certain that Application Menus are stored in sys_app_application and Modules are stored in sys_app_module. Exam questions may reference these tables directly or indirectly.
2. Understand Link Types
Expect questions about what happens when different link types are selected. Know the difference between:
• List of Records — opens a list view
• Form — opens a new/blank record form
• URL (from arguments) — navigates to a URL
• Homepage — opens a dashboard/homepage
• Separator — creates a visual divider (not a clickable link)
3. Role-Based Access Control
Questions about visibility are common. Remember:
• No role on an Application Menu = visible to all authenticated users.
• Role on a Module = only users with that role see the module.
• If a user doesn't have the role for ANY modules within a menu, the menu itself may be hidden even if the menu has no role restriction (because there's nothing to show).
4. Filters on Modules
Know that modules of link type List of Records can have a filter condition applied. This is a common scenario question: "How do you create a module that shows only active records?" — Answer: Use the filter/condition on the module record.
5. Order Field
The Order field controls the display sequence. Lower numbers appear first. If two items have the same order, they are sorted alphabetically.
6. Scoped Applications
In scoped applications built through Studio, Application Menus and Modules are created as part of the app. They are application files and are included in updates/deployments. Know that when you create a new application in Studio, a default Application Menu is created automatically.
7. Separator Modules
A separator is a special module link type that simply creates a horizontal line in the navigation. It does not link to anything. Exam questions may describe a scenario where you need to visually group modules — the answer is to use a Separator.
8. Common Traps
• Don't confuse Application Menus with Applications (scoped apps). They are related but distinct concepts.
• Don't assume that setting a role on the Application Menu automatically restricts all modules — modules have their own role field as well.
• Remember that modules can reference tables from different scopes if cross-scope access is configured.
9. Practice Scenario-Based Questions
The CAD exam often presents scenario-based questions such as:
• "A developer wants to create a navigation link that opens a filtered list of incidents. What should they configure?" — Answer: Create a Module with link type List of Records, select the Incident table, and define the appropriate Filter condition.
• "How can a developer restrict a navigation item to admin users only?" — Answer: Set the Roles field on the Module to the appropriate admin role.
• "What table stores Application Menus?" — Answer: sys_app_application.
10. Review Before the Exam
Create a few Application Menus and Modules in a Personal Developer Instance (PDI). Hands-on practice solidifies your understanding and helps you recall details under exam pressure.
Summary
Application Menus and Modules form the navigation backbone of any ServiceNow application. Application Menus are top-level groupings stored in sys_app_application, while Modules are the clickable navigation items stored in sys_app_module. Modules support various link types (lists, forms, URLs, homepages, separators, etc.), can be filtered, ordered, and secured with roles. Mastering these concepts is critical for the CAD exam and for building effective, user-friendly applications on the ServiceNow platform.
🎓 Unlock Premium Access
ServiceNow Certified Application Developer + ALL Certifications
- 🎓 Access to ALL Certifications: Study for any certification on our platform with one subscription
- 3305 Superior-grade ServiceNow Certified Application Developer practice questions
- Unlimited practice tests across all certifications
- Detailed explanations for every question
- CAD: 5 full exams plus all other certification exams
- 100% Satisfaction Guaranteed: Full refund if unsatisfied
- Risk-Free: 7-day free trial with all premium features!