Add forms to UI Builder pages
Summarize
Summary of Add forms to UI Builder pages
The Form component in UI Builder enables you to add one or more customizable forms to your pages, allowing data collection through defined fields with configurable properties like required input. This feature supports enhancing page functionality by embedding forms inline, within modals, or alongside other components, facilitating richer user interactions.
Show less
Key Features
- Multiple Forms per Page: You can add several forms to a single UI Builder page, including on pages that already contain nested forms within other components.
- Form Controller Presets: For pages with forms created before the Xanadu release, applying a preset to the original form controller is required to enable multiple forms to function correctly. This preset must be applied to all form controllers on the page.
- Primary Form Controller Configuration: Exactly one form controller on the page must have the Is mapped to app Shell property set to true. This primary form controller manages global events, ensuring proper event handling and avoiding conflicts.
- Advanced Event Handling: When a form controller is mapped to the app shell, it automatically handles key events such as screen status changes (e.g., dirty form indication), configuration menu updates, phone requests (with CTI plugin), and loading state changes.
Practical Guidance for ServiceNow Customers
- When extending record pages, use inline tabs or modals to add forms with dedicated form controller instances, improving modularity and user experience.
- Before adding multiple forms to legacy pages, ensure you apply the form controller preset to all involved forms to avoid operational issues.
- Verify that exactly one form controller per page has the Is mapped to app Shell property enabled to maintain proper event processing across forms.
- Leverage the automatic event handling capabilities of the primary form controller to streamline user interactions and maintain consistent UI behavior.
For comprehensive details on the Form component and configuration options, consult the Form Overview documentation on the ServiceNow Developer Site.
Use the Form component to add one or more forms to UI Builder pages.
- Extend record pages by adding an inline tab with a form using its own form controller instance.
- Add modals with a form on a record page.
- Open the page containing an existing form.
- In the data drawer, expand the Data resources list and select the original form controller.
- Select the Preset field.
- Select Form controller preset.
- Select Apply.
- Select the X to close the Edit Form Controller pop-up.
Exactly one of your form controllers should have the Is mapped to app Shell property set to true. This property is used to specify the primary form on the page. The primary form is responsible for handling global events. You shouldn't set the property to true for more than one form controller or have zero form controllers with the property set to true.
- Open the page containing one or more forms.
- In the content tree, select a form.
- In the configuration panel, on the Configure tab, select Form Controller.
- On the Edit Form Controller pop-up, scroll down in the Form Controller list to find the Is mapped to App Shell option.
- Select or clear the option for each form component on the page to confirm that exactly one form controller is mapped to the app shell.
Advanced form event handling
Experienced developers with knowledge of conflict event handling may find the following details useful.
- Screen Status Changed
-
- Description: Action to indicate that a form is dirty.
- Output:
CTRL_RECORD#SCREEN_STATUS_CHANGED
- Update Configuration Menu Requested
-
- Description: Action to set record configuration menu items on the avatar menu.
- Output:
CTRL_RECORD#UPDATE_CONFIGURATION_MENU_REQUEST
- Phone Requested
-
- Description: Action to make a call when the CTI plugin is enabled.
- Output:
CTRL_RECORD#PHONE_REQUESTED
- Form Loading State Changed
-
- Description: Action to show a loading spinning when that form is loading data.
- Output:
CTRL_RECORD#FORM_LOADING_STATE_CHANGED
For detailed information about the Form component and its properties, see Form Overview on the ServiceNow Developer Site.