Track who has read every onboarding page in Confluence

By General Input

People Ops sees every new starter's reading progress on one screen, and each new hire gets their own role based list they tick off as they go.

Integrations

  • Confluence
  • BambooHR
  • Slack Bot

Type

App

Categories

  • HR & People

Build me an onboarding progress app that two different audiences open: People Ops, who need to see where every recent new starter is in their required reading, and the new starters themselves, who need their own checklist. It runs on Confluence for the content, BambooHR for who the new starters are, and Slack Bot for nudges. Which view someone lands on depends on who is signed in, so be explicit about that split when you build it.

Admin view, for People Ops. One row per person who started in the last 90 days. Get the cohort from BambooHR with Get Employee Directory and filter on hire date, then call Get Employee for each person to fill in department and job title. Each row shows name, department, job title, start date, a completion bar of acknowledged pages over total pages on that person's role based reading list, and how long they have been stalled, measured as days since their most recent acknowledgement. Let People Ops sort by most stalled and filter by department or role, and let them click into any row to see that person's list item by item with the acknowledged ones marked.

Personal view, for a new hire. Only their own reading list, in the order they should work through it, with no cohort data and no other person's progress anywhere on the screen. Each item is a row with the page title and its status. Expanding an item loads the page body inline with Get Page by ID requesting the storage body format, so the person reads the actual content without bouncing out to the wiki.

Reading list setup. Give People Ops a config screen where they define one reading list per role. A list can be assembled from any mix of three sources: Search Content (CQL) to select pages by label and space, Get Pages in Space to take everything in a space, and Get Descendant Pages against a parent page to pull in a whole onboarding tree at once. Save the resolved, ordered set of page ids per role, and let People Ops re-resolve a list so newly added wiki pages get picked up. Lists are role based by design, so an engineer and a salesperson must be able to end up with different required reading drawn from the same wiki.

Acknowledging a page. This has to be an explicit button the new hire presses on each item, never something inferred from them opening or scrolling the page. Confluence exposes no content analytics operation, so there is no way to see who viewed a page and read tracking cannot be inferred. Do not model progress on wiki checkboxes or inline tasks either. When the button is pressed, do two things: record the acknowledgement in the app's own storage as person, page id and timestamp, which is the source of truth for every completion bar and stalled count, and write a footer comment on that page with Create Footer Comment naming who acknowledged it and when, so there is a visible trace inside Confluence for anyone reading the wiki.

Asking a question. On any item the new hire can type a question, which posts to the same page with Create Footer Comment, as a reply to their acknowledgement comment where one already exists, so the conversation stays attached to the page it is about. Show the existing footer comments on each item using Get Footer Comments for Page so the new hire can see what has already been asked and answered.

Nudging. From the admin view, People Ops can press nudge on any stalled row. Resolve that person's Slack account from their BambooHR work email with Look Up User by Email, open a direct message with Open a Conversation, and send it with Send a Message. The message should name what is still outstanding rather than saying something generic, and link back to their list. Record when each person was last nudged and show it on the row so nobody gets pinged twice in the same day.

The app stores acknowledgements, questions asked, nudge history, and the role to reading list config. Enforce that a new starter can only ever reach their own list and never the cohort dashboard or another person's progress.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them