Help Desk Module
Operations module on the frozen platform. An internal ticketing MVP — number, subject, description, tenant-managed category, priority, status workflow, assignment, notes, activity timeline, optional due date, and KPIs — with soft, optional links to Contacts and Companies. Unlike many CRM modules that hard-depend on Contacts, Help Desk is standalone: it installs with no module dependencies and works fully on its own.
Not Central Feedback
Give Feedback is the platform bug/feature intake flow (Tenant submit → Central triage). Help Desk is a tenant-scoped internal support queue for your workspace team — distinct product, permissions, and data model.
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | help-desk.md |
| Engineers | help-desk-developer.md |
| Production / ops | help-desk-production.md |
| File a complaint readiness | workspace-complaint-dialog-production-readiness.md |
| Module Development Standard | module-development.md |
| Reference blueprint | expenses-overview.md |
| Tenant API | ../api/tenant-v1-help-desk.md |
Capabilities
- Header ticket: number (
HD-prefix, configurable), subject, description, tenant-managed category, priority (low/medium/high/urgent), status, optionaldue_at, optionalsource(manual|email) - Optional
contact_idandcompany_id— soft links, only validated (and only pickable in the UI) when the corresponding module is entitled on the workspace - Optional Knowledge Base article links (soft M2M) when
knowledge-baseis entitled — pick published articles (or drafts when the actor hasknowledge-base.update); backlinks on article view when Help Desk is entitled - Status workflow:
open → in_progress | waiting | resolved | closed;resolved → closed | open;closed → open - Content edits blocked when status is Closed — use status actions, assignment, and notes instead
- Assignment (
created_by/assigned_to) with assignee scoping viahelp-desk.assign - Notes (comments) + activity timeline; optional attachments on ticket create and note replies (counts toward Storage quota)
- SLA policies (1.3.0): response/resolve targets by category and/or priority; ticket clocks; breach scanner + notifications; list filters for breached / at risk
- Shared email intake (1.4.0): workspace IMAP support mailbox (not personal Email accounts); inbound creates tickets or appends notes when the subject/body references
HD-##### - @mentions (1.5.0): ticket notes support
@usermentions with in-app notifications - Communication Template replies (1.7.0): soft-gated WhatsApp template picker on ticket view when Communication Templates is installed (
communication-templates.use); placeholder contexthelp-desk— no hardmodule_dependencies - Table and status Kanban (Board/List toggle; fixed
HelpDeskStatusEnumcolumns; drag →POST …/status) with search, status/priority/category/SLA filters, assignee filter, overdue filter, and My Tickets toggle; Manage categories, Manage SLAs, and Manage mailboxes dialogs (samehelp-desk.*permissions as ticket CRUD) - KPIs via
GET /help-desk/stats(total, mine, open, in progress, waiting, resolved, closed, overdue, sla_breached, sla_at_risk) - Dashboard widget
help_desk_my_open(module +help-desk.view; assignee-scoped like list) - Trash filtering plus Restore and Delete permanently
- Module licensing (
module:help-desk) + Spatie permissions — free Marketplace opt-in, no hard dependencies - In-app notifications on assignment, close, reopen, and SLA breaches
- Automation triggers (when Automation entitled):
help_desk.ticket_created,help_desk.ticket_status_changed,help_desk.sla_breached - Audit + activity logging
due_atand SLA clocks stored in UTC; overdue/SLA KPIs and filters use workspace timezone convention (see Workspace timezone)
Permissions
help-desk.view · create · update · delete · restore · force.delete · assign · close · reopen
| Role | Grants |
|---|---|
| admin | All except force.delete |
| manager | view, create, update, assign, close, reopen |
| staff | view, create, update, close, reopen |
Enable Help Desk from Marketplace (free) — it has no hard dependencies, so it can be installed on its own, before or after Contacts / Companies. Catalog: slug help-desk, category operations (Operations), is_default_included = false, is_billable = false, sort_order = 10, version 1.8.0.
Why standalone (soft dependencies)
Most internal tickets (IT requests, billing questions) do not require a CRM contact or company record. Both links are optional and only appear once the related module is installed. This keeps Help Desk usable as a lightweight, install-anywhere operations module rather than forcing the full CRM stack.
Explicitly deferred
- Multi-channel intake beyond shared IMAP (chat, social)
- Customer portal (external submit / track)