Weekly service desk scorecard with a running trend history

Every Monday at 8am, count last week's tickets and SLA results, add one row to a tracking sheet, and post the headlines to Slack.

Deterministic Code
Jira Service ManagementGoogle SheetsSlackCustomer SupportOperationsDaily DigestsData Sync
PromptCreate

Every Monday morning at 8:00am, build my service desk scorecard for the week that just ended and keep a running history of it. This is deterministic reporting: fixed schedule, fixed metric set, counting and formatting over structured fields, no judgement calls. Every number should be computed in code rather than inferred.

Report on the seven day window that ends the Sunday immediately before the run, meaning the previous Monday at 00:00:00 through that Sunday at 23:59:59 in the service desk's local timezone. Derive the window from the run date each time so it stays correct every week.

Use List Customer Requests in Jira Service Management to pull the requests for the service desk I am reporting on. Include resolved and closed requests, not just open ones, and expand the request type and status so the breakdown fields come back on each record. Page through the results until the last page rather than stopping at the first page. From the full set, keep every request that was either created inside the window or resolved inside the window. A request can fall into both groups, so count it in each without double counting the totals.

For each request in scope, call Get Request SLA Information to retrieve its SLA cycles. Treat a request as meeting its SLA when its resolution cycle completed without breaching, and as a breach when any completed or ongoing cycle reports that it breached. Use the time to resolution metric for the headline figure. Skip requests that carry no SLA rather than counting them as either met or breached. Respect the rate limits: if a call comes back rate limited, wait for the interval the response asks for and retry.

Tally the totals deterministically: requests created in the window, requests resolved in the window, requests still open at the end of the window, SLA met, SLA breached, and SLA attainment as a percentage of resolved requests. Add a breakdown by request type and by current status. Our Jira Service Management catalog exposes no queue operation, so build the breakdown from the request type and status on each request and do not attempt to group by queue.

Before writing anything, use the Google Sheets Get Values action to read the existing rows in the tracking tab and take the last row as the previous week's figures. Read first, because once the new row is appended the last row would be this week's own numbers.

Then use the Google Sheets Append Values action to add exactly one new row for this week. Append only. Never update or overwrite an earlier row, because the value of this sheet is the accumulating week over week trend. Keep the column order fixed on every run: week start, week end, created, resolved, still open, SLA met, SLA breached, SLA attainment percent, and the request type breakdown. If the tab is empty on the first run, write a header row once before the first data row. If the last row already covers the same window, skip the append so a re run does not double count the week.

Finally, use the Slack Send a Message action to post the headline numbers to the service desk management channel. Include created, resolved, still open, and SLA breaches for the week, each with the change against the previous week's row shown as a difference and a direction, for example "Resolved: 58 (up 7)". Add the request type breakdown as a single short line. If there was no previous row, say this is the first week of tracking instead of showing a change. Keep the message short enough to read in the channel without opening the sheet, and point to the tracking sheet for the full history.

Example output

Service desk scorecard: week of 27 Jul to 2 Aug Created: 61 (down 4 vs last week) Resolved: 58 (up 7) Still open: 23 (down 3) SLA breaches: 5 of 58 resolved, 91.4% attainment (down 2 breaches) By request type: IT help 24, Access request 18, Hardware 11, Other 8 Full history in the tracking sheet.

Additional information

What does this prompt do?
  • Pulls every support request created or resolved in the week that just ended from your service desk.
  • Counts what matters: tickets raised, tickets resolved, still open, and how many hit or missed their service level targets, with a breakdown by request type.
  • Adds exactly one new row per week to a tracking spreadsheet, so the tab slowly builds into a trend history instead of overwriting earlier weeks.
  • Posts the headline numbers to your team channel along with the change against the previous week.
What do I need to use this?
  • A Jira Service Management account with access to the service desk you want to report on
  • A Google account and a spreadsheet with a tab set aside for the weekly history
  • A Slack workspace and a channel where the report should land
How can I customize it?
  • Change the day and time it runs, or move to a fortnightly or monthly cadence
  • Choose which channel gets the report, and who gets mentioned when breaches climb
  • Adjust the columns in the tracking sheet, for example adding a split by request type or by team

FAQs

Will this overwrite last week's numbers in my spreadsheet?
No. It only ever adds a new row to the bottom of the tab. Earlier weeks are left untouched, which is the whole point: the sheet becomes a trend history you can chart over time.
Do I need to set the spreadsheet up first?
Just create a spreadsheet and pick a tab for it to write to. On the first run it writes a header row, then one row of numbers, and every week after that it adds a single row underneath.
Can I break the numbers down by queue?
The report groups tickets by request type and status rather than by queue. In most service desks those line up closely with how queues are arranged, so you still see where the volume is landing.
What if a ticket has more than one target, like a response time and a resolution time?
A ticket counts as a breach if any of its targets were missed, and the headline figure follows the time to resolution target. Tickets with no service level target attached are left out of the met and breached counts entirely.
What happens the very first week, when there is nothing to compare against?
The Slack message simply says it is the first week of tracking and shows the raw numbers. From the second week onward it includes the change against the previous row.

Related templates

Turn website roof inspection requests into JobNimbus leads

New roof inspection requests from your website form land in JobNimbus within a minute, with no duplicate records and nothing retyped by your team.

JobNimbus
Google Forms
Slack
Agentic Task
Flag at-risk students in Canvas before they fall behind

Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.

Canvas
Google Sheets
Slack Bot
Agentic Task
Catch Jira service desk tickets before their SLA runs out

Every hour, find the tickets closest to breaching, leave a nudge on each one, and post a ranked at-risk list to your support channel.

Jira Service Management
Slack Bot
Agentic Task
Triage new Jira Service Management requests before anyone opens them

Every new customer request gets a priority, triage labels, a friendly reply with the right help article, and a Slack ping only when it is truly urgent.

Jira Service Management
Jira
Slack
Agentic Task
Weekly Canvas grading backlog report in Slack and Sheets

Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.

Canvas
Slack Bot
Google Sheets
Deterministic Code
Risk-check every dependency upgrade pull request in GitHub

When a bot opens a version bump pull request, we read the real documentation for that exact version and tell you whether it is safe to merge.

Context7
GitHub
Slack
Agentic Task

Stop rebuilding your service desk report every Monday.

Let it run on a schedule, keep every week's numbers in one sheet, and start the week with the headlines already in your channel.