Supported client script types and APIs

  • Release version: Australia
  • Updated March 12, 2026
  • 3 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Supported Client Script Types and APIs

    This document outlines the client script types and APIs supported in the Service Portal as of the Australia release, updated March 12, 2026. It is essential for ServiceNow customers to understand which client scripts can be effectively utilized within the Service Portal to ensure compatibility and proper functionality.

    Show full answer Show less

    Key Features

    • Client Script Requirements: Client scripts must have the UI Type set to "All" or "Mobile / Service Portal." Scripts marked as "Desktop" are incompatible due to reliance on legacy APIs.
    • Catalog Client Scripts: These scripts validate user input and must also adhere to the UI Type requirements. Default validation scripts include XML, Script, Script (Plain), Email, and Version.
    • UI Scripts: Similar to client scripts, UI scripts must have the correct UI Type set and can utilize the guiscripts global object.
    • UI Actions: All server-side UI actions are supported, but note that setRedirectURL() will not function as expected in Service Portal.
    • UI Policies: Supported, with a recommendation to use declarative policies rather than scripting for best results.
    • Client-side APIs: A comprehensive list of supported APIs is available for use in onLoad, onChange, and onSubmit client scripts, with specific methods outlined for gform, glist, gservicecatalog, GlideAjax, GlideRecord, and i18NV3.

    Key Outcomes

    By adhering to these guidelines, ServiceNow customers can ensure their client scripts function correctly within the Service Portal. This will lead to improved user experiences, accurate data validation, and enhanced application performance. Understanding the limitations and requirements will help in avoiding potential issues during script execution.

    Some client scripts are not supported in Service Portal. Others must have a UI type set to All or Mobile / Service Portal. If using a client script in the Service Portal, only client-side APIs supported in a mobile environment can be used.

    Client script support in Service Portal

    Client script Description
    Catalog client scripts

    Service Portal requires that the UI Type field be set to All or Mobile / Service Portal. Client Scripts marked as Desktop rely on legacy APIs that are not supported in Service Portal. Before flagging a script as Mobile / Service Portal or All, make sure you are only using supported client-side APIs.

    Validation scripts

    Service Portal requires that the UI Type field be set to All or Mobile / Service Portal. Client Scripts marked as Desktop rely on legacy APIs that are not supported in Service Portal. Before flagging a script as Mobile / Service Portal or All, make sure you are only using supported client-side APIs.

    Validate user input in a specific field type using a validation script. In new instances, Service Portal includes XML, Script, Script (Plain), Email, and Version validation scripts by default. If upgrading from a previous release, the Mobile and Service Portal version is not active by default. You must activate the Mobile and Service Portal version of the validation script to validate user input in the Service Portal. See Activate Service Portal validation scripts.

    Note:
    To call a UI script within a Validation script, use the g_ui_scripts global object. For more information, see GlideUIScripts. Verify that the UI script has the Global field set to false and UI Type set to Mobile / Service Portal or All.
    UI scripts

    Service Portal requires that the UI Type field be set to All or Mobile / Service Portal. Client Scripts marked as Desktop rely on legacy APIs that are not supported in Service Portal. Before flagging a script as Mobile / Service Portal or All, make sure you are only using supported client-side APIs.

    UI Actions

    All server-side UI actions are supported in Service Portal, although setRedirectURL() operations are ignored because Service Portal forms handle redirection in a different way than the platform.

    The form widget ignores any UI Actions marked as Client.

    UI Policies Supported, although you should use only declarative UI Policies. Avoid scripting unless the outcome cannot be achieved through the condition builder.
    UI Macros Not supported as UI macros use Jelly.
    Formatters Not supported as formatters use Jelly.

    Supported client-side APIs

    Supported client scripting APIs for use in onLoad, onChange, and onSubmit client scripts.

    For detailed class and method information, see the Client API reference.

    Class Available methods
    g_form
    • addDecoration(fieldName, icon, title)
    • addErrorMessage(message)
    • addInfoMessage(message)
    • addOption(fieldName, value, label, index)
    • clearOptions(fieldName)
    • getActionName()
    • getBooleanValue(fieldName)
    • getDecimalValue(fieldName)
    • getEncodedRecord()
    • getFieldNames()
    • getIntValue(fieldName)
    • getLabel(fieldName)
    • getReference(fieldName, callback)
    • getRelatedListNames()
    • getSectionNames()
    • getSysId()
    • getTableName()
    • getValue(fieldName)
    • hasField(fieldName)
    • hideAllFieldMsgs(type: "info | error")
    • hideErrorBox(fieldName)
    • hideFieldMsg(fieldName, clearAll)
    • hideRelatedList(listTableName)
    • hideRelatedLists()
    • isMandatory(fieldName)
    • isNewRecord()
    • isReadOnly(fieldName)
    • isVisible(fieldName)
    • removeDecoration(fieldName, icon, title)
    • removeOption(fieldName, value)
    • save()
    • serialize(onlyDirtyFields)
    • setFieldPlaceholder(fieldName, placeholder)
    • setLabel(fieldName, label)
    • setMandatory(fieldName, isMandatory)
    • setReadOnly(fieldName, isReadOnly)
    • setSectionDisplay(sectionName, isVisible)
    • setValue(fieldName, value, displayValue)
    • setVisible(fieldName, isVisible)
    • showErrorBox(fieldName, message, scrollForm)
    • showFieldMsg(fieldName, message, type: "info | error", scrollForm)
    • showRelatedList(relatedTableName)
    • showRelatedLists()
    • submit(submitActionName)
    Note:
    Using the variables.var_name notation with the g_form API is not supported in Service Portal. g_form as a global object cannot be used in a widget client controller or in a UI script.
    g_list
    • get(fieldName)
    • addItem(value, displayValue)
    • removeItem(value)
    • reset()
    • setQuery(queryString)
    • setDefaultOperator(operator)
    • getDefaultOperator()
    g_service_catalog

    isOrderGuide()

    GlideAjax
    • addParam (name, value)
    • getParam (name)
    • getXML(callback)
    • getXMLAnswer(callback)
    • getJSON(callback)
    • setErrorCallback(errorCallback)
    • getURL()
    • getParams()
    • execute()
    • successCalback(data, status, xhr)
    • errorCallback(xhr)
    • setScope(scope)
    Note:
    • Because the mobile platform does not allow synchronous GlideAjax calls, the getXMLWait() method in a GlideAjax call does not work in the Service Portal. Instead, use one of the asynchronous calls such as getXML(Function callback) or getXMLAnswer(Function callback).
    • GlideAjax cannot be used in a widget client controller.
    GlideRecord
    • addQuery(encodedQuery)
    • addQuery(fieldName, operator, value)
    • getEncodedQuery()
    • get(id)
    • getTableName()
    • hasNext()
    • insert(callback)
    • gotoTop()
    • next()
    • loadRow(rowObj)
    • getValue(fieldName)
    • setValue(fieldName, value)
    • isDotWalkField(fieldName)
    • addOrderBy(fieldName)
    • setDisplayFields(fieldNames)
    • query(callback)
    • setRows(rowsArray)
    • setTableName(tableName)
    • setLimit(maxInt)
    • getLimit()
    i18NV3

    getMessage(String messageKey, Function callback)