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.
Logging time on a ticket
Every ticket gets a matching task, IT-<id>: <title>, under the
IT Department project, and the ticket's status carries over to the task
(resolved or closed → done). Time is not logged automatically. The
assignee is added to IT Department so the task shows in their My Day
picker.
The quickest way is the ⏱ Log time form on the ticket page: enter the
minutes you spent (plus an optional note), and an entry ending now is added
to the ticket's task. The page shows the running total next to the linked
task. You can still log it from My Day by picking the IT-<id> task.
Logging time doesn't close the ticket; set the status to Resolved or Closed as before.
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 →