Notion Contract Tracker
Implement the published contract register in a Notion database with owners, dates, URL pointers, and operational notice flags. Not legal advice and not a CLM.
— Craig Major
A Notion contract tracker is the published Contract Tracker register built as a Notion database. Each page names a Person-property owner, a closed Select status, a durable URL plus native id and version key, and the key dates. Views and Date reminders help a person record renew, amend, or terminate. Notion does not give legal advice, replace a CLM, or treat a reminder as legal notice.
The shared field list lives in the published Contract Register and Renewal Template. The paired Notion Contract Register Template is the property recipe, CSV import, views, and notify-only automation design. This is not a Notion invoice tracker and not a full document approval workflow. Approval status is a pointer only. If you already run the same schema in Drive, Microsoft 365, or monday.com, the published Google Sheets contract tracker, SharePoint / Microsoft Lists contract tracker, and monday.com contract tracker are the platform twins.
Who this is for
Use this when signed files already live in Drive, Box, Dropbox, or SharePoint and the immediate job is one visible Notion database: who owns the page, which file version is authoritative, which notice window is open, and which decision is still missing.
Prerequisites:
- One contract family for the first database. The worked example is fictional Cedar & Quay Fabrication Ltd.
- Agreement that this is an operational register, not legal advice and not a CLM
- A named Person-property owner, not a shared inbox
- A durable file pointer: URL plus native id and version key. Files & media is an optional companion, not the sole system of record when policy requires an external store
- A written rule for what happens when a reminder gets no reply
- Agreement that formulas, Date reminders, buttons, and automations never set
renewedorterminated - A reminder path that matches the plan. Recurring Date reminders are not available. Paid database automations can use
Every {frequency}for process nudges. Free Plan users can create Slack notification automations only
Stay out of this first database: clause interpretation, auto-renewal legality, e-sign send, a full approval matrix, invoice amounts, tax, PO, payment fields, and any claim that permissions, guests, Lock database, or version history are certification.
If you still need the platform-neutral model, stay on the parent tracker. Do not copy invoice money fields from any Notion invoice database into this register. Planner lists Notion invoice tracker as a separate 10-100 intent. Notion approval workflow is a different job.
What Notion implements
The parent template defines the shared field list. This pack uses the same names so you can move data without remapping it.
| Parent piece | Notion twin |
|---|---|
| Field dictionary | Database properties, same names |
| Status model | Select options on status |
| Duplicate key | Formula plus a grouped view |
| Roles and exceptions | RolesAuthority and ExceptionTaxonomy pages in the pack |
| Sample pages REG-CQ-2026-0914-0920 | Same fictional Cedar & Quay cases |
| Notice formulas | notice_date from expiry minus window; day counts from Config as_of or live dateBetween / today() |
| Approval pointer | approval_status only |
Do not rename fields for Notion convenience. The same names make later imports and migrations easier.
Notion-native additions that are not a second schema:
- Person properties for
owner,escalation_target, andreviewed_by - Select properties for status, type, exception, approval pointer, and access test
- Date properties for expiry, notice, and
reminder_due_at - URL plus Text native id and version key
- Optional Files & media companion
- Formula properties for notice flags and
duplicate_key - Table, Calendar, and Board views
- An optional notify-only automation design. If the workspace plan supports database automations, a property-edited or
Every {frequency}notify flow may be an option. Otherwise use Date Remind plus the manual reminder process. Live tenant validation isneeds_tenant_proof
Properties and database surfaces
Pick one system of record for status. Do not keep a second live status on the PDF.
| Pattern | Use when | Status lives | File identity |
|---|---|---|---|
| Private team database | Internal operators only | The Notion page | URL plus native id. Files & media companion optional |
| Shared with guests | External reviewers must see selected pages | The Notion page | Same pointers. Guests are page-scoped. They cannot create automations |
| Locked database | Schema should stay still while operators edit rows | The Notion page | Same pointers. Lock database and Can edit content are collaboration safeguards, not certification |
| Hybrid Files plus external store | Operators want a PDF on the page and a durable SoR elsewhere | The Notion page only | Prefer the external URL. Files & media alone is a weak SoR |
Notion Help documents permission levels, guests, Lock database, and Can edit content as collaboration controls. Official pages: Sharing & permissions and Intro to databases. Broadest access wins. Feature labels stay needs_tenant_proof.
Prefer Select over Status for the inherited status strings. Status groups pages into To-do, In Progress, and Complete. That grouping is not the parent transition model.
Durable identity and the Files & media companion
Path-only pasted URLs break when someone moves a file. Prefer a stack:
file_pointer_urlas a URL to the durable external storefile_native_idas the Drive, Box, Dropbox, or SharePoint file idfile_version_keyas revision, version id, etag, or content hash- Optional Files & media companion for a working copy on the page
Official file-upload wording is mutable and currently conflicts. Pricing says Free uploads are up to 5 MB and paid plans allow unlimited uploads with a ~5 GB max per file. Help also says paid PDFs must be under 20 MB and images under 5 MB, while the same Help FAQ says paid files can be up to 5 GB. Official pages: Notion Pricing and Images, files & media. Recheck both on publish day. Prefer the external URL for the authoritative PDF.
Proof gate: open the pointer as a named reviewer and set access_test_result. A material file replace without a new register page is missing_or_stale_file_pointer or a superseding page.
Formulas and Config as_of
Notion formulas can compute operational notice math with dateSubtract, dateBetween, dateAdd, now(), and today(). Official page: Formula syntax. Packaged samples use Config as_of_date at 8 September 2026 so the seven cases stay deterministic. Do not put live now() or today() in the packaged XLSX formulas.
notice_date may be dateSubtract(prop("expiry_date"), prop("notice_window_days"), "days") when both exist. That is operational date math. It is not legal notice.
duplicate_key may be lower(trim(if(empty(prop("counterparty_id")), prop("counterparty_name"), prop("counterparty_id")))) + "|" + lower(trim(prop("contract_id"))). Notion has no native unique constraint on counterparty plus contract id. A Unique ID property numbers Notion pages. It does not stop a second Northshore plus the same contract id. A grouped view plus a human duplicate status is the control.
These formulas are planning aids. They are not statutory interpretation or an auto-renewal rule. Formulas never write status.
Date reminders and plan-gated automations
A reminder is an operational nudge. It is not proof that contractual or statutory notice was validly delivered. No reminder timeout may set renewed or terminated.
| Pattern | When | What it may do | What it must not do |
|---|---|---|---|
| Manual ReminderEscalation | Always valid. Use this first, or when automations are unavailable | Owner reviews Notice and Decision views. Record reminder_sent_at and evidence_ref |
Auto-renew |
| Date-property Remind | All plans. One-time remind on a Date property | Notify the owner at the chosen date or lead time | Recur every week or month. Recurring Date reminders are not available |
@remind in a page |
All plans. Not a database Date property | Nudge a named person in the same block | Stand in for contractual notice |
Paid Every {frequency} automation |
Paid plans. Database automations | Recurring process nudge. Notify owner or Slack | Edit property to renewed or terminated. The Every {frequency} trigger does not work with Edit property |
| Free Slack-notify carve-out | Free Plan | Slack notification automations only | Full database automations. Guests still cannot create automations |
Notion Help documents Date-property Remind, @remind, and a FAQ that recurring reminders are not available yet and remain on the roadmap. Official page: Set reminders in Notion. Recheck that FAQ before claiming recurrence.
Database automations are available on paid plans. Free Plan users can create Slack notification automations, but no other kinds, and can use existing template automations without editing them. Guests cannot create database automations. Automations cannot trigger other automations. Button clicks can. Official page: Database automations.
Webhook, mail, and Slack actions are plan-gated. Webhooks are paid, max five per automation, POST only, send properties not page body, and do not require auth on send. Enterprise can disable them. Official page: Webhook actions. Buttons exist on all plans. Mail, webhook, and Slack button actions stay paid-gated. Show confirmation is allowed and is still not legal authority. Official page: Database buttons.
The pack includes an original notify-only recipe design, not a tenant export and not a Marketplace listing. It is not executed against a live environment.
Guests, history, and permissions are not certification
Map pack roles operationally:
| Pack role | Typical Notion mapping |
|---|---|
| Register_Admin | Full access. May change properties and views |
| Contract_Owner | Can edit or Can edit content on own pages |
| Reviewer | Can comment, or Can edit limited to notes and access-test fields |
| Escalation_Owner | Can edit |
| Auditor_Read | Can view |
| Counsel_OutOfBand | No database edit. Advice stays outside Notion |
| External_Counterparty | Guest only when policy allows. No edit |
| Unauthorized_Actor | Any other editor. Log unauthorized_status_change |
Free workspaces have a 10-guest limit. Plus, Business, and Enterprise list unlimited guests. Guests are page-scoped. Official page: Notion Pricing. Broadest access wins. Public anyone-with-link is not authenticated renewal authority. Can create is Business or Enterprise and still does not make a guest an automation author.
Version history is plan-gated: Free 7 days, Plus 30 days, Business 90 days, Enterprise unlimited. Official page: Delete & restore content. That is collaboration history. It is not a certified legal or renewal audit log. Keep DecisionRecord and Evidence.
Lock database and Can edit content can warn an editor who tries to change properties. They are not SOX or security certification. Case 5 still logs unauthorized_status_change and reverts or holds.
Worked example
Cedar & Quay Fabrication Ltd is a fictional Toronto fabricator. Create the database from the property recipe, or import csv/register-import.csv. Leave Config as_of_date at 8 September 2026.
REG-CQ-2026-0914, Northshore Logistics MSACTR-CQ-MSA-2024-017. Owner Avery. Statusactive. URL, native idFICTION-CQ-MSA-017, and version key present. Expiry 30 September 2027. 60-day operational notice window. No exception.REG-CQ-2026-0915uses the same family with a nearer expiry. Statusnotice_window_open. Date reminder scheduled to Avery. Escalation target Riley.REG-CQ-2026-0916is on exception hold because the durable URL and native ids are blank. A renewal decision stays blocked.REG-CQ-2026-0917is a second Northshore plus the same contract id. Statusduplicate. Canonical pageREG-CQ-2026-0914continues.REG-CQ-2026-0918records an unauthorized attempt to markrenewed. Status returns to exception hold.REG-CQ-2026-0919expired on 15 August 2026 with no renew, amend, or terminate note.REG-CQ-2026-0920sent a reminder, failed escalation, and keepsrenewal_decision_needed. If a teammate expected a recurring Date reminder, also recordrecurring_remind_unavailable. If a guest tried to create the automation, recordguest_cannot_create_automation. It does not auto-renew.
Those numbers are fixture math, not a customer result.
On the as-of date 8 September 2026, the clean Cedar & Quay MSA uses expiry 30 September 2027 and a 60-day window. That produces notice date 1 August 2027, 327 days to notice, and 387 days to expiry. Case 2 uses a nearer expiry so the same family can show a window that is already open.
Views
Create these views:
- Table: Active
- Table: Notice window
- Table: Decision needed
- Table: Exceptions
- Table: Duplicates, grouped by
duplicate_key - Calendar on
expiry_dateornotice_date - Board on
status
Official page: Views, filters, and sorts. Filters and views are not access control. People with edit can still change pages they can open. Select options constrain the dropdown. They do not hard-enforce allowed next statuses. Unauthorized changes stay a process and DecisionRecord exception.
What can run automatically, and what cannot
| Situation | Automatic action | Person required |
|---|---|---|
| Complete page with durable pointer and owner | Status may stay active |
Owner assignment |
Date Remind or paid frequency nudge crosses notice_date |
Notify owner; stamp reminder_sent_at |
Owner reviews the file |
| Notice passed with no decision | Flag renewal_decision_needed |
Explicit renew, amend, or terminate |
| File pointer, native id, or version key blank | Exception missing_or_stale_file_pointer |
Restore the pointer before any renewal close |
| Second page, same counterparty and contract id | Status duplicate |
Admin links the canonical page |
Actor not on the matrix sets renewed |
Exception unauthorized_status_change |
Register admin reviews |
| Reminder sent, no ack, escalation unreachable | Exception reminder_escalation_failed |
Repair the path. Do not auto-renew |
| Recurring Date reminder expected | Exception recurring_remind_unavailable |
Use one-time Date Remind or paid Every {frequency} notify |
| Guest tries to create an automation | Exception guest_cannot_create_automation |
A member on a paid plan creates the notify recipe, or use the manual process |
| File upload rejected or companion treated as SoR | Exception file_upload_limit_or_stale_companion |
Restore the external URL. Recheck Help and Pricing |
| Guest or public-link overshare | Exception guest_overshare_or_public_link |
Review Share settings. Broadest access wins |
| Invoice money fields added to the register | Exception invoice_schema_bleed |
Remove those fields. Use a separate invoice database |
Automation or button sets renewed |
Out of scope | Remove that action |
| Payment, bank-detail change, or final accounting post | Never | Entirely outside |
Human gates
A person keeps these decisions:
- Named Person-property owner before a page goes active
- Explicit renew, amend, or terminate
- Counsel review when the client's policy requires it
- Duplicate versus canonical page
- Missing or stale URL, native id, or version key
- Unauthorized status change
- Failed reminder or escalation
- Whether Date Remind, paid frequency nudges, or manual reminders can actually run
- Who may edit the database, and whether guests belong on it
A reminder can nudge. It cannot renew. It cannot terminate. It cannot prove that contractual notice was validly delivered.
Failure paths
| Failure | Expected status | Renewal decision |
|---|---|---|
| Missing or stale file pointer | exception_hold + missing_or_stale_file_pointer |
Blocked |
| Duplicate counterparty and contract id | duplicate |
No second track |
Unauthorized status change to renewed |
exception_hold + unauthorized_status_change |
Revert or hold |
| Expired without a decision | expired + expired_without_renewal_decision |
Escalation required |
| Reminder or escalation failed | renewal_decision_needed + reminder_escalation_failed |
Still required; no auto-renew |
| Recurring Date reminder expected | Keep the decision open + recurring_remind_unavailable |
One-time Remind, paid frequency notify, or manual process; no auto-renew |
| Guest cannot create automations | Keep the decision open + guest_cannot_create_automation |
Member-created notify recipe or manual process |
| File-upload limit or stale companion | exception_hold + file_upload_limit_or_stale_companion |
Restore the external URL |
| Guest or public-link overshare | Process exception + guest_overshare_or_public_link |
Still required |
| Version history treated as certification | Process exception still required | Still required |
Automation sets renewed |
Out of scope | Remove that action |
Test cases
The seven Cedar & Quay cases are operational fixtures. They are not customer stories and they do not measure accuracy.
| Case | Input | After the control |
|---|---|---|
| Clean active | URL and native id present | active, no exception |
| Approaching notice | Same family, nearer expiry | notice_window_open |
| Missing pointer | Blank URL and ids | Decision blocked |
| Duplicate | Second Northshore + same contract id | duplicate; canonical continues |
| Unauthorized change | Teammate marks renewed |
Exception, revert or hold |
| Expired, no decision | Expiry 15 August 2026 | expired plus escalation |
| Failed handoff | Reminder sent, Riley unreachable, recurring-Remind gap, or guest automation attempt | Decision still open |
The Notion Contract Register Template walks each case.
What to measure
Record pages with a URL plus native id and version key, active pages with an owner, notice-window pages with a scheduled reminder, blocked unauthorized status changes, suppressed duplicates, hours from reminder to ack, and whether the workspace uses Date Remind, paid frequency nudges, or manual reminders. Put your numbers in the pack. Keep them as operational counts, not as a savings, accuracy, or ranking result.
There is no live production Notion contract-tracker metric here, and no Flowgrammer customer case. Keyword Planner reports Notion contract tracker as No reported data. Adjacent Notion invoice and approval phrases are 10-100 Volume reported and are not this H1. Do not invent a volume.
How to use the Notion template
The paired asset is an editable CSV and XLSX database-import pack plus views and a notify-only automation design. It is not a Notion Duplicate or Marketplace listing, not a CLM, and not legal advice.
- Read Setup and acknowledge the legal-boundary, recurring-Remind, plan-gated automation, file-upload, and no-Marketplace caveats.
- Create a Notion database from the property recipe, or import
csv/register-import.csv. Official import help: Import data into Notion. Formulas and relations are rebuilt after import. - Confirm the inherited field list and the closed status model.
- Add Person, Select, Date, URL, Text, Number, and optional Files & media or Formula properties to match the dictionary.
- Walk Case01 through Case07. Confirm case 3 blocks renewal and case 7 does not auto-renew.
- Create the queue views.
- If you add reminders and the workspace plan supports automations, a notify-only Date or
Every {frequency}flow may be an option. Otherwise use Date Remind plus the manual reminder process. Live tenant validation isneeds_tenant_proof. Notify and stamp timestamps. Never change status.
Future Airtable contract-tracker children can reuse this dictionary later. Those pages are not published, so they stay unlinked.
Realistic limitations
- A Notion reminder, Inbox notification, or Slack or mail automation is not proof that contractual notice was validly delivered.
auto_renew_flag_operationalis an operations flag. It does not mean the clause is enforceable.- Notion permissions, guests, Lock database, and version history are not certification.
- Recurring Date reminders are not available. Recheck the Help FAQ before claiming they shipped.
- Version history, database automations, and file-upload caps are plan-gated and mutable. Recheck Help and Pricing on publish day.
- There is no native unique constraint on counterparty plus contract id.
- This package is a schema and import pack. No live Notion database was created or verified in this pass. Do not treat the download as a Duplicate or Marketplace listing.
- This guide does not rank CLM or e-sign vendors, and it is not a live Notion product walkthrough.
- A signature-complete event is not a renewal decision. Invoice money fields belong on a different database.
Next step
Download the Notion Contract Register Template and create the database. Keep the parent Contract Tracker open while you fill owner, dates, URL plus native id, and the seven cases.
If owners, notice windows, or the destination register are still unclear, start with an AI Success Audit. If one contract family, named owners, and one Notion database destination are already defined, book a fit call to scope an AI Automation Systems build.
Sources
- Flowgrammer, "Contract Tracker", Flowgrammer, accessed 2026-09-08, /insights/contract-tracker
- Flowgrammer, "Contract Register and Renewal Template", Flowgrammer, accessed 2026-09-08, /resources/contract-tracker-template
- Flowgrammer, "Document Approval Workflow", Flowgrammer, accessed 2026-09-08, /insights/document-approval-workflow
- Flowgrammer, "Google Sheets Contract Tracker", Flowgrammer, accessed 2026-09-08, /insights/google-sheets-contract-tracker
- Flowgrammer, "SharePoint / Microsoft Lists Contract Tracker", Flowgrammer, accessed 2026-09-08, /insights/sharepoint-lists-contract-tracker
- Flowgrammer, "monday.com Contract Tracker", Flowgrammer, accessed 2026-09-08, /insights/monday-contract-tracker
- Flowgrammer, "Notion Invoice Tracker", Flowgrammer, accessed 2026-09-08, /insights/notion-invoice-tracker
- Flowgrammer, "Document Processing Automation: What to Automate First", Flowgrammer, accessed 2026-09-08, /insights/document-processing-automation
- Notion, "Set reminders in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/reminders
- Notion, "Delete & restore content in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/duplicate-delete-and-restore-content
- Notion, "Database automations in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/database-automations
- Notion, "Sharing & permissions settings in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/sharing-and-permissions
- Notion, "Notion formula syntax & functions", Notion Help, accessed 2026-09-08, https://www.notion.com/help/formula-syntax
- Notion, "Images, files & media in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/images-files-and-media
- Notion, "Database properties in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/database-properties
- Notion, "Database buttons in Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/database-buttons
- Notion, "Webhook actions in Notion automations", Notion Help, accessed 2026-09-08, https://www.notion.com/help/webhook-actions
- Notion, "Import data into Notion", Notion Help, accessed 2026-09-08, https://www.notion.com/help/import-data-into-notion
- Notion, "Sell templates on Notion Marketplace", Notion Help, accessed 2026-09-08, https://www.notion.com/help/selling-on-marketplace
- Notion, "Intro to databases", Notion Help, accessed 2026-09-08, https://www.notion.com/help/intro-to-databases
- Notion, "Views, filters, and sorts", Notion Help, accessed 2026-09-08, https://www.notion.com/help/views-filters-and-sorts
- Notion, "Pricing", Notion, accessed 2026-09-08, https://www.notion.com/pricing
- Notion, "Request limits", Notion Developers, accessed 2026-09-08, https://developers.notion.com/reference/request-limits
- Docusign, "Contract Lifecycle Management Software | Docusign CLM", Docusign, accessed 2026-09-08, https://www.docusign.com/products/clm
- Adobe, "Acrobat Sign", Adobe, accessed 2026-09-08, https://www.adobe.com/acrobat/business/sign.html
Frequently asked questions
What is a Notion contract register?
It is the published contract register implemented as a Notion database: ownership, status, durable file identity, dates, and operational notice flags so a person can record an explicit renew, amend, or terminate decision.
Is a Notion contract register a CLM?
No. Contract lifecycle management products handle negotiation, clause libraries, and repository workflows. A Notion register tracks operational ownership, dates, and notice flags.
Is this the same as a Notion invoice tracker?
No. Invoice trackers focus on amounts, POs, and payment states. This register uses the parent contract field map and must not share invoice money schema. Planner lists `Notion invoice tracker` as a separate 10-100 intent.
Does Notion have recurring Date reminders?
Not at the moment. Notion Help says recurring tasks and recurring reminders are on the roadmap. Use a one-time Date Remind, or a paid `Every {frequency}` automation for a process nudge. Recheck the FAQ before claiming recurrence.
Does a Notion notification count as contractual notice?
No. Reminders and automations are operational alerts only. They do not prove that a contractual or statutory notice was validly delivered.
Who decides renew, amend, or terminate?
A named human owner, and the escalation owner when needed. Formulas, reminders, buttons, and automations must not auto-set `renewed` or `terminated`.
Is this an e-signature solution?
No. Completing a signature is not the same as recording a renewal decision in the register.
Is page version history a legal audit trail for renewals?
No. Version history is plan-gated collaboration history. Keep an explicit DecisionRecord and evidence pointer for renewal decisions.
Do you ship a live Notion Duplicate or Marketplace listing?
No. Flowgrammer ships original downloadable import assets for this register. Do not claim a live Duplicate or Marketplace listing unless a verified URL exists.
Which Notion plan do you need for automations and history?
Database automations need a paid plan, except the Free Slack-notification carve-out. Webhook, mail, and Slack actions are paid-gated. Guests cannot create automations. Version history is Free 7 days, Plus 30 days, Business 90 days, and Enterprise unlimited. File-upload caps are mutable. Cite plan categories only and recheck Help and Pricing on publish day.