Assign owners to stale Confluence pages, space by space

By General Input

Work through one wiki space at a time: see what has gone stale, give every page an accountable owner, and record it somewhere that survives.

Integrations

  • Confluence
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Operations

I want an app where our documentation team works through wiki governance one space at a time, using Confluence, Google Sheets and Slack Bot. This is a working surface, not a report. The point of the app is that every page ends up with a named accountable owner and a recorded review outcome, because Confluence cannot natively report page ownership and the last editor is a poor proxy for who is actually accountable.

The main screen starts with a space picker built from Confluence Get Spaces. Once a space is selected, show every page in it as a single ranked queue, worst first. Build the queue from Confluence Search Content (CQL) using lastmodified filters against the configured staleness threshold, and Confluence Get Pages in Space so that nothing in the space is missed by the search index. Each row shows the page title, how long since it was last genuinely touched, who made the last substantive edit, the current review outcome if any, and the assigned owner if one has been recorded.

Rank staleness on three signals only: how long since the last update, the page's position in the space page tree from Confluence Get Ancestor Pages (deeply buried or orphaned pages score worse), and comment silence from Confluence Get Footer Comments for Page (a page nobody has commented on in a long time is a page nobody is watching). There is no page view analytics operation available for Confluence, so do not promise view counts, read counts, popularity or traffic data anywhere in the UI, and do not design a column or chart that would need them. Because the tree and comment lookups are per page and Confluence rate limits are points based, compute the full score lazily for the visible page of results rather than the entire space at once, and sort the rest on last updated age.

For the last substantive editor, use Confluence Get Page Versions rather than the page's original creator. Walk the version history and attribute the last edit that looks like real work rather than a trivial touch, and show the version message where one exists so a reviewer can judge. Resolve account IDs into readable names with Confluence Get User by ID and cache them for the session so the same person is not looked up repeatedly.

Clicking a row opens a detail panel beside the queue without losing the reviewer's place. The panel shows the page body from Confluence Get Page by ID requested with the storage body format and rendered readably, plus the page's comment activity from Confluence Get Footer Comments for Page with the most recent first. Include a link out to the page in Confluence for anything the panel cannot show.

From that panel a reviewer can do four things. First, assign an accountable owner, which is the whole reason the app exists. Second, stamp a review outcome as a label using Confluence Add Labels (v1 API), with needs-review, verified and archive-candidate as the defaults. Third, leave the reviewer note directly on the page itself using Confluence Create Footer Comment, so the reasoning lives with the content and not only in the register. Fourth, DM the newly assigned owner using Slack Bot Look Up User by Email to find them, Slack Bot Open a Conversation to get the DM channel, and Slack Bot Send a Message to send a handoff note containing the page title, the link, the review outcome and the reviewer's comment, so the handoff is acknowledged rather than assumed.

The owner register is a durable record in Google Sheets and must survive outside Confluence. Keep one row per page with the page ID, title, space key, owner name, owner email, review outcome, reviewer, the date reviewed and the review cycle it belongs to. On load, read the register with Google Sheets Get Values and join it onto the queue by page ID so existing owners and outcomes show immediately. Assigning an owner to a page with no row appends one with Google Sheets Append Values; re-reviewing a page that already has a row overwrites it in place with Google Sheets Update Values rather than appending a duplicate. Never let the same page ID appear twice in the register.

Make the staleness threshold configurable at 90, 180 or 365 days, switchable from the main screen, and re-rank the queue when it changes. Default the queue to pages nobody has signed off in the current review cycle, so reviewers are not shown work that has already been done, with a toggle to reveal the whole space including already-reviewed pages. Show the reviewer their progress through the current space, for example how many pages remain unsigned, because working a space to zero is the behaviour the app is trying to encourage. Writes should be optimistic in the UI but clearly show if a Confluence label, comment or Slack message failed, so a reviewer never believes a handoff happened when it did not.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board