PageCrawl can write every detected change into a Notion database as a new row. Nobody has to copy anything across, and the record sits in the workspace where the decision gets made rather than in an inbox.
This is the direct integration, where PageCrawl writes the rows itself on its own schedule. If you would rather have a Notion agent decide what to write and when, connect the MCP server to a Notion custom agent instead. The two can be used together.
How It Works
When a check detects a change, PageCrawl creates one page (a row) in each Notion database that change is routed to, filling the properties you selected. Rows are only ever created, never overwritten, so the database becomes a running history.
Each database you write to is a destination: a database, the properties to fill, and which monitors feed it. A workspace can have several, so a pricing folder can land in one database and a legal-terms tag in another, and a change can go to more than one when it qualifies for both.
A monitor's first check is a baseline rather than a change, so it does not produce a row.
Setting It Up
- Go to Settings > Integrations and find the Notion card
- Click Connect. Notion asks you to sign in and then shows a page picker
- Choose the pages or databases PageCrawl should have access to. This is the step that matters: PageCrawl can only see what you grant here
- Back in PageCrawl, click Add destination and choose:
- Where it goes: a database you already shared, or let PageCrawl create one under a page you shared
- What to write: a change log, or a review board that adds a Review property
- Which monitors: all of them, or only those in certain folders, with certain tags, on certain websites, or a hand-picked list. Folders include their subfolders
- Properties to write: the fields that become Notion columns
If you point at an existing database, PageCrawl adds any properties you selected that it does not already have. Existing properties and rows are left alone. A property that exists with the wrong type is reported by name so you can rename or retype it in Notion; PageCrawl never changes a property's type.
Syncing Older Changes
A new destination starts with the next detected change. To fill it with what already happened, open the destination's menu and choose Sync recent history. PageCrawl sends the most recent changes for each monitor the destination covers, newest first, up to 25 per monitor and 500 in total, paced to respect Notion's limits. Changes the destination already holds are skipped, so running it twice never duplicates a row.
The same button works after you point a destination at a different database: the new database receives the history even though the old one already had it.
Routing to Several Databases
Add one destination per database. Each has its own monitor selection, so a typical setup is:
- Pricing database, fed by the Pricing folder
- Legal database, fed by monitors tagged terms
- Everything database, fed by all monitors, as the archive
A change on a monitor that sits in the Pricing folder and carries the terms tag is written to all three. The Notion page is created independently in each, so a paused or deleted database never holds up the others.
Available Properties
Each property you tick becomes a Notion column of a matching type:
| Field | Notion type | What it holds |
|---|---|---|
| Title | Title | The monitor's name |
| URL, View, Screenshot | URL / Files | Links to the page, the change in PageCrawl, and the capture |
| Changed at | Date | When the check that found this change ran |
| Importance, Difference % | Number | The AI priority score, and how much of the content changed |
| Domain, Folder, Type | Select | Facets you can group or filter a Notion view by |
| Labels | Multi-select | One option per label on the monitor |
| Summaries, values, diffs | Text | The short summary, AI summary, and the current and previous values |
Long values are split across multiple text blocks rather than cut off, so a full AI summary survives intact.
Columns that were already in the database (for example a "Detected At" or "Notes" property from a template) are left alone and stay empty on the rows PageCrawl creates. If one duplicates a PageCrawl column, delete it in Notion or keep it for your own notes; PageCrawl only writes the properties listed above.
What goes in the page body?
Every row is also a Notion page, and its body holds the change itself: the monitor's name, the short summary, and the diff, with removed text in red and added text in green, the same colouring as the change view in PageCrawl. Wholly added and removed lines also carry a plus or minus, so the diff still reads in dark mode or without colour. A number or price change appears as a single "before ↗ after" line, and a monitor that tracks several elements gets a heading for each.
The body shows up to 100 blocks. A longer diff ends with how many lines were left out and a link that opens the full diff in PageCrawl, so nothing is lost, only shortened. Visual monitors do not repeat the comparison in the body; the picture is on the cover instead.
When screenshots are enabled for the monitor, the page's cover is the capture from that check. For a visual monitor it is the comparison image with the changed regions marked. The page icon is the monitored site's favicon, so a gallery view reads like a list of sites.
Choosing a Mode
Change log is the plain record: a row per change, newest at the top. Use it when the value is the history.
Review board adds a Review property with To review, In progress, Actioned and Ignored. PageCrawl sets a new row to "To review" and never touches that property again, so moving a card in Notion is never undone by a later sync. Use it when a person has to decide something about each change.
How does the live current-value table work?
Choose Current values as the mode and the destination keeps one row per monitor instead of one per change. Each detected change updates that monitor's row in place, so the database is always a table of what every watched page says right now: a competitor price list, a stock table, a set of legal pages with their latest wording. The row's cover is the latest screenshot.
Alongside the usual properties, a current-values destination offers four monitor-level ones:
| Property | Notion type | What it holds |
|---|---|---|
| Change count | Number | How many changes PageCrawl has detected on the monitor |
| Last checked | Date | When the page was last checked, whether or not it changed |
| Monitor status | Select | OK, Paused, or Error |
| First tracked | Date | When the monitor was created |
A value that disappears from the page is cleared on the row rather than left behind, and a row someone deleted in Notion is recreated on the next change. The Sync recent history action fills the table with every matched monitor's latest value.
When a monitor is deleted decides what happens to its row: leave it in Notion as a record, or move it to the trash. PageCrawl reconciles this once a day.
When Sync Stops
PageCrawl pauses writing and notifies your workspace when Notion says something is gone. The two causes are handled differently:
- Access was removed in Notion, or the connection was revoked. This affects the credential, so every destination stops. Reconnect to resume
- A database was deleted, moved to trash, or unshared from PageCrawl. Only that destination is paused, with the reason shown in its row; the others keep writing. Share the database again (or point the destination at another one) and choose Resume
Your existing rows are untouched either way. Disconnecting Notion keeps your destinations, so reconnecting the same workspace picks up where it left off.
Common Questions
Does this replace the Google Sheets sync?
No, they are independent and can both run. Sheets suits analysis on the numbers; Notion suits a team that already works in Notion and wants to comment, assign and file the change alongside everything else.
Can I sync only some monitors?
Yes. Each destination chooses its monitors: all of them, a folder (subfolders included), a tag, a website, or a hand-picked list. It is the same selector used for webhooks and RSS feeds, so a folder you already organise by is enough to route its changes.
Does it sync changes from before I set it up?
Not automatically, but Sync recent history in the destination's menu sends the most recent changes for the monitors it covers, and skips anything the database already holds. See "Syncing Older Changes" above for the limits.
How soon does a row appear?
A row is written after a check detects a change, so the monitor's check frequency decides the delay. Sync failures retry on their own with a growing gap, and Notion's own rate limits are respected rather than worked around.
Is my Notion token safe?
The access token is encrypted at rest, is never returned by the API, and is never written to logs. PageCrawl only ever reaches the pages and databases you granted in Notion's picker.
