---
sourceDocument: Australia Build or modify applications
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/application-development

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Event handler generation

# Use case: Configure an event handler with ServiceNow Otto {#ariaid-title1}

Release version: Australia  
Updated September 10, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read  
Automate event handler configuration without writing manual binding expressions.

## Scenario {#use-case-event-handler-generation__section_smw_n2w_z3c}

A UI developer is creating a Service Operations Workspace homepage for a service desk team. The homepage features two components: a button that directs agents to a list of open incidents, and a task list that displays open change
requests. For the task list, when an agent selects a reference link in any row, the developer wants the associated change request record to open in a new tab, without requiring any additional navigation steps.

## Problem {#use-case-event-handler-generation__section_b1v_t2w_z3c}

Without ServiceNow Otto, the developer must manually add an Open page or URL handler to the button component and configure both the destination page and the associated table parameter. For the task list, they need to
add a second Open page or URL handler to the Reference link clicked event. Additionally, they must write binding expressions to map the event payload fields table and sys_id to the record page parameters. This process
requires familiarity with the names of the payload fields, the binding syntax, and the parameter names expected by the record page, making it a complex configuration task for each handler.

## Solution {#use-case-event-handler-generation__section_hr1_bfw_z3c}

With Event handler generation, the developer uses natural language prompts in the ServiceNow Otto panel to configure an event handler. ServiceNow Otto identifies the correct destination page, selects the appropriate event payload fields, and generates accurate binding expressions. The developer then reviews the preview and accepts the
configuration without needing to look up payload field names or manually write any binding expressions.

## Before you begin {#use-case-event-handler-generation__before-you-begin}

Make sure that you install UI generation and that you have the ui_builder_admin role. For more information, see [Install UI generation](https://servicenow-prod.fluidtopics.net/XZVR~pG8lSP1o3gSnceIQg "Install the ServiceNow Otto for Creator application from the ServiceNow Store to enable UI generation.") and [Grant UI Builder admin role](https://servicenow-prod.fluidtopics.net/_I59C8jNpjV1XmKCAxOGwA "Assign the UI Builder administrator role to a user by editing the user record and adding the ui_builder_admin role.").

## Configuration steps {#use-case-event-handler-generation__section_qmx_kfw_z3c}

Perform the following steps to use the Event handler generation skill:

1. Navigate to AllNow Experience FrameworkUI Builder.
2. Open the Service Operations Workspace experience and navigate to the home page.
3. Select the button component and open the Button clicked event.
4. Add an Open page or URL handler. In the ServiceNow Otto input panel, enter the prompt: <kbd class="ph userinput">Open simple list page with table from state parameter.</kbd>  
   Tip:  
   When writing prompts for Event handler generation, reference the specific destination page type and the fields you want to map by name. For reference link events, ServiceNow Otto displays the available payload fields in the panel --- use these field names in your prompt for the most accurate results.

   ServiceNow Otto identifies the simple list page, selects it as the destination, and binds the table parameter to the appropriate state parameter.
5. Review the preview, select Accept and edit, and save the handler.
6. Select the task list component and open the Reference link clicked event.
7. Add a Open page or URL handler. ServiceNow Otto displays the available event payload fields. Enter the prompt: <kbd class="ph userinput">Open record page in a new tab with fields table and sysid from event payload</kbd>.

   ServiceNow Otto sets the destination to the record page, binds the table parameter to the payload's table field, binds sysid to the payload's sys_id field, and enables the Open in new tab
   option.
8. Review the preview, confirm the bindings are correct, and accept the configuration.
{#use-case-event-handler-generation__ol_lfj_1gw_z3c}

## Outcome {#use-case-event-handler-generation__section_xzw_5kw_z3c}

Both event handlers can be configured with natural language prompts. The developer could set them up quickly without looking up payload field names or writing binding expressions manually. During runtime, selecting the button
navigates the agent to the incident list, with the table parameter automatically populated from the workspace's state. Additionally, selecting any reference link in the task list opens the corresponding change request record
in a new tab, pulling the table name and sys_id directly from the selected row. The generated configurations are ready for immediate use. The developer retains full control and can edit any field using standard form controls
before saving.
**Related concepts**   

* [Event handler generation](https://servicenow-prod.fluidtopics.net/dvHk960ZEv2lyKQdBa09fg "ServiceNow Otto event handler generation enables you to configure event handlers for UI components using natural language, eliminating the need for manual configuration of complex routing parameters and binding expressions.")  
**Related tasks**   

* [Configure an event handler with ServiceNow Otto](https://servicenow-prod.fluidtopics.net/XXqr~2XN3TI8Rp3Qjo7D9g "Use ServiceNow Otto in UI Builder to configure event handlers. At present, you can configure Open page or URL, Open or close modal, and View load requested event handlers.")

*[\>]: and then


