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: Support hidden (tickets unlock at the Sales plate)
- Sales: 500 tickets — CRUD, categories, auto-SLA, threaded comments
- Higher plates: cap scales up (Growth 1,000, Full Loop 2,000, Agency 10,000)
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/README.md |
| Feature flag | crm:support (minPlate: sales, usage-capped: Sales 500 / Growth 1,000 / Full Loop 2,000 / Agency 10,000) |
| Cron | GET /api/cron/sla-breach-notifications |
| Migrations | 00031_support_tickets.sql (tickets), 00043_ticket_comments.sql (comments), 00051_support_ticket_category.sql (category column), 00164_realtime_support_tickets.sql (realtime publication) |
| Audit actions | support_ticket.created, support_ticket.updated, support_ticket.deleted |