---
sourceDocument: Brazil ServiceNow AI Platform Administration
sourceDocumentLink: https://www.servicenow.com/docs/r/platform-administration

 Release :

    - brazil

ft:locale :

    - en-US

ft:publication_title :

    - Brazil ServiceNow AI Platform Administration

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Dynamic Schema

# Dynamic Schema {#ariaid-title1}

Release version: Brazil  
Updated September 10, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) 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 Dynamic Schema

Dynamic Schema allows ServiceNow customers to define a flexible, hierarchical structure of categories and attributes to describe records without adding new columns to tables.
It enables capturing data dynamically by using different attributes for each record, organized within dynamic categories and namespaces.
This approach supports metadata management across multiple tables, enhancing flexibility and reusability.
Show full answer Show less  

## Key Features

* **Dynamic Attributes:** Name-value pairs that describe records, which can be formally defined or created transiently on the fly.
* **Dynamic Categories:** Organizational containers for dynamic attributes, supporting inheritance from parent categories.
* **Dynamic Attribute Store:** A specialized field type to store one or more dynamic attributes and their values; automatically creates an associated dynamic namespace.
* **Dynamic Namespace:** A scoped collection of dynamic attributes and categories, enabling reuse across multiple attribute store fields.
* **Implementation Flexibility:** Attributes can be added transiently without prior definition or formally defined with types, choice options, and category organization for enhanced platform support.
* **Reuse and Sharing:** Dynamic namespaces can be created independently and associated with multiple store fields, promoting attribute reuse.
* **API Support:** Extensive global APIs and JavaScript methods enable management, querying, and manipulation of dynamic attributes within tables.

## Key Outcomes

* Enables capturing diverse and evolving metadata for records, such as product details in a retail catalog, without schema changes.
* Facilitates organizing attributes into meaningful categories (e.g., Electronics, Clothing) and applying them across multiple record types.
* Supports transient attribute usage for quick, flexible record descriptions with string values.
* Allows filtering and searching within ServiceNow Workspace lists using dynamic schema elements, improving data retrieval and user experience.
* Provides robust programmatic control over dynamic attributes through supported GlideRecord and GlideAggregate API methods, enhancing automation and integration capabilities.  
Define a hierarchy of categories and enable users to describe a record using one or more attributes.

## Key benefits {#dynamic-schema__section_x1y_px3_1bc}

* Organize and define metadata in a flexible schema instead of adding new columns to a table.
* Capture data dynamically using different attributes per record.
* Define a structured framework of dynamic categories and dynamic attributes.
* Define dynamic categories and dynamic attributes once and reuse them across multiple tables using dynamic namespaces.
{#dynamic-schema__ul_gcm_qx3_1bc}

## Dynamic Schema elements {#dynamic-schema__section_gkd_y5j_1gc}

Dynamic Schema is composed of the following elements.

Dynamic attributes
:   Name-value pairs that describe a record. You can either formally define dynamic attributes or create them on the fly as transient attributes in a dynamic attribute store field.

Dynamic categories
:   Containers for organizing dynamic attributes. A dynamic category can inherit dynamic attributes from its parent category.

Dynamic attribute store

:   A field type for storing one or more dynamic attributes and their values. When you create a dynamic store field, a dynamic namespace is automatically created and associated with that store field.After creating a store
    field, you can start storing values for attributes without defining them, or you can specify attribute definitions in the dynamic namespace to take advantage of additional functionality.

Dynamic namespace
:   A scoped collection of dynamic attributes and dynamic categories. Each dynamic attribute store field automatically receives its own dynamic namespace or you can configure multiple dynamic attribute store fields that share a
    dynamic namespace.

## Implementation options {#dynamic-schema__section_cwh_5x3_1bc}

You have flexibility when deciding how to implement Dynamic Schema.

* You can add attributes directly to a dynamic attribute store field without creating formal definitions first. These attributes are considered transient and are treated as having string values in scripts and queries. You can provide a definition for the attribute and modify its type at any time. Modifying the type of an attribute doesn't affect the stored data but changes how the system interacts with that data. See [Working with attributes transiently](https://www.servicenow.com/docs/fIgy7BBoQFa6eCsVtb0rcw "Start adding attributes and values to records without formally defining a full schema.").
* You can take advantage of additional platform support and reuse for attributes by defining them in a dynamic namespace. Defining a dynamic attribute record enables you to specify its type, set choice options, organize it into dynamic categories and more. See [Working with Dynamic Schema](https://www.servicenow.com/docs/r1FPJKkfA9uDvfFD8nbVDA "Extend Dynamic Schema capabilities by defining dynamic attributes and dynamic categories in a dynamic namespace.").
* You can create a dynamic namespace independently. You can add dynamic attributes and dynamic categories to that namespace, and then associate that namespace with one or more dynamic attribute store fields. This enables you to reuse attributes across multiple store fields. See [Create a dynamic namespace](https://www.servicenow.com/docs/AY_SdRgT4jI4k_BdjKX3kA "Define categories and attributes once and reuse them across multiple tables and dynamic attribute store fields.").
{#dynamic-schema__ul_hfx_mb2_yfc}

## Use cases {#dynamic-schema__section_r3d_wx3_1bc}

* Capture attribute-value pairs that describe products sold in a large department store by defining a dynamic schema for your products. Store the attributes and their data in a dynamic attribute store field.For example, assume
  you have a custom Products table that stores records for different types of products like televisions, sunscreens, pillows, and shirts. You can create dynamic attributes for each type of product (like screen type, UPC, color, or
  size). You can organize the dynamic attributes into dynamic categories (like Electronics, Health and Beauty, Home Goods, and Clothing). Users can add records to your Products table and capture different attributes in each
  product record.

* Describe a record by capturing one or more transient attributes, with values stored as string objects in a dynamic attribute store field. You can also capture transient attributes on a record by adding a dynamic attribute store field to a table and populating the field with string data using the GlideRecord API.
* Filter Workspace lists using dynamic schema elements in the condition builder. For example, you can define dynamic categories and attributes for product offerings and use them to search for transactions using the condition builder in the Sales Order Management Workspace.
{#dynamic-schema__ul_tp3_g3w_jbc}

## APIs {#dynamic-schema__section_kwh_1bm_bcc}

Dynamic Schema also provides global APIs that enable you to access and manage dynamic attributes in your tables using JavaScripts. The following lists the APIs and methods that support dynamic attributes.

* [GlideAggregate - Global](https://www.servicenow.com/docs/access?context=c_GlideAggregateAPI&version=brazil&pubname=brazil-api-reference&ft:locale=en-US)

  The following GlideAggregate methods support the usage of dynamic attributes:
  * addAggregate()
  * addHaving()
  * getDynamicAttributeValue()
  * getDynamicAttributeDisplayValue()
  * getValue()
  * groupBy()
  * orderBy()
  * orderByAggregate()
  {#dynamic-schema__ul_tc3_1nj_zgc}
* [GlideDynamicAttributeStore - Global](https://www.servicenow.com/docs/access?context=GlideDynamicAttStoreAPI&version=brazil&pubname=brazil-api-reference&ft:locale=en-US)
* [GlideElementDynamicAttributeStore - Global](https://www.servicenow.com/docs/access?context=GlideElementDynamicAttStoreAPI&version=brazil&pubname=brazil-api-reference&ft:locale=en-US)
* [GlideDynamicNamespace - Global](https://www.servicenow.com/docs/access?context=GlideDynamicNamespaceAPI&version=brazil&pubname=brazil-api-reference&ft:locale=en-US)
* [GlideRecord - Global](https://www.servicenow.com/docs/access?context=c_GlideRecordAPI&version=brazil&pubname=brazil-api-reference&ft:locale=en-US)

  The following GlideRecord methods support dynamic attributes:
  * addQuery()
  * getDisplayValue()
  * getDynamicAttribute()
  * getDynamicAttributeDisplayValue()
  * getDynamicAttributeValue()
  * getValue()
  * orderBy()
  * orderByDesc()
  * setDisplayValue()
  * setDynamicAttributeDisplayValue()
  * setDynamicAttributeValue()
  * setDynamicAttributeValues()
  * setValue()
  {#dynamic-schema__ul_cd4_wnj_zgc}
{#dynamic-schema__ul_cw2_cbm_bcc}

