Skip to content
notionsolutions

A practical library for building,
organizing and working in Notion.

Workflow guides

Notion Relations and Rollups: Build a Client and Project Database

Connect each project to its client, then calculate only the values that answer a useful question.

Published Content reviewed
Relations and rollups: a client dossier linked to projects and a separate summary
A relation connects records; a rollup reads or calculates a value through that connection.

A relation connects a project to its client. A rollup then reads a property from those linked projects, such as their count, earliest due date or total planned budget. Build the connection first, since a rollup cannot determine which client a project belongs to.

I would start with two databases and one useful calculation. The setup below uses fictional clients and projects to explain the structure; the steps follow Notion’s documented relation and rollup controls.

Prepare the two databases

Start with two databases you can add properties to, named Clients and Projects. Use a table view while setting up the fields. Keep the client names in the Clients title property and project names in the Projects title property; a row is a database page, not a second database.

For a new field, choose Add property, name it, and choose its type. If the table already has properties, use the + beside the right-most column. These are Notion’s property-creation controls. Add Due date as Date and Planned budget as Number in Projects before configuring the corresponding rollups.

A small client/project schema
DatabasePropertyType and purpose
ClientsClientTitle: one record per client.
ClientsProjectsThe reciprocal relation created in the next step.
ProjectsProjectTitle: a recognizable project name.
ProjectsClientRelation to Clients; limit to one page if each project has one client.
ProjectsDue dateDate: the project’s deadline.
ProjectsPlanned budgetOptional Number property. Use one currency before adding values together.

Create client records named North Studio and Harbor Co.. Use the following fictional project data. All budgets use the same currency, and the dates are example deadlines, not live project dates. Enter the source values now; choose the Client pages after creating the relation.

Example inputs for the relation and rollups
ProjectClient to linkDue datePlanned budget
Brand refreshNorth StudioMay 141,200
Website launchHarbor Co.May 282,800
Unassigned inquiryLeave emptyMay 10900

A Select option named “North Studio” is a category. It does not point to the North Studio page. Use a Relation when you need a real record connection.

1. Connect Projects to Clients

  1. In Projects, add a property, name it Client and choose Relation.
  2. Search for the Clients database and select it. Check the database name carefully if you have copies.
  3. Turn on Show on Clients and name the corresponding property Projects. This gives you a two-way connection.
  4. Select Add relation.
  5. Open the Client cell for Brand refresh and select North Studio. Link Website launch to Harbor Co.
  6. Open North Studio in Clients. Its Projects field should contain Brand refresh; Harbor Co. should show Website launch.

Relations between different databases are one-way by default; the reciprocal property is an option you enable. If your client record does not show Projects, check that setting before creating a second, independent relation.

For ordinary freelance delivery, I recommend the relation’s 1 page limit on the Project side. Use No limit only when a project really can have several clients. Choose the limit to match your client assignments instead of making every connection many-to-many.

Client relation setup points to Clients with Show on Clients enabled and reciprocal property named Projects.
Create the reciprocal property from this connection, then limit each project to one client.

2. Add the calculation on Clients

The rollup belongs in the database where you want to see the answer. Here, that is Clients. Add a property with type Rollup, then click a cell to choose its relation, source property and calculation.

Three useful rollup configurations
Rollup nameRelationSource propertyCalculate
Project countProjectsProject (the title property)Count all
Earliest project due dateProjectsDue dateEarliest date
Total planned budgetProjectsPlanned budgetSum

Available calculations depend on the source property type. Sum needs numbers; Earliest date needs dates. Count all counts values in the selected property, so using the single title value is more suitable for a project count than counting multi-select tags.

For Total planned budget, the dependency is Projects → Planned budget → Sum. Selecting the Client relation in the Projects database would summarize clients instead; it is the wrong direction for this answer. Choose the rollup’s Number format to match your budget currency. Formatting the output does not make amounts in different currencies suitable for one total.

Total planned budget rollup uses Projects, Planned budget and Sum, with the source marked Number.
The three selections determine the result; the Number source makes Sum available.

Name the result to reflect the value it measures. Planned budgets are not revenue received. The earliest deadline across all linked projects is not necessarily the next deadline for active work: a completed project can still be linked. A view filter hiding completed projects does not remove those records from the relation.

3. Check the links, then the result

First open each client’s Projects relation and confirm the linked page names. With the example inputs, North Studio has Brand refresh: one project, a May 14 deadline and a planned budget of 1,200. Harbor Co. has Website launch: one project, May 28 and 2,800. Unassigned inquiry contributes to neither client even though its date is earlier and its budget is filled in. A rollup reads linked records, not every row in Projects.

Then move Website launch’s Client relation from Harbor Co. to North Studio. In the relation picker, remove the current page with the – beside its name, then select North Studio. This follows Notion’s related-page removal control and keeps the one-client rule clear.

Expected relationships after moving Website launch
ClientLinked projectsWhat the inputs imply
North StudioBrand refresh and Website launchProject count 2; earliest due date May 14; planned budgets sum to 4,000.
Harbor Co.NoneNo project deadlines or budgets remain to summarize.

These are the expected relationships and arithmetic for the fictional data, not captured product results. Check the reciprocal page names before checking the numbers. Restore Website launch’s original Harbor Co. link when you are finished.

North Studio links to budgets 1,200 and 2,800 for a 4,000 total; an unlinked 900 inquiry is excluded.
An unlinked row contributes nothing to the client total, even when its budget is filled in.

For a temporary audit, choose Show original for the selected source property and inspect the values being brought across, then return to your intended calculation. Notion’s rollup calculation list distinguishes showing values from counting or adding them.

If the relation changes correctly but the calculation does not match your expectation, inspect the source field on every linked record. For a budget total, distinguish a genuine zero from a missing budget. For an earliest date, inspect the actual dates rather than the order of rows in the view.

Blank or unexpected rollups

Diagnose the dependency that produces the answer
SymptomWhat to inspect
No useful value appearsIs the relation populated? Does it link to the intended database and pages? Is the selected source property filled in?
Sum is unavailableCheck that the source property is Number, rather than a text field containing currency symbols.
The count is higher than expectedInspect which property is being counted and which pages are linked. A multi-value property can produce a different count from a project title.
An old due date appearsLook for completed projects or old dates still included in the relation.
You want a rollup of another rollupNotion does not support directly rolling up a rollup. Return to the source property and design the calculation from it.

For a focused diagnosis, use the empty rollup troubleshooting guide. If another person sees a different result, inspect their access to the related pages separately. A blank cell by itself does not establish a permissions problem.

Keep the connection separate from sharing and exports

A relation is a data connection, not permission to share another client’s records. Before giving a client access, check the portal’s pages, related records and inherited permissions.

Also retain this schema outside the database. CSV exports turn relation values into plain-text URLs, and importing that exported CSV does not automatically re-establish the relationships. An exported table is not a portable copy of the complete working model.

Once the two-database model is clear, add Tasks only if you need a separate task list. The three-database project tracker explains that next layer without making this basic setup larger than it needs to be.

Continue with the database model