Skip to main content

What is a project data model?

Project Data Model
The Project Data Model (PDM) lets you define reusable data types at the project level. These data types propagate to the process data models, ensuring data consistency across ensuring data consistency across your FlowX.AI applications, including in Reusable Functions, Persistence Layer schemas, and other components. With PDM, you create a centralized data structure that serves as the foundation for all processes within your project. This ensures that core data types like Customer, Product, or Document maintain consistent definitions throughout your application.
Project Data Model

Key concepts

FlowX.AI supports several data model layers, each serving different purposes:
Data Model LayerDescription
Process Data ModelCan leverage data types defined in the Project Data Model or Library Data Model.
Project Data Model (PDM)Defines data types that can be reused across processes and other resources within the project
Library Data ModelDefined within a library. Allows data types to be reused across multiple projects, promoting standardization.
Data Model Types

Benefits of project data model

Consistency

Ensures data structure consistency across multiple processes and resources

Reusability

Define once, use many times across processes, business rules, and other components

Efficiency

Reduces development time by eliminating duplicate definitions

Maintainability

Centralized management of data structures

Standardization

Promotes the use of common data structures across projects

How to use the project data model

Access the project data model

1

Open FlowX.AI Designer

Open FlowX.AI Designer.
2

Navigate to your project

Select the project where you want to configure the Project Data Model.
3

Select Data Model

Select “Project Data Model” from the project menu.
Project Data Model

Define a project data model

1

Add a new data type

In the Project Data Model view, click + to add a new data type. A confirmation toast notifies you when the data type is created.
Add data type
2

Name the data type

Provide a name for the data type.
3

Add attributes

Each data type displays an Add attribute button for creating the first attribute. After the first attribute exists, the button appears only on hover over the data type.When you select an attribute, a settings side panel opens on the right where you can configure:
  • Attribute name and type (string, number, boolean, object, array, enum)
  • Validations, sensitive data, and reporting settings
  • Example values for data mapping
Add attributes
Available starting with FlowX.AI 5.5.0The Data Model interface has been redesigned with an attribute settings side panel, inline add-attribute buttons, and attribute path display. See Process Data Model for details on the updated interface.

Manage data types

Add a data type

  1. Click + in the Data Types panel.
  2. Enter the name and properties of the data type.
  3. Use the inline Add attribute button on the data type to add attributes.
  4. Save changes.

Edit a data type

1

Select the data type

Select the data type in the Project Data Model.
2

Select an attribute

Click an attribute to open the settings side panel on the right with all configuration options.
3

Edit the attribute

Edit the attribute settings as needed. Changes are saved automatically.

Attribute path

Each attribute displays a path button next to its name. Click it to view the full key path and copy it to your clipboard. This is useful when referencing keys in business rules, UI component bindings, or integration mappings.
Changes to data types propagate to all processes referencing them. If a process is using this data type, it will automatically get the updated structure.
However, changes do NOT propagate to UI Designer paths, which will need to be adjusted manually.

Remove a data type

1

Select the data type

Select the data type to remove.
You can either delete an entire object or just a single attribute.
Delete data type
2

Click remove

Click the remove button.
3

Confirm deletion

You can delete the data type even if it’s in use. The system will show you a warning message indicating which processes reference the data type.
If the data type is in use by processes, you will receive a warning message showing which processes reference it. You can still proceed with the deletion, but this may affect the referenced processes.Delete data type

Working with referenced data types

When a data type from the Project Data Model is used in a Process Data Model:
  1. The Process Data Model will display the referenced data type.
  2. The referenced data type cannot be modified at the process level.
  3. Changes to the data type in the Project Data Model will propagate to all referencing processes.

Common scenarios

1

Access PDM

Navigate to the Project Data Model.
2

Make changes

Make changes to an existing key or attribute.
3

Propagation

The changes automatically propagate to all processes using that key.
4

Updates

Referenced components in processes will be updated to reflect the changes, but UI Designer paths require manual adjustment.

Use the Project Data Model in processes

  1. Navigate to a process within your project.
  2. Open the Process Data Model.
  3. Project data types are available for selection.
  4. Select the desired project data type to use in your process.
  5. The data type is added to your Process Data Model, maintaining reference to the Project Data Model.

Work with libraries

Library PDM

Integrate Library Data Models

  1. Navigate to your project dependencies.
  2. Add a library as a dependency. The library must have a build created.
Library PDM
  1. Library data types become available in your Project Data Model.
Library data types are not visible by default! You must select the library source in the filter to display them.
To filter by library types you can use the “Filter by source” feature.
Library PDM
  1. You can now use the library data types in your data model.
Library PDM

Handle duplicate types from libraries

When multiple libraries contain data types with the same name:
  1. Both types will be visible in the Project Data Model with visual indicators.
  2. Namespacing functionality will prevent technical issues.
Library PDM

Configure reporting and sensitive data settings

You can configure reporting and sensitive data settings directly from the attribute settings side panel:
  1. Go to the Project Data Model.
  2. Select an attribute to open the settings side panel.
  3. Toggle Sensitive data or Use in Reporting as needed.
Reporting Sensitive
These settings apply to all instances of the attribute across processes.
You can also access these settings from the three-dots menu in the upper right corner of the side panel → Show details.

Project Data Model after version commitment

After committing a project version:
  1. The Project Data Model becomes read-only.
  2. You can still view the diagram and monitor usage.
  3. This read-only configuration is available for any configuration on committed versions and applies also to resource data models.
PDM after version commitment
  1. To make changes to the data model, you will require a new project version.
PDM after version commitment

Search and filter

The Project Data Model interface provides tools to help you find and work with your data types:
  1. Navigate to the Project Data Model.
  2. By default, only project-level types are displayed.
  3. Use filters to view library types as well.
  4. Use the search function to find specific types by name.

Update library dependencies

When updating library dependencies:
  1. Navigate to the dependencies section.
  2. Select the new library version.
  3. The system will inform you of any breaking changes to data types.
  4. You can decide whether to proceed with the update.
  5. If you proceed, changes will propagate to processes according to compatibility rules.

Real-world example: Insurance claims processing

This example demonstrates how an insurance company uses project data model for their claims processing system.
The insurance company created these data types in their Project Data Model:
Insurance PDM
  1. Customer
    • customerId: string
    • firstName: string
    • lastName: string
    • dateOfBirth: date
    • contactInformation: ContactInfo (reference)
    • policyNumbers: array of string
    • customerSince: date
    • riskProfile: RiskProfile (reference)
    • Settings: Sensitive data = True, Used in reporting = True
  2. ContactInfo
    • email: string
    • phone: string
    • address: Address (reference)
    • Settings: Sensitive data = True, Used in reporting = False
  3. Claim
    • claimId: string
    • policyNumber: string (reference to Policy)
    • claimType: enum [“Auto”, “Property”, “Medical”, “Liability”]
    • incidentDate: date
    • reportedDate: date
    • status: enum [“New”, “Under Review”, “Pending Documents”, “Approved”, “Denied”, “Closed”]
    • estimatedAmount: number
    • approvedAmount: number
    • documents: array of Document (reference)
    • Settings: Sensitive data = False, Used in reporting = True
  4. Document
    • documentId: string
    • documentType: string
    • fileName: string
    • fileUrl: string
    • uploadDate: date
    • Settings: Sensitive data = False, Used in reporting = False
The company created multiple processes using the PDM:
Root: ClaimProcess
Auto Claim Processing
Data Structure:
  • ClaimProcess (Process-specific type)
    • claim: Claim (reference from PDM)
    • assignedAdjuster: string
    • vehicleInfo: AutoClaimDetails (reference)
    • processingStage: enum [“Initial Review”, “Damage Assessment”, “Liability Determination”, “Settlement Negotiation”, “Payment Processing”]
  • AutoClaimDetails (Process-specific type)
    • vehicleMake: string
    • vehicleModel: string
    • vehicleYear: number
    • vin: string
    • accidentLocation: Address (reference from PDM)
    • damageDescription: string
  1. A configurator adds a new attribute loyaltyTier to the Customer data type in the PDM.
  2. This attribute is an enum [“Bronze”, “Silver”, “Gold”, “Platinum”].
  3. The new attribute automatically propagates to all processes using the Customer data type.
  4. The Policy Renewal Process now has access to the customer’s loyalty tier without any process-level changes.

This example shows how the Project Data Model:
  • Ensures data consistency: Core entities like Customer and Policy maintain consistent structures across all processes and resources.
  • Promotes reusability: Common data types are defined once and reused in in multiple processes, business rules, and other resources.
  • Simplifies changes: Updates to data types are propagated automatically to all processes.
  • Enforces governance: Sensitive data is marked at the project level for consistent handling.
  • Allows flexibility: Process-specific data can extend the PDM while maintaining core data integrity.

Export and import

You can export and import project data types to transfer them between projects or environments.

Exporting

To export project data types:
  1. Open the context menu on the Project Data Model page
  2. Select Export
  3. The data types are downloaded as a ZIP file

Importing

To import project data types:
  1. Open the context menu on the Project Data Model page
  2. Select Import
  3. Select the ZIP file exported from another project or environment
  4. If data types with the same identifiers already exist, a Review Resource Identifiers Conflicts modal appears
  5. Choose a strategy for each conflicting data type (or use Apply to all):
    • Keep both - imports the data type as a new copy alongside the existing one
    • Replace - overwrites the existing data type with the imported version
    • Skip this one - keeps the existing data type unchanged
  6. Click Continue to complete the import
Importing is only available for work-in-progress (WIP) project versions. You cannot import into a committed version.

Best practices

Plan before implementation: Design your Project Data Model before creating processes to ensure consistency.
Always provide example values: Example values will be used in data mapping and other operations.
Use descriptive names: Choose clear, descriptive names for data types and attributes.
Document your model: Add descriptions to data types and attributes for better understanding and for AI agents.
Consider reusability: Design data types with reusability in mind across processes and resources.
Review impact of changes: Before modifying data types, check their usage across processes.
Use libraries for cross-project standards: For data types needed across multiple projects, define them in libraries.
Maintain regularly: Periodically review and clean up unused data types.

Limitations

Troubleshooting

1

Problem

You’re trying to edit a data type from the PDM within a process, but the fields are read-only.
2

Solution

Make changes at the project level instead:
  1. Navigate to the Project Data Model
  2. Locate and edit the data type
  3. Save changes
  4. The changes will propagate to all processes
1

Problem

You’re trying to delete a data type, but receive an error that it’s in use.
2

Solution

Either:
  • Remove all references to the data type first
  • Create a new version of your project to make the change
1

Problem

After changing a data type (e.g., from string to number), references are broken in processes.
2

Solution

Review affected processes and update references manually:
  1. Check the warning message that lists affected processes
  2. Open each process
  3. Update UI templates or other components that referenced the changed attribute
1

Problem

When updating a library dependency, you receive warnings about breaking changes to data types.
2

Solution

Carefully review the changes and their impact before proceeding:
  1. Check which data types are affected
  2. Review how these types are used in your processes
  3. Decide whether to proceed with the update or maintain the current version
Last modified on February 27, 2026