Run your quarterly OKR review board on ClickUp Goals
See every ClickUp goal against how much of the quarter is already gone, flag whatever is tracking behind pace, and update the numbers live in your business review.
Build an internal app that my leadership team opens during our weekly business review to run our quarterly OKRs out of ClickUp Goals. The problem it solves is that goal progress is buried in ClickUp and ClickUp shows a current percentage without showing whether that percentage is ahead of or behind where we should be this far into the quarter, so nobody trusts the numbers when we get to the meeting. The audience is a founder, COO, or department head running the review, with each goal owner updating their own key results live.
The main view is a board listing every goal in the workspace, loaded with the ClickUp Get Goals operation. Goals live at the workspace level, and in ClickUp API v2 the word team means workspace, so scope the board to one workspace ID that the user picks on first load and the app remembers afterwards. Get Goals returns every goal in a single response with no pagination. Each row shows the goal name, its owners, the due date, and the overall progress percentage.
Next to progress, show pace. For each goal, compute how much of the quarter has already elapsed as a percentage of the window between the goal's start date and its due date, and display that percentage right beside actual progress. All ClickUp timestamps are Unix epoch milliseconds, so convert before doing any date math. When progress trails elapsed time by more than a configurable threshold, default 10 percentage points, flag the goal as At risk automatically; otherwise label it On pace or Ahead. Sort at-risk goals to the top of the board and expose the threshold as a setting.
Load key results for a goal with the Get Goal operation, which returns the goal's key results with their current value and target value. Render each key result as a row showing current against target, the percent complete that implies, and the same pace comparison used at the goal level. Handle the different key result types ClickUp supports, including number, currency, percentage, boolean, and automatic key results tied to tasks, and format each one appropriately rather than printing raw values.
Clicking a goal opens a detail pane containing its key results plus the ClickUp tasks backing that goal, pulled with Get Filtered Team Tasks scoped to the Lists or tags tied to the goal. Give the user a small control for mapping a goal to one or more Lists and tags, populating the List picker with Get Lists, and persist that mapping per goal so the meeting never has to reconfigure it. Show each task with its status, assignee, and due date, plus a rollup of how many are complete versus still open, so we can see whether the underlying work is actually moving or the number is just being typed in. Get Filtered Team Tasks is paginated at 100 tasks per page, so page through until the results are exhausted.
During the meeting the app has to be editable, not just readable. From the detail pane, let the goal owner update a key result's current value with Update Key Result, change a goal's owner or due date with Update Goal, and add a brand new key result mid quarter with Create Key Result. Note that Update Goal expects owners as separate add and remove lists rather than one replacement array. Every edit writes straight back to ClickUp and then refreshes the affected goal and its pace flag, so the board is accurate the moment a number changes.
Keep a running change log for the session recording each edit as goal, field, previous value, new value, who made it, and when. At the end of the meeting a Post recap button sends a Slack message to our leadership channel listing the goals currently flagged at risk and every change made during the session. Let the user choose the channel once and remember it, and show a preview of the recap before it sends.
Persist the selected workspace ID, the at-risk threshold, the goal to Lists and tags mappings, the chosen Slack channel, and the current session change log. Everything else reads live from ClickUp each time the board is opened, so the meeting always starts from current data.
What does this prompt do?
- Lists every goal in your ClickUp workspace with its owners, due date, and progress so far, all on one screen.
- Puts progress side by side with how much of the quarter has already elapsed, and automatically flags anything tracking behind pace as at risk.
- Opens a detail pane for each goal showing its key results plus the ClickUp tasks behind them, so you can tell real movement from a number someone typed in.
- Lets owners update key results, change a goal's owner or due date, and add a key result mid quarter, then posts a recap of at-risk goals and every change to your leadership channel in Slack.
What do I need to use this?
- A ClickUp account with your quarterly goals and key results already created
- Permission to edit the goals you want to update during the meeting
- A Slack workspace and the channel where your leadership team should get the recap
- Optional: a sense of which ClickUp Lists or tags hold the work behind each goal
How can I customize it?
- Change how far behind pace a goal has to fall before it gets flagged at risk, starting from the default of 10 points
- Map each goal to the Lists or tags that hold its underlying work, so the detail pane shows the right tasks
- Pick which Slack channel gets the end of meeting recap and what it includes
FAQs
Do I need a paid ClickUp plan for this?
How does it decide that a goal is at risk?
Do changes made during the meeting really save back to ClickUp?
Can we use this for goals that are not quarterly?
Why does it show tasks next to the key results?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Stop guessing whether your OKRs are on track.
Walk into the business review with goal progress, quarter pace, and the work behind every number already on one screen.