The Scenario
You manage the knowledge base for a SaaS company. Three product lines were deprecated last quarter and 80 Notion pages — outdated specs, old API docs, sunset feature guides — are cluttering the workspace. You have a Google Sheet listing the 80 page IDs. Every time someone searches Notion for help, these old pages come up as results. They need to be archived before the next onboarding cohort starts next week.
The bad version:
- Open the first page ID from the sheet, search for it in Notion (UUID search is slow), open the page, click the three-dot menu, select Move to Trash, confirm. Move to the next.
- After thirty minutes and twenty pages, you accidentally archive a page you didn't mean to because you clicked on the wrong search result — now you have to restore it from Trash.
- The remaining 60 pages will take another hour and a half. You have other work this afternoon.
Archiving 80 pages through the Notion UI is a test of patience, not a knowledge management task.
The Easy Way: One Prompt in SheetXAI
SheetXAI reads the page ID column from your Google Sheet and sends archive commands to Notion for each one in a single pass — no search, no clicking, no accidental wrong-page selections.
Archive every Notion page whose ID is listed in column A of this sheet
What You Get
- All 80 Notion pages moved to the workspace trash.
- A sidebar count of successful archives and any that returned errors — usually because the page ID was already archived or doesn't exist.
- Column B in the sheet updated with the archive status for each row, so you have a record of what was processed.
What If the Data Is Not Quite Ready
Some page IDs in the list may have already been archived — skip those without errors
Archive every Notion page in column A — if a page is already archived, mark it as "already archived" in column B and continue rather than stopping
Already-archived pages don't block the rest of the operation. The sheet records which were in that state.
You want to verify page titles before archiving — pull titles first and write them to column B for review
For each page ID in column A, fetch the Notion page title and write it to column B — do not archive yet
A review pass before the archive gives you a chance to spot any page IDs that shouldn't be on the list.
You need to archive sub-pages as well — recursively archive children of each listed page
Archive every Notion page in column A and all of their child pages — write the total count of pages archived (parent + children) for each row to column B
Parent and all descendants are archived together. The count in column B shows the full scope.
The kill chain — fetch titles, verify they match a pattern, archive confirmed pages, log results
For each page ID in column A: fetch the page title and write it to column B — if the title does not contain the word "Deprecated" or "Sunset," write "skipped: title mismatch" in column C and do not archive — archive all confirmed pages and write the archive timestamp to column D
One prompt: title fetch, pattern check, conditional archive, full audit log. Nothing gets archived that doesn't match the expected title pattern.
The pattern check in the same pass means you're not archiving pages that crept onto the list by mistake.
Try It
Get the 7-day free trial of SheetXAI and open the sheet with your list of deprecated page IDs. Ask SheetXAI to archive the full batch and log the results. Also useful: move-pages-to-new-parent if some pages should be relocated rather than archived, and the hub overview for all Notion workflows.
