Overview
For teams under 10 people handling 200 or fewer tickets per month, a Sheet works surprisingly well as a ticketing system. This template covers the basics: priority, status, assignment, and SLA timing.
Column layout
Copy this column order into a blank Google Sheet, or let SheetLink Forms create the headers for you on first submission.
| Column | Notes |
|---|---|
| Ticket ID | SheetLink-generated unique ID |
| Created | Timestamp of submission |
| Customer | Name |
| Reply-to address | |
| Subject | Short summary from form |
| Description | Full body of the issue |
| Product area | Dropdown: Billing / Auth / Feature X / Integrations / Other |
| Priority | Dropdown: P1 / P2 / P3 / P4 |
| Status | Open / In Progress / Waiting on Customer / Resolved / Closed |
| Owner | Assigned team member |
| First response at | Timestamp - updated by the agent on first reply |
| Resolved at | Timestamp when closed |
| SLA target hours | Formula-computed from priority |
| SLA breach? | Formula-computed from now vs created vs SLA target |
Useful formulas
Paste these into a top-of-sheet summary row or a separate dashboard tab.
SLA target by priority
=IF(H2="P1",4,IF(H2="P2",24,IF(H2="P3",72,168))) Maps priority to hours.
First-response time (hours)
=IF(K2="","",(K2-B2)*24) SLA breach flag
=IF(I2="Resolved",FALSE,IF((NOW()-B2)*24>M2,TRUE,FALSE)) Median response time
=MEDIAN(ARRAYFORMULA(IF(K2:K<>"",(K2:K-B2:B)*24))) Conditional formatting
- Priority column: red for P1, orange for P2, yellow for P3, gray for P4.
- SLA breach column: red background when TRUE - catches breaches at a glance.
- Status column: green for Resolved/Closed, blue for In Progress.
Pivot table guidance
Pivot with Owner as rows, Status as columns. Shows open queue depth per agent. Second pivot: priority as rows, SLA breach rate as values.
Recommended add-ons
- AI Lead Scoring (repurposed): Can be retargeted as an urgency classifier for tickets based on message content.