--- title: "Browser Storage Component" slug: "browser-storage-component" updated: 2025-12-04T19:33:37Z published: 2025-12-04T19:33:37Z canonical: "docs.unqork.io/browser-storage-component" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # Browser Storage Component UDesignerClassic Designer The **Browser Storage component** lets you add, edit, delete, and retrieve data in an end-user's browser. The [component](/v1/docs/module-builder-component-library) stores data using the [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) API. IndexedDB is a large storage service for encrypting and storing data in a browser. This API lets you store large amounts of structured, indexed information locally, letting you filter and search this information. Data stored in a browser expires after 30 days. The expiration time resets when the end-user accesses the data. > [!NOTE] > Only end-users can access the encrypted data stored on their browser. You'll find the Browser Storage component in the [Data & Event Processing](/v1/docs/data-event-processing) group to the left of the [Module Builder](/v1/docs/introduction-to-the-module-builder). ## About the Configuration Window > To learn more about general component settings, view our [General Component Settings](/v1/docs/general-component-settings) article. ## Data Settings [![A static image displaying the Browser Storage component's configuration window Data settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/data_thumb_0_0(9).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/data(11).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Interaction Type** | The Browser Storage component has the following options: - **Write**: This interaction lets you create and update data in the IndexedDB object. Use the component's Filters table when creating or updating information. If there's information you want to update, enter the Property ID of that information in the Filters table. The component filters on that Property ID and merges or overwrites the information. If there's no match to the Property ID, or the field is blank, the component creates a new submission. - **Read**: This interaction views filtered data. It also searches for individual offline submissions. To find offline data, use the suffix: /display/:formId/local/:namespace/:submissionId, like you do when searching for a specific submission ID. The Namespace is the unique identifier you create for your stored information. - **Delete**: This interaction deletes locally-stored data from the IndexedDB object. > To learn more about the IndexedDB API, view the following documentation: [https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) | | **Namespace** | A Namespace is required. This is a unique label applied to the information you store in the IndexedDB object. The Read, Write, and Delete interactions happen only to the data entered in the Namespace. > [!TIP] > It's best practice to use your module's unique module ID in the Browser Storage component's Namespace. For example, inspections5ffddf6ae336b802494437c8, where 5ffddf6ae336b802494437c8 is the module ID of the front-end source module. The Namespace is where the source module stores its data on the browser.Only use **Property IDs** or [grid syntax](/v1/docs/grid-syntax-and-output-snippet) in and Outputs tables, unless referring to nested data in a [Plug-In component](/v1/docs/plug-in-component). The Namespace field uses autocomplete to suggest Namespaces used elsewhere in the environment. | #### Data - Filters Table [![A static image displaying the Browser Storage's Data Filter settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/filters_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/filters.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Filters** | The Browser Storage component's Filters table helps you find information stored in the browser's IndexedDB object store. | | **Property ID** | This is the Property ID of the stored information. Mapping to this Property ID performs the Write, Read, and Delete operations to that data. > [!TIP] > The Property ID entered must match the Property ID used in the input component. Remember, use camel case without spaces or punctuation. | | **Set Filter To** | This drop-down lets you select how you want to compare the Filter’s **Property ID** to its **Mapping**. Your options are: =, <, or >. | | **Mapping** | Mapping describes where in the stored data you're filtering. This mapping information tells the component what data send or call when triggered. | | **Required** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), the end-user must enter a value in the field of this input component before the logic component executes. By default, this setting is ☐ (**unchecked**). | | **Exclude** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), the filter operation does not run when you trigger the Browser Storage component. By default, this setting is ☐ (**unchecked**). | | **Optional** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), or if the field has no value, the operation does not run when you trigger the Browser Storage component. By default, all inputs in the request body progress, even if the field is empty (null). By default, this setting is ☐ (**unchecked**). | | **Replace** | This setting is only available when the Interaction Type is set to **Write**. If this setting is ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(ON)**, the entire data object is replaced when you make changes. If this setting is ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)**, the new data merges into the data object. By default, this setting is ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)**. | #### Data - Inputs Table Input settings are only available for the Write operation. [![A static image displaying the Browser Storage component's Data Inputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/inputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/inputs.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Property ID** | This Property ID refers to your triggering component. Use this field to enter values that you send to the browser’s IndexedDB object store. | | **Mapping** | API documentation includes mapping information. This mapping information tells the Browser Storage component which information to send or call from the browser's IndexedDB object store. > Discover more about the Unqork API documentation here: [https://developers.unqork.io/](https://developers.unqork.io/). | | **Required** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), the end-user must enter a value in the field of this input component before the logic component executes. By default, this setting is ☐ (**unchecked**). | | **Exclude** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), the component does not pass the field as part of the API call's request body. The component still watches for changes to the value. By default, this setting is ☐ (**unchecked**). | | **Optional** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)(**checked**), and the field has no value, the operation does not run when triggered. By default, all inputs in the request body work, even if the field is empty (null). By default, this setting is ☐ (**unchecked**). | #### Data - Outputs Table [![A static image displaying the Browser Storage component's Data Outputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/outputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/outputs.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Property ID** | This Property ID is where you want the component to send the data retrieved from your browser. For your logic component to recognize an output, you must enter the destination component's Property IDs. > [!TIP] > The Property ID you enter must match the Property ID used in the output component. Remember, use without spaces or punctuation. | | **Mapping** | Map Property IDs according to API specifications. Mapping tells your component what to retrieve from the browser. For example, enter 0.data.storedExample to retrieve the first stored submission. The [0] represents your first saved record, [1] is the second, and so on. | ## Actions Settings #### Triggers | Setting | Description | | --- | --- | | **Post** | Enter the Property ID of the component that you want to trigger after the Browser Storage component completes the API call. For example, triggering a component to display the data received from the Browser Storage component's API call. | | **Error** | Enter the Property ID of a component that you want to trigger on the failure of the API call. | ## [![A static image displaying the Browser Storage component's Configuration Actions settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/actions_thumb_0_0(7).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/actions(7).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) Advanced Settings | Setting | Description | | --- | --- | | **Disable Execution** | If Disable Execution is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(ON)**, the logic tied to this component does not execute. Use this to keep the component's settings, but disable the operations it performs. By default, this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)**. | | **Set Debounce** | The number of milliseconds that pass before the module loads this component. This is useful if you have a large module and you load several components at the same time. > [!NOTE] > 1,000 milliseconds = 1 second. | [![A static image displaying the Browser Storage component's Advanced settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/advanced_thumb_0_0(14).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/advanced(15).jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) ## Adding a Browser Storage Component First, you'll configure a survey application for use offline. This survey has fields for a surveyor's name, the date surveyed, and other various criteria. This front-end module lets you input values that a Browser Storage component writes to the browser cache. For a completed example of the survey application, view the training environment module here: [https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit](https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit). This example assumes you have a module saved and with a title. ### Configure the Initializer Component This [Initializer](/v1/docs/initializer-component) component triggers the Browser Storage component to retrieve submission data from the browser. 1. In the Module Builder, drag and drop an **I****nitializer** component onto the canvas. 2. In the Property ID field, enter **initGetOfflineSubmissions**. 3. In the Canvas Label Text field, enter **initGetOfflineSubmissions**. 4. From the **Trigger Type** drop-down, select **New Submission**. 5. In the **Outputs** table, enter the following: | | Property ID | Type | Value | | --- | --- | --- | --- | | 1 | **readOfflineSubmissions** | trigger | GO | > [!NOTE] > This Property ID matches the Browser Storage component you'll set up next. [![A static image displaying the Initializer component's Acction settings. The Trigger Type is set to New Submission and the Outputs Table includes a row with the readOfflineSubmissions property ID.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/initGetOfflineSubmissions_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/initGetOfflineSubmissions.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) 6. Click **Save Component**. ### Configure the Browser Storage Component Next, you'll configure a Browser Storage component to retrieve the data from your browser’s storage, using the **Read** interaction to view offline submissions. 1. Drag and drop a **B****rowser Storage** component onto your canvas, placing it below your **initGetOfflineSubmissions** **I****nitializer** component. 2. In the Property ID field, enter **readOfflineSubmissions**. 3. In the Canvas Label Text field, enter **readOfflineSubmissions**. 4. Set the **Interaction Type** to ![Inline image displaying a selected radio button.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/radioComponent_teal_icon(7).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **Read**. 5. In the **Namespace** field, enter inspectionsModuleId. Where ModuleId is the ID value of your module. For example inspections5ffddf6ae336b802494437c8. > [!NOTE] > For this example, the Namespace refers to the Browser Storage data created in the following training module: [https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit](https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit). 6. In the **Outputs** table, enter the following: | | Property ID | Mapping | | --- | --- | --- | | 1 | **hiddenOfflineSubmissions** | | > [!NOTE] > This Property ID matches the [Hidden](/v1/docs/hidden-component) component you'll set up next. [![A static image displaying the Browser Storage component's Data Settings. The Interaction type is set to Read, the Namespace is filled, and the Outputs table contains the hiddenOfflineSubmissions Property ID.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/readOfflineSubmissions_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/readOfflineSubmissions.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) 7. Click **Save Component**. ### Configure the Hidden Component Add a [Hidden](/v1/docs/hidden-component) component to store offline submissions made by the end-user. 1. Drag and drop a **H****idden** component onto the canvas, placing it below the **readOfflineSubmissions** **B****rowser Storage** component. 2. 2.In the Property ID and Label Text fields, enter `hiddenOfflineSubmissions`. 3. 3.Click **Save Component**. 4. **Save** your module. Preview your module in Express View, and open the DevTools Console. Open the object to see the [submission data](/v1/docs/submission-data) created from the front-end source module. ## [![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_12_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%2012.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) Structure of a Browser Storage Component's Data The IndexedDB stores data in an array of objects. Each object contains the [submission data](/v1/docs/submission-data) collected in the front-end module. [![A static image displaying the Data Structure of a Browser Storage object.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_DataStructure_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20DataStructure.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) The **Browser Storage component** lets you add, edit, delete, and retrieve data in an end-user's browser. The [component](/v1/docs/module-builder-component-library) stores data using the [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) API. IndexedDB is a large storage service for encrypting and storing data in a browser. This API lets you store large amounts of structured, indexed information locally, letting you filter and search this information. Data stored in a browser expires after 30 days. The expiration time resets when the end-user accesses the data. > [!NOTE] > Only end-users can access the encrypted data stored on their browser. You'll find the Browser Storage component in the [Data & Event Processing](/v1/docs/welcome-to-the-data-amp-event-processing-components) group to the left of the [Module Builder](/v1/docs/introduction-to-the-module-builder). ## About the Configuration Window > To learn more about general component settings, view our [General Component Settings](/v1/docs/general-component-settings) article. ## Display Panel [![A static image displaying the Browser Storage component's Configuration Window Display settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Display_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Display.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Canvas Label Text** | Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. User-friendly labels make your module more accessible. Keep labels short and descriptive (a word or two) using title case. For longer entries, use sentence case. | ## Data Panel [![A static image displaying the Browser Storage component's configuration window Data settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Data_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Data.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Interaction Type** | The Browser Storage component has the following options: - **Write**: This interaction lets you create and update data in the IndexedDB object store. Use the component's Filters table when creating or updating information. If there's information you want updated, enter the Property ID of that information in the Filters table. The component filters on that Property ID and merges or overwrites the information. If there's no match to the Property ID, or the field is blank, the component creates a new submission. - **Read**: This interaction views filtered data. It also searches for individual offline submissions. To find offline data, use the suffix: /display/:formId/local/:namespace/:submissionId, like you do when searching for a specific submission ID. The Namespace is the unique identifier you created for your stored information. - **Delete**: This interaction deletes locally-stored data from the IndexedDB object. > - To learn more about the IndexedDB API, view the following documentation: [https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API×) | | **Namespace** | A Namespace is required. This is a unique label applied to the information you store in the IndexedDB object. The Read, Write, and Delete interactions happen only to the data entered in the Namespace. > [!TIP] > It's best practice to use your module's unique module ID in the Browser Storage component's Namespace. For example, inspections5ffddf6ae336b802494437c8, where 5ffddf6ae336b802494437c8 is the module ID of the front-end source module. The Namespace is where the source module stores its data on the browser.Only use **Property IDs** or [grid syntax](/v1/docs/grid-syntax-and-output-snippet) in and tables, unless referring to nested data in a [Plug-In component](/v1/docs/plug-in-component). The Namespace field uses autocomplete to suggest Namespaces used elsewhere in the environment. | #### Data - Filters Table [![A static image displaying the Browser Storage's Data Filter settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Data_Filters_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Data%20Filters.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Filters** | The Browser Storage component's Filters table helps you find information stored in the browser's IndexedDB object store. | | **Property ID** | This is the Property ID of the stored information. Mapping to this Property ID performs the Write, Read, and Delete operations to that data. > [!TIP] > The Property ID entered must match the Property ID used in the input component. Remember, use camel case without spaces or punctuation. | | **Set Filter To** | This drop-down lets you select how you want to compare the Filter’s **Property ID** to its **Mapping**. Your options are: =, <, or >. | | **Mapping** | Mapping describes where in the stored data you're filtering. This mapping information tells the component what data send or call when triggered. | | **Required** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), the end-user must enter a value in the field of this input component before the logic component executes. By default, this setting is ☐ (**unchecked**). | | **Exclude** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), the filter operation does not run when you trigger the Browser Storage component. By default, this setting is ☐ (**unchecked**). | | **Optional** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), or if the field has no value, the operation does not run when you trigger the Browser Storage component. By default, all inputs in the request body progress, even if the field is empty (null). By default, this setting is ☐ (**unchecked**). | | **Replace** | This setting is only available when the Interaction Type is set to **Write**. If this setting is ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(ON)**, the entire data object is replaced when you make changes. If this setting is ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)**, the new data merges into the data object. By default, this setting is ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)****.** | #### Data - Inputs Table Input settings are only available for the Write operation. [![A static image displaying the Browser Storage component's Data Inputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Data_Inputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Data%20Inputs.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Property ID** | This Property ID refers to your triggering component. Use this field to enter values that you send to the browser’s IndexedDB object store. | | **Mapping** | API documentation includes mapping information. This mapping information tells the Browser Storage component which information to send or call from the browser's IndexedDB object store. > Discover more about the Unqork API documentation here: [https://developers.unqork.io/](https://developers.unqork.io/). | | **Required** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), the end-user must enter a value in the field of this input component before the logic component executes. By default, this setting is ☐ (**unchecked**). | | **Exclude** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), the component does not pass the field as part of the request body of the API call. The component still watches for changes to the value. By default, this setting is ☐ (**unchecked**). | | **Optional** | If ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/image(43).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) (**checked**), and the field has no value, the operation does not run when triggered. By default, all inputs in the request body work, even if the field is empty (null). By default, this setting is ☐ (**unchecked**). | #### Data - Outputs Table [![A static image displaying the Browser Storage component's Data Outputs table.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Data_Outputs_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Data%20Outputs.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Property ID** | This Property ID is where you want the component to send the data retrieved from your browser. For your logic component to recognize an output, you must enter the destination component's Property IDs. > [!TIP] > The Property ID you enter must match the Property ID used in the output component. Remember, use camel case without spaces or punctuation. | | **Mapping** | Map Property IDs according to API specifications. Mapping tells your component what to retrieve from the browser. For example, enter 0.data.storedExample to retrieve the first stored submission. The [0] represents your first saved record, [1] is the second, and so on. | ## Actions Panel [![A static image displaying the Browser Storage component's Configuration Actions settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Actions_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Actions.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) #### Triggers | Setting | Description | | --- | --- | | **Post** | Enter the Property ID of the component that you want to trigger after the Browser Storage component completes the API call. For example, triggering a component to display the data received from the Browser Storage component's API call. | | **Error** | Enter the Property ID of a component that you want to trigger on the failure of the API call. | ## Advanced Panel [![A static image displaying the Browser Storage component's Advanced settings.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Advanced_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Advanced.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) | Setting | Description | | --- | --- | | **Disable Execution** | If Disable Execution is set to ![A toggle switch indicating an on/off state for a user interface element.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 1.png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(ON)**, the logic tied to this component does not execute. Use this to keep the component's settings, but disable the operations it performs. By default, this setting is set to ![A toggle switch in the 'on' position, indicating an active setting or feature.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Group 2(1).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) **(OFF)****.** | | **Set Debounce** | The number of milliseconds that pass before the module loads this component. This is useful if you have a large module and you load several components at the same time. > [!NOTE] > 1,000 milliseconds = 1 second. | ## Adding a Browser Storage Component First, you'll configure a survey application for use offline. This survey has fields for a surveyor's name, the date surveyed, and other various criteria. This front-end module lets you input values that a Browser Storage component writes to the browser cache. For a completed example, view the training environment module here: [https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit](https://training.unqork.io/#/form/5ffddf6ae336b802494437c8/edit). This example assumes you have a module saved and with a title. ### Configure the Initializer Component This [Initializer](/v1/docs/initializer-component) component triggers the Browser Storage component to retrieve submission data from the browser. 1. In the Module Builder, drag and drop an **I****nitializer** component onto your canvas. 2. In the Property ID and **Canvas Label Text** fields, enter **initGetOfflineSubmissions**. 3. From the component's configuration window, select **![Actions Icon](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/actions_icon(13).png?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) Actions**. 4. From the **Trigger Type** drop-down, select **New Submission**. 5. In the **Outputs** table, enter the following: | | Property ID | Type | Value | | --- | --- | --- | --- | | 1 | **readOfflineSubmissions** | trigger | GO | > [!NOTE] > This Property ID matches the Browser Storage component you'll set up next. [![A static image displaying the Initializer component's Acction settings. The Trigger Type is set to New Submission and the Outputs Table includes a row with the readOfflineSubmissions property ID.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Initalizer_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Initalizer.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) 6. Click **Save & Close**. ### Configure the Browser Storage Component Next, you'll configure a Browser Storage component to retrieve the data from your browser’s storage, using the **Read** interaction to view offline submissions. 1. Drag and drop a **B****rowser Storage** component onto your canvas, placing it below your **initGetOfflineSubmissions** **I****nitializer** component. 2. In the Property ID and **Canvas Label Text** fields, enter **readOfflineSubmissions**. 3. From the component's configuration window, select **D****ata**. 4. Set the **Interaction Type** to **Read**. 5. In the **Namespace** field, enter `inspections64838074792f7aa9e2e027bb`. 6. In the **Outputs** table, enter the following: | | Property ID | Mapping | | --- | --- | --- | | 1 | **hiddenOfflineSubmissions** | | > [!NOTE] > This Property ID matches the Hidden component you'll set up next. [![A static image displaying the Browser Storage component's Data Settings. The Interaction type is set to Read, the Namespace is filled, and the Outputs table contains the hiddenOfflineSubmissions Property ID.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_Browser_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20Browser.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) 7. Click **Save & Close**. ### Configure the Hidden Component Add a [Hidden](/v1/docs/hidden-component) component to store offline submissions made by the end-user. 1. Drag and drop a **H****idden** component onto the canvas, placing it below the **readOfflineSubmissions** **B****rowser Storage** component. 2. In the Property ID and **Canvas Label Text** fields, enter **hiddenOfflineSubmissions**. 3. Click **Save & Close**. 4. **Save** your module. **Preview** your module in Express View, and open the DevTools Console. Open the object to see the submission data created from the front-end source module. [![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_12_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%2012.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) ## Structure of a Browser Storage Component's Data The IndexedDB stores data in an array of objects. Each object contains the [submission data](/v1/docs/submission-data) collected in the front-end module. [![A static image displaying the Data Structure of a Browser Storage object.](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser_Storage_Component_DataStructure_thumb_0_0.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D)](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/Browser%20Storage%20Component%20DataStructure.jpg?sv=2026-02-06&spr=https&st=2026-11-08T10%3A18%3A03Z&se=2026-11-08T11%3A18%3A03Z&sr=c&sp=r&sig=LAW7nRyBxsHIHOAd8vFoof5sAhS2qBgJ44iVvnzfL3c%3D) ## Resources - [Modify the Browser Storage component using the toolbar settings](/v1/docs/component-toolbar-settings). - [Environment Administration](/v1/docs/environment-administration). - [Learn more about the IndexedDB API Call](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API). - [Discover more about the Browser Storage component on the Community Hub](https://community.unqork.com/feature-history-41/browser-storage-component-resources-enhancements-bug-fixes-and-updates-13341). End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. APIs (application programming interfaces) are a set of protocols and definitions developers use to build and integrate application software. APIs act as the connective tissue between products and services. The location of an element in an array. A Property ID is the unique field ID used by Unqork to track and link components in your module. Enter outputs components and actions you want the component to perform. A naming convention for computer programming. Use camelCase for Property IDs, for example: newUser, lastName, & rdoButton. A Property ID is the unique field ID used by Unqork to track and link components in your module. Also known as Record Data. Submission data consists of information saved by Unqork components. View submission data by using the angular command, or in Record Collections. Canvas Label Text indicates the purpose of the corresponding field or component. For non-input components, the Canvas Label Text isn't end-user facing, and only appears in the . End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. Express View is how your end-user views your application. Express View also lets you preview your applications to test your configuration and view the styling. This is also the view your end-users will see when interacting with your application. After configuring a module, click Preview in the Module Builder to interact with the module in Express View. The DevTools Console helps you securely store, build, test, and deploy your software. An array is a type of object that stores one or more data types. Data types supported in arrays include numbers, strings, and objects. An object is a type of data structure that represents a single, self-contained entity that acts as a container for the characteristics of that entity.