Tracking vendors, contracts, and invoices in separate Notion databases can lead to duplicate data entry and broken links between records. A Notion Relation property connects two databases so that records in one database can reference records in another. This article explains how to create Relation properties between a Vendor database, a Contract database, and an Invoice database. After reading this guide, you will have a working three-database system where each contract links to its vendor and each invoice links to both its vendor and its contract.
Key Takeaways: Building a Three-Database Relation System in Notion
- Database + in the sidebar: Create three separate databases named Vendors, Contracts, and Invoices before adding any Relation properties.
- Relation property > Select a database: Add a Relation column to each database and point it to the correct linked database.
- Rollup property: Pull the vendor name into the Invoices database automatically by rolling up from the linked Contract record.
How Notion Relation Properties Work for Multi-Database Tracking
A Notion Relation property creates a two-way link between records in two different databases. When you add a Relation to a database, Notion also adds a reciprocal Relation in the linked database. This means a vendor record can show all its contracts, and a contract record can show its vendor. For invoice tracking, you need three databases because one invoice belongs to one contract and one vendor. A single Relation cannot link three databases at once. Instead, you create two separate Relation properties in the Invoice database: one to the Contract database and one to the Vendor database. The Contract database already has a Relation to the Vendor database. The Rollup property then lets you display data from a related record without extra manual entry.
Prerequisites
You need a Notion workspace on any plan including the Free plan. The Relation and Rollup property types are available on all plans. Create three empty databases before starting the steps below. Name them Vendors, Contracts, and Invoices. Each database should have at least a Title column. You can add other columns such as Status, Amount, or Start Date after setting up the Relations.
Steps to Connect the Vendor, Contract, and Invoice Databases
- Add a Relation from Contracts to Vendors
Open the Contracts database. Click the + button in the rightmost column header. Select Relation from the property type list. In the Relation settings, choose Vendors from the database dropdown. Click Create Relation. Notion adds a new column named Vendors in Contracts and a reciprocal column named Contracts in Vendors. - Link a contract to its vendor
In the Contracts database, click the Vendors cell for a specific contract. A menu opens showing all records in the Vendors database. Select the correct vendor name. The cell now shows that vendor. The vendor record in the Vendors database now displays that contract in its Contracts column. - Add a Relation from Invoices to Contracts
Open the Invoices database. Click the + button in the rightmost column header. Select Relation. In the settings, choose Contracts from the database dropdown. Click Create Relation. A new column named Contracts appears in Invoices, and a reciprocal column named Invoices appears in Contracts. - Add a Relation from Invoices to Vendors
In the Invoices database, click the + button again. Select Relation. This time choose Vendors from the database dropdown. Click Create Relation. The Invoices database now has a Vendors column. The Vendors database gets a reciprocal column named Invoices. - Link an invoice to its contract and vendor
In the Invoices database, click the Contracts cell for an invoice. Select the related contract. Then click the Vendors cell and select the related vendor. The invoice is now linked to both records. You can verify by opening the contract record and checking its Invoices column. - Add a Rollup to display vendor name in Invoices automatically
In the Invoices database, click the + button. Select Rollup from the property type list. Name the column Vendor Name. In the Rollup settings, set Relation to Contracts. Set Property to Vendors (the linked vendor record). Set Calculate to Show original. Notion now displays the vendor name from the related contract. You do not need to enter the vendor manually in the Invoices database.
Common Mistakes and Limitations When Using Relations for Vendor-Contract-Invoice Tracking
Three databases cannot be linked in a single Relation
A Relation property only connects two databases. To track vendors, contracts, and invoices, you need two separate Relation properties in the Invoice database. Attempting to link all three in one column is not possible. The workaround described above uses a Rollup to bring the vendor name into the Invoice database indirectly.
Deleting a Relation property removes all links
If you delete a Relation column from a database, Notion removes every link in that column and the reciprocal column in the linked database. There is no undo for this action. Before deleting a Relation property, export your database as a backup or duplicate the database to test changes.
Rollup shows only one value when multiple records are linked
A Rollup property that uses a Relation set to allow multiple links will show a summary such as a count or a comma-separated list. If a Contract database allows multiple vendors, the Rollup in Invoices may show multiple vendor names. To avoid confusion, keep the Contract-to-Vendor Relation as single-select. In the Relation settings, toggle Allow multiple records off unless you need multiple vendors per contract.
Linked database views do not update automatically when records are added
When you add a new invoice and link it to a contract, the contract record shows the new invoice in its Invoices column only after you refresh the page or switch views. This is normal Notion behavior. You can force a refresh by reloading the page or clicking the database name in the sidebar.
Notion Relation Properties vs Rollup Properties for Multi-Database Tracking
| Item | Relation | Rollup |
|---|---|---|
| Purpose | Creates a two-way link between records in two databases | Displays a value from a related record without manual entry |
| Data storage | Stores the link in both databases | Stores no link only displays data |
| Editing | You can add or remove links directly in the cell | You cannot edit the displayed value you must edit the source property |
| Multiple databases | Links exactly two databases | Works with one existing Relation to pull data from a third database |
| Use case in this system | Connects Contracts to Vendors and Invoices to both Contracts and Vendors | Displays vendor name in Invoices by reading the vendor linked through Contracts |
Now you have a working vendor-contract-invoice tracking system in Notion. The three databases are linked through Relation properties, and the Rollup property saves you from typing the vendor name twice. Next, add a Status column to each database and create a Board view to see contracts by status or invoices by vendor. As an advanced tip, use a Formula property in the Invoices database to calculate the total invoice amount by multiplying a Number property with a Rollup of the contract rate.