Features
Support — Ticket Management
A lightweight helpdesk built into OpsDash. Manage client requests, support tickets, and internal issues in the same workspace as CRM and project data. SLA breaches surface directly on the Dashboard Insights card.
- Free: 20 support tickets
- Pro: 500 tickets
- Enterprise: Unlimited
Tickets
Ticket list (/[locale]/org/[slug]/support): Table with title, contact, company, assignee, priority and category badges, status, SLA due date, created date. Pagination uses "load more" (cursor). Search and filters depend on getSupportTicketsPaginated options.
Create ticket: Title (required), description, priority, category, linked contact, SLA due date (auto-filled from priority if blank), status.
Ticket detail: Description, classification sidebar (status, priority, category, SLA), threaded comments, linked contact, linked project.
Auto SLA
When creating a ticket without an explicit SLA due date, sla_due_at is auto-calculated from priority:
| Priority | SLA |
|---|---|
| urgent | 4 hours |
| high | 24 hours (1 day) |
| medium | 72 hours (3 days) |
| low | 168 hours (7 days) |
Note: Changing a ticket's priority after creation does not recompute sla_due_at. SLA is set at creation time only.SLA breaches (tickets where sla_due_at < now() and status is not resolved/closed) surface on the Dashboard Insights card and trigger the GET /api/cron/sla-breach-notifications cron.
Categories
| Value | Label |
|---|---|
| general | General |
| billing | Billing |
| technical | Technical |
| account | Account |
| feature_request | Feature Request |
Threaded comments
Any team member (not viewer) can comment on a ticket. Comments support edit and delete by the author or org admin.
Technical reference
| Item | Detail |
|---|---|
| Action files | actions/support.ts (barrel) → support-tickets-read-list.ts, support-tickets-read-detail.ts, support-tickets-create/update/delete.ts; ticket-comments*.ts for comments |
| List UI (app) | org/[slug]/support/: tickets-content.tsx (shell), use-support-tickets-content.tsx (TanStack Query), tickets-content.types/constants/helpers, support-tickets-table-columns.tsx, support-tickets-entity-drawer.tsx, support-tickets-empty-states.tsx, support-tickets-infinite-cache.ts, use-support-tickets-intro-tour.ts — see docs/features/support.md |
| Feature flag | crm:support (usage-capped: Free 20, Pro 500, Enterprise unlimited) |
| Cron | GET /api/cron/sla-breach-notifications |
| Migrations | 00014_business_module.sql (tables), 00051_support_ticket_category.sql (category column) |
| Audit actions | support_ticket.created, support_ticket.updated, support_ticket.deleted |