Last updated 2026-05-04
IT helpdesk
A simple in-app ticketing system. Any employee can submit, IT staff triage from a shared queue. Tickets support screenshot/PDF attachments, deadlines, priority queue, and a morning digest email.
Turning it on
Per-tenant module flag: admin → /admin/settings/modules → toggle
IT helpdesk ON. Default is OFF for new and existing tenants
(it doesn't show up in anyone's sidebar until you enable it).
To make someone an IT-staff member, set their department field to
IT at /admin/employees/<id>/edit. They'll start seeing the IT
queue automatically.
What employees see
A single sidebar link in Your work:
- 🛠️ IT tickets → opens
/it/minewhich has both: - The list of their own tickets with current status + due date
- A prominent "+ Report an issue" button at the top
Click the button → fill in title + category (Hardware / Software /
Network / Account / Other) + description → submit. Attach up to 5
screenshots or PDFs (≤ 5 MB each, image/* or application/pdf)
on the form or on any follow-up comment. The IT team is emailed
immediately.
When IT updates the ticket — comments, status changes — the reporter gets an email with a direct link.
What IT-staff and admins see
A dedicated IT sidebar section with three items:
- 🛠️ Report IT issue — same form as above
- ◆ My tickets — tickets they've personally submitted
- ≡ IT queue — the shared triage queue
The queue shows every ticket sorted by priority (Urgent → High → Medium → Low), then by due date (overdue surfaces first), then last-update time. Overdue dates render in red. Filter by status (Open / In progress / Resolved / Closed / All) and by category. A 📎N badge in the title column shows attachment count.
Triaging a ticket
Open a ticket from the queue. As IT-staff you get an "IT actions" panel:
- Claim this ticket — one-click; sets you as assignee, status flips to In progress
- Status dropdown — Open → In progress → Resolved → Closed
- Priority dropdown — Low / Medium / High / Urgent
- Due date picker — sets a deadline; overdue tickets surface in red
- Assignee dropdown — reassign to another IT-staff member
- Comment box — visible to the reporter; firing a comment also emails them. Supports attachments.
Manager priority/deadline overrides
Anyone with role manager (or admin) gets a Manager actions
panel on a ticket they can view, with just two controls:
- Priority — promote/demote so urgent items surface
- Due date — set a deadline to commit to
Managers can't change status or reassign — those stay with IT-staff — but they can flag importance and ETA from any ticket they have access to (their own team's submissions, or all of them if they're admin).
Status semantics
- Open — fresh ticket, not yet picked up
- In progress — someone's working on it
- Resolved — IT thinks it's fixed; reporter gets emailed and can reply if wrong
- Closed — done, no further activity expected
Morning digest
Every morning at 07:00 UTC, every IT-staff member (and admin) gets one email per company listing all open + in_progress tickets, grouped by priority and sorted by due date. Overdue tickets are flagged inline. The digest is skipped for companies with zero open tickets.
If you want a different time, that's a single line in the prod
crontab (/api/cron/it-morning-digest).
Email notifications
| When | Who gets emailed |
|---|---|
| Ticket submitted | Every IT-staff member + admins (broadcast) |
| Status change | The reporter |
| Comment added | The "other party" |
| Daily 07:00 UTC | All IT-staff for any tenant with open tickets |
Attachment policy
- Allowed types:
image/png,image/jpeg,image/gif,image/webp,image/heic,application/pdf - Max size: 5 MB per file, 5 files per upload (per submit/comment)
- Storage: content-addressed via
app/storage.py(deduped by sha256) - Access: only the reporter, IT-staff, and admins can fetch via
/it/attachment/<id>
Out of scope for v1: SLA timers, internal-only comments, asset register,
knowledge base, escalation rules. Add as needed via /feedback.
See something wrong or outdated in this article? Report it →