On this page
A content inventory template gives each URL an owner, a review date, and a recorded next action while preserving the source row that brought it into the inventory. Use the field map and synthetic CSV below to start with a small section of a site, then review each proposed change before it reaches a publishing workflow.
Download the Excel workbook · Example rows (CSV) · Application field specification (JSON)
What a content inventory records
A content inventory lists the content that exists and its identifying details. A content audit evaluates quality and decides whether content should stay, change, or be removed. Nielsen Norman Group recommends treating the inventory as the record that supports those later audit decisions; an inventory row by itself does not establish that a page is outdated or low quality. NN/G’s content inventory and audit guide describes common fields such as title, URL, owner or author, format, dates, and metadata.
For a working URL inventory, capture the import source, source row ID, raw URL, reviewed URL, canonical candidate, owner, last review date, next review date, proposal, and any action receipt. Keep the raw value even when a reviewer enters a cleaner URL. Treat a canonical candidate as a note to investigate, not an instruction to rewrite the live address.
Start with a scoped import

AI-generated editorial illustration.
Choose one subsection, content type, or user journey. Import URLs from a CMS export, sitemap, or spreadsheet and assign every source row its own stable import ID. A sitemap can help find URLs, while a CMS export can provide content fields; each source has different coverage, so preserve provenance.
Keep records separate until a person confirms a duplicate. For example, /Guide?ref=nav, /guide/, and /guide may differ in case, query string, or trailing slash. Store each imported string unchanged, record any reviewed URL separately, and link confirmed duplicates to one group without discarding either source row.
Review ownership and dates
Assign a named owner to each content item. Record the last review date and the next date the owner should check the page. A declared as-of date makes overdue status reproducible: a row is overdue when its next review date is earlier than that date. The date comparison does not judge quality; the reviewer records findings after checking the page, user needs, content standards, and relevant performance evidence.
Keep the first audit pass small enough for the assigned owners to complete. NN/G recommends choosing a scope that fits team capacity, tracking inventory details, and involving people who know the content. A simple spreadsheet can support that pass before a team builds a larger workflow.
Use proposals for updates and archives
Record “keep,” “update,” or “archive” as a proposal with a reason, proposer, date, and status. An archive proposal does not change a published page. If a separate publishing or deletion process completes the action, record its actor, date, outcome, and external receipt ID. When an update needs version approval, link the exact version to its existing content-approval owner and record; do not create a duplicate approval record in the inventory. See the separate content approval workflow.
Use an inventory app when multiple owners need assigned views, durable review history, and controlled exports. Atoms can build an app from a workflow brief; its documentation describes Atoms Cloud and connecting a Supabase project as backend options. Choose one backend for the application. For this workflow, specify the data model, app-user roles, saved review history, and export rules in the build prompt, then test each after generation. Atoms Cloud overview · Connect Supabase to Atoms · Supabase row-level security
The signed-in app users who own or review content are distinct from workspace builders. Enforce organization, owner, assigned-row, column, and export permissions on the server. Supabase documents row-level security policies as a way to restrict rows, but a project must enable and test policies for its own tables. For one-time spreadsheet migration, see Spreadsheet to web app.
Copy the build prompt into Atoms
Copy the complete prompt below into your Atoms project chat. It specifies the tables, duplicate handling, roles, synthetic acceptance case, and persistence checks.
Copy the build brief and use it to create your version in Atoms.
Content inventory sample CSV
The example retains two source rows with different raw URL strings. Reviewers can investigate whether they refer to the same page without losing provenance.
Move the field map into an app
Use the downloaded workbook for the first review pass and the field specification to request an app review screen. A CMS export and sitemap are import sources, not proof that two URLs are equivalent. Keep both raw values until a reviewer decides how to group them.