Skip to main content

What are Sheets?

Sheets are individual data tables within Workbooks that organize and structure imported data. Each Sheet represents a distinct data type or entity, similar to tables in a database or tabs in a spreadsheet. Sheets serve as containers for Records and are defined by Blueprints that specify their structure, validation rules, and data types. They provide the fundamental building blocks for organizing data within the Flatfile platform.

Basic Blueprint Structure

Basic Sheet Definition

The following examples demonstrate the configuration of isolated Sheets, which are intended to be used in the context of a Workbook configuration.

Single-Sheet Sheet Configuration

This example configures a single Sheet containing three Fields and one Action and defining access controls.

Sheet level access

With access you can control Sheet-level access for users.
If you use "*" access control, users will gain new functionalities as we expand access controls. Use an exhaustive list today to block future functionality from being added automatically.

Sheet Constraints

Sheet constraints apply validation rules across multiple fields or entire sheets. These constraints ensure data integrity at the sheet level and work in conjunction with field-level constraints.

Composite Uniqueness

Ensures that combinations of multiple field values are unique across all records in the sheet. This is useful when individual fields can have duplicate values, but their combination should be unique.

Configuration Properties

Strategy Options: Config Options:

Choosing the Right Strategy

The strategy property determines how uniqueness is calculated. You can choose to simply concatenate the field values as a single string or use a SHA1 hash function to create a unique identifier. Consider the following when choosing a strategy: Use concat when:
  • You aren’t concerned about concatenation collisions (see example below)
  • Performance is critical (string concatenation is faster than SHA1)
  • You have short/consistent value sizes
Use hash when:
  • You want to avoid concatenation collisions
  • You aren’t concerned about the performance cost (SHA1 calculation is slower than string concatenation)
  • You have long/inconsistent value sizes (SHA1 hashes are always 20 bytes)
Concatenation Collision Example: In this example, the concat strategy would consider the following records to be duplicates:
Constraint configuration with concat strategy:
This is because both records have the same concatenated value:
But the hash strategy would prevent this, because the hash function creates a unique identifier based on each field’s invividual value rather than a simple concatenation.
Constraint configuration with hash strategy:

Conditional Validation with Required Fields

The requiredFields property enables conditional uniqueness validation. When any field specified in requiredFields is empty (null, undefined, or empty string), the entire constraint is ignored for that record. Use Cases:
  • Partial data imports - Allow incomplete records during staged import processes
  • Optional relationships - Handle cases where some composite key fields are optional
  • Data migration - Gradually enforce constraints as required fields get populated
  • Conditional business rules - Only enforce uniqueness when critical fields have values
Important Notes:
  • requiredFields should contain only fields that exist in the fields array
  • If ANY required field is empty, the constraint is completely ignored
  • Empty fields are: null, undefined, or empty strings ("")
  • If requiredFields is omitted, the constraint always applies

Example: Customer Registration System

Consider a customer registration system where you want unique combinations of email and company, but only when email is provided:
Data Behavior: Without requiredFields: All records would be validated, potentially causing errors during partial data imports.

Example: Multiple Required Fields

For more complex scenarios, you can specify multiple required fields:
In this case, the constraint only applies when both orderId and productId have non-empty values. If either is empty, the entire constraint is ignored.
Individual field constraints like required and unique are covered in Field Constraints.

Collections

Collections provide a way to organize Sheets within a Workbook into named groupings in the Flatfile UI. This helps to visually organize complex Workbooks with many Sheets, making it easier to navigate and understand the data structure. Collections have no functional impact on the data itself; their only purpose is to help you organize your Sheets visually.

Configuring Sheets with Collections

Assigning a Collection to a Sheet is as simple as adding a collection property to your Sheet Blueprint when configuring your Space (or otherwise creating or updating a Sheet via the API). If you add the same Collection to multiple Sheets, they will be grouped together in the UI. The following example depicts a Blueprint defining a single Workbook with three Sheets organized into two Collections: Source Data with one Sheet, and Processed with two Sheets.
Workbooks also have a similar feature called Folders, which you can use to group associated Workbooks.You can think of Folders and Collections like a filing system:
  • Folders help you organize your Workbooks within a Space (like organizing binders on a shelf)
  • Collections help you organize Sheets within each Workbook (like organizing tabs within a binder).

An example of Sheets grouped by Collection

Sheet Treatments

Sheets have an optional treatments parameter which takes an array of treatments for your Sheet. Treatments can be used to categorize your Sheet and control its behavior. Certain treatments will cause your Sheet to look or behave differently.

Reference sheets

Giving your Sheet a treatment of "ENUM_REFERENCE" will mark it as reference data for other sheets. Reference sheets are currently hidden from view, allowing you to generate a number of reference values without adding visual distraction for the user.
Dynamic EnumsThis feature, along with the Reference Field Filtering feature, may be collectively referred to as Dynamic Enums. By combining these two features, you can create a drop-down list for any cell in your sheet that’s dynamically controlled by the value of another field in the same record – and to the end-user, it will just work like a dynamically-configured enum field.
Please note that this feature is not intended for situations where PII or other sensitive data must be hidden from view of the user - for situations like that, reach out to support or your CSM for best practices.
Currently, "ENUM_REFERENCE" is the only treatment that changes the behavior of your Sheet.

Sheet Options

Configurable properties for a Sheet that control its behavior and appearance: