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:

PrioritySLA
urgent4 hours
high24 hours (1 day)
medium72 hours (3 days)
low168 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

ValueLabel
generalGeneral
billingBilling
technicalTechnical
accountAccount
feature_requestFeature 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

ItemDetail
Action filesactions/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 flagcrm:support (usage-capped: Free 20, Pro 500, Enterprise unlimited)
CronGET /api/cron/sla-breach-notifications
Migrations00014_business_module.sql (tables), 00051_support_ticket_category.sql (category column)
Audit actionssupport_ticket.created, support_ticket.updated, support_ticket.deleted