Guide
There are several ways to bring data into Fibery, and importing good old CSV files is one of them.
How to import data using CSV import
To import data into a new Database:
Click + in the sidebar next to the Space where the new Database should belong to;
Select Database → Import from… → CSV
To import data into an existing Database:
Make sure the Databases are visible in your Space
Click … context menu for the desired Database
Select Import from… → CSV
If you are just a regular user and don't see the Database in the sidebar, you can find the same Import from… option on any Table View.
How to map CSV columns to Fibery Fields
Before uploading your CSV file, make sure that:
the first row includes headers;
the file size is less than 50 MB.
As soon as you upload the file, you'll be able to map columns to Fibery Fields:
We try our best to guess the Field type based on the data, but you can always manually correct it. When importing into an existing Database, you can both select existing Fields or create new ones. If you don't want to import a particular column, you can skip it.
Here's sample.csv with all kinds of columns to serve as a reference.
Here are tips for some tricky data formats.
Data formats
It's possible to specify more details for numerical data, when importing from CSV (or when integrating data from external sources). This includes being able to choose how the number will be interpreted and represented:
number (integer or decimal, unit)
money (integer or decimal, currency)
percent (scaling)
Find these in the field setting dropdown and via the gear symbol.
Relations
You can choose what should happen when imported or synced relation fields contain values that don’t match any existing entities:
Create new entities – Fibery will automatically create missing related entities (e.g. new Tasks, Tags, etc.) and link them.
Skip – Fibery will ignore only the unknown values, while still linking any that already exist.
Self-relations (e.g. Tasks → sub-Tasks)
To import a nested hierarchy (e.g. Task → Tasks → Tasks → …), include a column that specifies the name of the parent of each row. Then map this column to Relation to… → <DB you are importing into>.
The same applies if you have a many-to-many self-relation (e.g. dependencies). Pick any side (e.g. Blocked By or Blocking) and include the corresponding column. Make sure to select Many prefix in this case:
Dates
When importing (or syncing) data into Fibery, your date fields might not be in a format that Fibery can recognise and interpret. It's possible to tell Fibery what format is used for each date field in the data that will be ingested.
Percentages %
A percent in Fibery is a number between 0 and 1. So if you enter 100, it becomes 10000%.
What are the options?
Locations
Format that we support should be like this https://www.npmjs.com/package/coordinate-parser.
How to update existing data via CSV
When you import a CSV file into an existing Database, some rows in your file might correspond to existing entities.
There are three options on how to deal with such records:
Always create an entity per row, regardless of whether it's a duplicate.
Update existing entities when found based on a specific Field.
Skip duplicates when found based on a specific Field.
If you pick updating or skipping, we'll ask you to select a Field to detect matching records:
Example
Imagine, this is your Dogs DB:
Name | Score | Last Reviewed At |
Winnie | 13 | 2025-08-14 |
Doug | 14 | 2025-08-13 |
Milo | 12 | 2025-08-07 |
And this is the CSV file you are importing:
Name | Score | Last Reviewed At |
Winnie | | 2025-09-30 |
Milo | 14 | 2025-09-20 |
Horus | 14 | 2025-09-15 |
Here's what you get depending on the way you choose to treat duplicates.
Create new Dogs:
Name | Score | Last Reviewed At |
Winnie | 13 | 2025-08-14 |
Doug | 14 | 2025-08-13 |
Milo | 12 | 2025-08-07 |
Winnie | | 2025-09-30 |
Milo | 14 | 2025-09-20 |
Horus | 14 | 2025-09-15 |
Updating existing Dogs based on Name:
Name | Score | Last Reviewed At |
Winnie | | 2025-09-30 |
Doug | 14 | 2025-08-13 |
Milo | 14 | 2025-09-20 |
Horus | 14 | 2025-09-15 |
An empty cell in a CSV file clears the existing value.
Rich-text contents and to-many relations are always overriden, not merged, if they are present in the import.
Skip duplicates based on Name:
Name | Score | Last Reviewed At |
Winnie | 13 | 2025-08-14 |
Doug | 14 | 2025-08-13 |
Milo | 12 | 2025-08-07 |
Horus | 14 | 2025-09-15 |
Supported Fields to detect duplicates
When updating existing entities or skipping duplicates, you provide a Field that we will use to look for matches.
This has to be an existing Database Field selected in the mapping above. These are the supported Field types:
Text (incl. Name)
Email
URL
Number (without decimal places, aka Integer)
Phone
Date (without time or range)
Edge cases
Scenario | Duplicate treatment | Outcome |
Duplicates already present in the Database | Update existing | The entity created last will be updated |
Duplicates in the CSV file | Always create | No exceptions necessary |
Update existing | The later rows override the earlier rows' values |
Skip duplicates | 2nd+ rows with the duplicate value are skipped |
Updated Field values are required to be unique | Update existing | If at any point during import, the uniqueness is violated, the import fails. |
Admins can choose whether to map users by Name or Email when importing data.
Note that it is not creating new users, users must already exist in the workspace
Who can import data via CSV
Anyone who has the permission to create entities can import them as well, even a Submitter. Navigate to any Table View and select Import from… from the actions menu:
Depending on the selected way to treat duplicates, additional permissions might be required:
| Always create | Update existing | Skip duplicates |
Create entities in the Database | + | + | + |
See all entities in the Database | | + | + |
Update all entities in the Database | | + | |
FAQ
How to import unique characters? (like diacritics, etc.)
Please, use Unicode to save your CSV and then upload it as usual.
How comma-separated values work?
When importing a CSV that contains a relation field with multiple values (for example a “Blocked by” dependency list), only the first item from the list gets linked, while the rest are ignored. Fibery expects multiple relation values in a CSV to be separated strictly by a comma (,) with no spaces after it.
If the values are written with a comma and a space, the importer treats the second value as having a leading space, which prevents it from matching an existing entity.
Example:
CSV Value | Result |
|---|
Hello, Goodbye
| Links Hello, but fails to match Goodbye (because it becomes " Goodbye") |
Hello,Goodbye
| Correctly links Hello and Goodbye |