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

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Client Script API

# Client Script API - ServiceNow Fluent {#ariaid-title1}

* Release version: Yokohama
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

The Client Script API defines client-side scripts \[sys_script_client\] that run JavaScript on the client (web browser) when client-based events occur, such as when a form loads, after form submission, or when a field changes
value.
Note:  
For the latest ServiceNow Fluent API documentation and examples, see the [ServiceNow Fluent API reference](https://servicenow.github.io/sdk/) and [ServiceNow SDK examples repository](https://github.com/ServiceNow/sdk-examples) on GitHub.

For general information about client scripts, see [Client scripts](https://www.servicenow.com/docs/access?context=client-scripts&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US).
**Related concepts**   

* [ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/~uRaWXiuRJuyUsvJypBknQ "Define application metadata in source code using the ServiceNow Fluent domain-specific programming language.")

## ClientScript object {#ariaid-title2}

Create a client script \[sys_script_client\] to configure forms, form fields, and field values while the user is using the form.
{#client-script-object-now-ts__table_vy2_525_jq__entry__3}{#client-script-object-now-ts__now-id-desc2}

| Name | Type | Description |
|-|-|-|
| $id | String or Number | Required. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys_id. For more information, see [ServiceNow Fluent language constructs](https://servicenow-prod.fluidtopics.net/3RTnzOESnTILKQIIO7V1sg "ServiceNow Fluent language constructs provide additional functionality for development in source code with ServiceNow Fluent APIs."). Format: `Now.ID['String' or Number]` |
| table | String | Required. The name of the table on which the client script runs. |
| name | String | Required. The name of the client script. |
| active | Boolean | Flag that indicates whether the client script is enabled. Valid values: * true: The script is enabled. * false: The script isn't enabled. {#client-script-object-now-ts__ul_cxj_srr_4bc} Default: true |
| appliesExtended | Boolean | Flag that indicates whether the client script applies to tables extended from the specified table. Valid values: * true: The script applies to extended tables. * false: The script doesn't apply to extended tables. {#client-script-object-now-ts__ul_q5n_ltz_pbc} Default: false |
| uiType | String | The user interface to which the client script applies. Valid values: * desktop * mobile_or_service_portal * all {#client-script-object-now-ts__ul_pxn_sdf_1gc} Default: desktop |
| description | String | A description of the functionality and purpose of the client script. |
| messages | String | Text strings that are available to the client script as localized messages using getmessage('\[message\]'). For more information, see [Translate a client script message](https://www.servicenow.com/docs/access?context=t_TranslateAClientScriptMessage&version=yokohama&pubname=yokohama-platform-administration&ft:locale=en-US). |
| isolateScript | Boolean | Flag that indicates whether the script runs in strict mode, with access to direct DOM, jQuery, prototype, and the window object turned off. Valid values: * true: Isolate the script and don't run it in strict mode. * false: Run the script in strict mode. {#client-script-object-now-ts__ul_s1q_c5z_pbc} Default: false |
| script | Script | A client-side script that runs in the browser. This property supports inline JavaScript or a reference to another file in the application that contains a script. Format: * To use text content from another file, refer to a file in the application using the following format: `Now.include('path/to/file')`. For more information, see [ServiceNow Fluent language constructs](https://servicenow-prod.fluidtopics.net/3RTnzOESnTILKQIIO7V1sg "ServiceNow Fluent language constructs provide additional functionality for development in source code with ServiceNow Fluent APIs."). * To provide an inline script, use string literals or template literals for multiple lines of code: ``'Script' or `Script```. {#client-script-object-now-ts__ul_zr2_zvg_5fc} |
| global | Boolean | Flag that indicates on which views of the table the client script runs. Valid values: * true: The script runs on all views. * false: The script runs only on the specified views. {#client-script-object-now-ts__ul_mvv_l5h_qbc} Default: true |
| view | String | The views of the table on which the client script runs. This property applies only when the global property is set to false. |
| type | String | The type of client script, which defines when it runs. For more information about the supported types, see [Client scripts](https://www.servicenow.com/docs/access?context=client-scripts&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US). Valid values: * onCellEdit: Runs when the list editor changes a cell value. * onChange: Runs when a particular field value changes on the form. * onLoad: Runs when the system first renders the form and before users can enter data. Typically, onLoad() client scripts perform client-side-manipulation of the current form or set default record values. * onSubmit: Runs when a form is submitted. Typically, onSubmit() scripts validate things on the form and ensure that the submission makes sense. An onSubmit() client script can cancel form submission by returning a value of false. {#client-script-object-now-ts__ul_nvk_wdf_1gc} |
| field | String | A field on the table that the client script applies to. This property applies only when the type property is set to onChange or onCellEdit. |
| $meta | Object | Metadata for the application metadata. With the installMethod property, you can map the application metadata to an output directory that loads only in specific circumstances. $meta: { installMethod: 'String' } Valid values for installMethod: * demo: Outputs the application metadata to the metadata/unload.demo directory to be installed with the application when the Load demo data option is selected. * first install: Outputs the application metadata to the metadata/unload directory to be installed only the first time an application is installed on an instance. {#client-script-object-now-ts__ul_n3q_y3s_42c} |
[Table 1. Properties]

{#client-script-object-now-ts__table_vy2_525_jq}  

    import { ClientScript } from '@servicenow/sdk/core'

    export const cs = ClientScript({
       $id: Now.ID['my_scripts'], 
       name: 'my_scripts',
       table: 'incident',
       active: true, 
       appliesExtended: false, 
       global: true,
       uiType: 'all', 
       messages: '', 
       isolateScript: false, 
       type: 'onLoad',
       script: Now.include('../client/client-script.js'),
    })

The client script is defined in the client-script.js file referenced from the script property. For example:

    function onLoad() { 
        const x = 'util' g_form.addInfoMessage(x) 
    }


