--- title: "Using Data Models in Modules" slug: "using-data-models-in-modules" updated: 2026-09-15T17:01:50Z published: 2026-09-15T17:01:50Z canonical: "docs.unqork.io/using-data-models-in-modules" --- > ## 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. # Using Data Models in Modules When a module links to a Data Model, the Data Model's schema fields display in the component tray as draggable building blocks. Dragging a field onto the canvas adds a pre-configured component bound to that field for data storage and retrieval. Creators build forms from a shared data definition instead of configuring each component's storage settings individually. ## When to Use Data Model Bindings Link a module to a Data Model when any of the following apply: - Multiple modules must read and write the same record structure, and the data definition should be shared instead of repeated. - Components need schema-validated data storage, not ad hoc submission fields. - The team wants the Module Builder to pre-configure components automatically from a Schema instead of setting up each field individually. Self-contained forms that store data only for their own module work well with standard submissions and do not need Data Model integration. ## Linking a Data Model to a Module 1. Open the module in the Module Builder. 2. In the module toolbar, select the … (**ellipsis**) icon and choose **Settings**. 3. In the **Module Details** section, locate the **Data Models** field. 4. Select one or more Data Models from the list. Only Data Models in the current workspace are available. 5. Select **Save** to apply the change. **Data Models** becomes available in the library drop-down in the **Components** tab after the settings are saved. > [!NOTE] > A Data Model can only be removed from the module when no components in the module are bound to it. When active bindings exist, the platform prevents removal and displays an error. ## Using the Data Models Library After a Data Model is linked, open the **Components** tab in the component tray, select the library drop-down, and choose **Data Models** to browse the available fields. ![[docs-mockup:DocsDataModelTrayMockup] Data Model component tray](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/base64-converted-image-1789491607021.png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A30%3A49Z&se=2026-11-04T10%3A30%3A49Z&sr=c&sp=r&sig=7BSsqz%2BvbmbsIKoOcjujQREhcQj8v3NB5MtvwCp%2B6sM%3D) Fields are organized by Data Model. Hover a chip on the mockup above to highlight and navigate to the description of that column. Each field row displays the following: | Column | Description | | --- | --- | | **Name** | The field name as defined in the Schema. | | **Type** | The JSON Schema data type: string, number, integer, boolean, object, array, or null. | | **Required** | A badge that displays when the field is marked as required in the Schema. | Fields inside object-type fields display as nested sub-rows. Expand a parent field to browse its children. ## Adding Components from Data Models To add a component bound to a schema field: 1. In the **Data Models** library, locate the field you want to use. 2. Drag the field row onto the Component Tree canvas. The platform creates a component pre-configured with the following: - **Label**: The field name from the Schema. - **Property key**: The field in the Schema. - **Data binding**: A connection to the Data Model that tells the runtime which fields to read and write. The component type is selected automatically based on the field's data type. For example, a `string` field produces a Text Field component, a `boolean` field produces a Checkbox component, and a `number` field produces a Number component. ## Understanding Component Binding A binding connects a module component to a specific field in a Data Model. When an end-user interacts with a bound component: - The component reads its initial value from the matching field in the Data Model record. - When the end-user submits the module, the component writes its value back to that field. The binding is stored on the component and is visible in the component's **Properties** panel. The binding includes the Data Model ID and the field path. > [!WARNING] > Binding is set automatically when you drag a field from the **Data Models** library. Editing a binding manually in the Properties panel is advanced usage. An incorrect field path or Data Model ID will cause data to be read from or written to the wrong location. --- **Changelog** | Date | Change | | --- | --- | | 2026-09-09 | Corrected "Data Models tab" references to "Data Models library" throughout; updated step 5 and section headings to reflect that Data Models is a library drop-down option within the Components tab, not a sibling tab (EN-8098). | | 2026-09-09 | Editorial review (EN-8098): "IDE" → "platform" (×2); See Also links to em dash format; capitalized bullet text after bold labels; removed terminal prepositions (×2); description rewritten as declarative sentence. | | 2026-08-05 | Added Data Models tray mockup with Name, Type, and Required hotspots. Style corrections. | | 2026-08-03 | Initial publication. | Schema is a declarative language that defines the structure, content, and constraints of the data. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. Data types are a classification of data that determines how it is stored and interpreted. A string is an object that represents a sequence of characters. Strings typically hold data represented in text form. 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. An array is a type of object that stores one or more data types. Data types supported in arrays include numbers, strings, and objects. Label Text conveys what the input component is and what information it displays. Enter the purpose of the corresponding component or field. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. The Number data type accepts integer or floating point values. The number data type does not use quotes around numerical values. 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.