How to Use Notion Relation Property With Bulk Add From CSV Import
🔍 WiseChecker

How to Use Notion Relation Property With Bulk Add From CSV Import

When you import a CSV file into a Notion database, the Relation property does not automatically link to existing records in another database. This limitation often causes confusion because the CSV data contains text values that should become linked entries. Notion treats CSV imports as plain text columns, so a column named “Project” in your CSV will not create a relation to your Projects database unless you set it up manually. This article explains how to prepare your CSV file, configure the Relation property during or after import, and use a formula-based workaround to bulk link rows without clicking each one.

Key Takeaways: How to Bulk Link a Relation Property From CSV Import

  • Database view > Add a view > Create a linked database: Use this method to display related records from another database after CSV import.
  • Formula property with concat() and slice(): Build a temporary formula column that generates a clickable link to the target database record.
  • Relation column during import: Notion does not support mapping a CSV column directly to a Relation property — you must create the relation after import and use a workaround.

ADVERTISEMENT

Why Notion Cannot Map a CSV Column to a Relation Property

Notion’s CSV import process reads each column as a plain text or number type. When you import a CSV that contains a column named “Project” or “Client,” Notion creates a Text property for that column. It does not examine the column values and try to match them to existing database records. The Relation property in Notion is a special property type that stores a link to a specific row in another database. Because the CSV format has no concept of database IDs or internal Notion references, the import cannot create these links automatically.

The root cause is that Notion’s import engine treats CSV data as static strings. Even if your CSV column contains the exact title of a record in your target database, Notion will not recognize it as a relation target. You must first import the CSV into a temporary database, then use a formula or a script to convert the text values into actual relation links. This article covers two reliable methods for completing that conversion.

Steps to Import a CSV and Link Rows Using a Formula Workaround

This method works best when you have a small to medium database (under 500 rows) and the target database has a unique title column. You will import the CSV into a new database, create a formula that generates a URL to the matching record, and then open each link to manually establish the relation. While this is not fully automatic, it is much faster than creating each relation one by one.

  1. Create a new database from the CSV file
    Go to the page where you want the database. Click Add a page or press Ctrl + N. Select Table or Database from the template picker. Then click Import at the top of the view and choose your CSV file. Notion will create one property for each CSV column.
  2. Identify the column that will become the relation
    Look for the column in your new database that contains the titles of records in the target database. For example, if the target database is “Projects” and your CSV has a column called “Project Name,” that is the column you will use.
  3. Create a formula property that builds a clickable link
    Add a new property to your imported database. Set the type to Formula. In the formula editor, enter the following code, replacing “Project Name” with the name of your text column and “Projects” with the exact name of your target database:
    "[" + prop("Project Name") + "](" + "https://www.notion.so/" + replaceAll(id(prop("Project Name")), "-", "") + ")"
    This formula creates a markdown link that points to the record in the target database whose title matches the CSV value. Note that this formula works only if the target database records have the exact same title as the CSV value.
  4. Copy the generated link into a browser or Notion
    Click the formula result cell. It will display as a clickable link. Right-click the link and choose Copy link address. Open a new tab and paste the URL. Notion will open the matching record in the target database. Copy the URL of that record from the browser address bar.
  5. Create the relation manually using the copied URL
    Return to your imported database. Add a new Relation property that points to the target database. In the cell for the row you are linking, click the relation cell and paste the URL you copied. Notion will create the link. Repeat steps 4 and 5 for each row.

Using the Notion API for Truly Automated Bulk Linking

If you have programming experience or are comfortable with no-code tools like Zapier or Make, you can automate the entire process using the Notion API. The API allows you to read the imported database rows, query the target database for matching titles, and update the relation property on each row. This method requires an integration token and a small script. Notion provides official API documentation with examples in Python and JavaScript. For most business users, the formula workaround above is sufficient and does not require any coding.

ADVERTISEMENT

If the Formula Method Does Not Create Valid Links

The target database record title does not match the CSV value exactly

The formula relies on an exact match between the CSV cell value and the title property of the target database record. If there are extra spaces, different capitalization, or special characters, the URL will be invalid. Before importing, clean your CSV data to match the target database titles. Use Excel or Google Sheets to trim spaces and standardize case with formulas like =TRIM() and =PROPER().

The formula returns an error because the target database has no matching record

If the CSV value does not exist in the target database at all, the formula will produce a broken link. In that case, you must first create the missing record in the target database. After adding the record, rerun the formula by editing any cell in the row and pressing Enter. The link will update to point to the new record.

Linked database view does not show the related records

After creating the relation property, you may want to display related fields in your imported database. Create a new Linked database view by clicking Add a view and selecting Linked database. Choose the target database as the source. Then add a filter to show only records that match the relation property. This view will automatically update as you add more relations.

Manual Relation Entry vs Formula Workaround vs API Automation

Method Time per Row Requires Coding Best For
Manual relation entry 10–15 seconds No Fewer than 20 rows
Formula workaround 30–40 seconds (copy + paste) No 20 to 500 rows
Notion API automation Instant (after script runs) Yes 500+ rows or recurring imports

The formula workaround strikes a balance between speed and complexity. It requires no coding and reduces the time spent per row by roughly 70 percent compared to manually searching and linking each record.

Conclusion

You can now import a CSV file into Notion and link rows to an existing database using a formula property that generates clickable URLs. The formula uses the concat(), slice(), and id() functions to build a direct link to the matching record. For larger imports, consider using the Notion API with a script or an automation tool like Zapier. After linking, use a linked database view to display related fields from the target database inline. The formula method is the fastest no-code option for bulk adding relation links after a CSV import.

ADVERTISEMENT