Coda workspace cleanup console for stale doc reviews

See every doc in your Coda workspace with its owner, real view counts and a staleness score, then record keep, archive or reassign decisions in one place.

App
CodaGmailSlack BotOperationsResearch & Monitoring
PromptCreate

Build me a workspace cleanup console for our Coda docs. Nobody knows which of our hundreds of docs are still alive, and the workspace has turned into sprawl. I am a workspace admin running a periodic content review, and I want one screen that ranks docs by how dead they look, lets me confirm what is actually inside them, and records a decision for each one. This app is read-only toward the docs themselves. It must never delete or archive a doc in Coda.

The main view is a doc inventory table. Use Coda List Available Docs to get every doc with its ID, name, owner, folder and last updated time, paging through results until there are no more. Join that against Coda List Doc Analytics, which returns per-doc usage such as views, sessions and distinct users across the whole workspace, matched on doc ID. Because List Doc Analytics covers the workspace in one paged pass rather than one call per doc, the main list can be populated without a per-doc fan out. Show one row per doc with name, owner, last updated, views in the trailing window, distinct viewers, page count once known, staleness score and current verdict. Let me sort by any column, and default the sort to most stale first.

Coda analytics run roughly a day behind. Before requesting any analytics range, call Coda Get Analytics Last Updated Day and use the date it returns as the end of the window. Never assume today has data. Show the effective analytics date somewhere visible in the header so I know how fresh the numbers are, and make the trailing window length configurable with a sensible default of the last 90 days.

Compute a staleness score for each doc that combines time since the last edit with low or zero views over the trailing window. A doc that was edited long ago and has almost no views should score as very stale, while a doc edited recently or viewed regularly should score as healthy. Show the score alongside the underlying signals rather than as a bare number, so I can see why a doc ranked where it did. Give me filters for a specific owner, for docs with zero views in the window, and for verdict status such as not yet reviewed, so I can work through a backlog in passes.

Selecting a doc opens a detail panel showing what is actually inside it, so I can tell a dead scratchpad from a quiet but load bearing tracker before touching anything. Use Coda List Pages for the page count and page titles, Coda List Tables for the tables and views it contains with their row counts, and Coda List Table Rows to pull a small sample of around ten rows from the largest few tables using the simple value format. These calls are per doc, so fetch them only when I select a doc, cache the result for the session, and never preload detail for the whole workspace up front.

Listing docs in Coda is tightly rate limited to roughly four requests every six seconds, so load progressively, keep what has already been fetched in a cache, and do not refetch the world every time I change a sort or a filter. If a background pass is warming analytics or page counts, pace it and show progress rather than blocking the table. Handle a rate limit response by backing off and retrying rather than failing the view.

For each doc I record a verdict of keep, archive or reassign, along with a free text note and optionally a suggested new owner. Write every verdict to a governance registry table in Coda using Insert or Upsert Rows, with the doc ID column set as the key column so that re-running the review updates the existing entry instead of creating a duplicate. Store the doc ID, doc name, owner, verdict, note, reviewer, review date, and a snapshot of the views and staleness score at the time of the decision. Let me pick which Coda doc and table act as the registry in a settings area rather than hardcoding it. Coda mutations are asynchronous and return a request ID, so poll the mutation status and only show the verdict as saved once it has actually completed, then reflect it back in the main table.

When a doc needs an owner decision, give me one button that emails that owner through Gmail Send a Message asking them to confirm whether the doc is still needed. Prefill the subject and body with the doc name, its last updated date, its view count over the window and a link to the doc, and let me edit the draft before it sends. Record on the doc row that a confirmation was requested and when, so I can see who is still owing me an answer on the next pass.

Finally, give me a button that posts a summary of the review round to an operations Slack channel using Slack Bot Send a Message. The summary should cover how many docs were reviewed in this round, the split of keep, archive and reassign verdicts, how many owner confirmations went out, and a short list of the most stale docs still awaiting a decision. Let me choose the target channel.

To be explicit about the guardrail: verdicts are recommendations recorded in the registry table. The app never performs a destructive action on a doc. Archiving or deleting stays with a human working directly in Coda.

What does this prompt do?

  • Lists every doc in your Coda workspace next to its owner, when it was last updated, and how many people actually viewed it over the trailing window, so you can sort by least used instead of guessing
  • Scores each doc for staleness by combining no recent edits with low or zero views, and lets you filter to one owner or to docs nobody has opened at all
  • Shows you what is actually inside a doc before you touch it, including its pages, its tables and a sample of real rows, so a dead scratchpad is easy to tell apart from a quiet but load bearing tracker
  • Records a keep, archive or reassign verdict with a note for every doc into a governance table in Coda, so a later review round updates your decisions instead of duplicating them
  • Emails a doc owner to confirm whether their doc is still needed, and posts a summary of the review round to your operations Slack channel

What do I need to use this?

  • A Coda account with access to the docs you want to review, plus workspace analytics available to your plan
  • A table in Coda to act as the governance registry, with a column for the doc ID that verdicts are recorded against
  • A Gmail account to send owner confirmation emails from
  • A Slack workspace and a channel for posting the review summary

How can I customize it?

  • Change the trailing window used for view counts and the thresholds that decide when a doc counts as stale
  • Adjust how much weight the staleness score gives to age since the last edit versus low view counts
  • Edit the wording of the owner confirmation email and choose which Slack channel the round summary posts to
  • Add your own verdict options or extra fields, such as a review date or a retention category, to the governance table

FAQs

Will this delete any of my Coda docs?
No. The console never deletes or archives anything in Coda. It records your verdict as a recommendation in a governance table, and the actual archiving or deleting stays a deliberate human action inside Coda.
Why do the view numbers stop a day short of today?
Coda's usage data takes about a day to finish processing, so the most recent full day is normally the freshest available. The console checks which day is actually ready and reports against that, rather than showing you an empty or misleading count for today.
What happens if I run the review again next quarter?
Verdicts are recorded against each doc's ID, so a second review round updates the existing entry for that doc rather than adding a duplicate row. You get a running record of how each decision changed over time.
Can I see what is inside a doc before deciding?
Yes. Selecting a doc shows its pages, the tables it contains and a sample of real rows from those tables, which is usually enough to tell an abandoned scratchpad from a low traffic tracker that someone still depends on.
Why does the doc list take a moment to fill in?
Coda limits how quickly docs can be listed, so the console loads them progressively and remembers what it has already fetched instead of re-requesting everything each time you change a filter or sort.
Can I review only the docs owned by one person?
Yes. You can filter the list to a single owner, or narrow it to docs that nobody has opened at all in the window, which is usually the fastest way to work through a large backlog.

Related templates

Share of voice dashboard for your brand and competitors

See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.

GDELT
Notion
Slack Bot
App
Approval war room for every social post awaiting sign-off

One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.

Hootsuite
Slack Bot
App
Turn champion job changes into new pipeline in Attio

Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.

Boomerang
Attio
Slack Bot
Agentic Task
Collect social post requests and schedule them in Hootsuite

Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.

Hootsuite
Slack Bot
General Input Database
App
Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Compare every Hireflix candidate for a role side by side

A calibration board that lines up every candidate's answer to the same question, hides names until your panel has scored, and writes the agreed rating back.

Hireflix
Gmail
App

Stop guessing which docs are still alive.

Turn a sprawling Coda workspace into a ranked cleanup list with a recorded decision behind every doc.