Everything in HC Tickets
A complete ticketing system, configured per server, with no server-specific behaviour baked into the product.
Every feature below is available to every server at no cost. There is no premium tier and nothing on this page is gated.
Panels
A panel is the message your members click. You control the embed — title, description, colour, thumbnail, image, footer, author, and up to 25 fields — plus the buttons or select menu attached to it.
- Unlimited panels per server, on every server
- Buttons or a select menu, with labels, emoji and styles
- Each button carries its own ticket configuration
- Live Discord-accurate preview before you deploy
- Deployed messages stay linked to their panel, so edits redeploy cleanly
Forms
Attach a modal to any button and collect what you need before a channel is even created. Answers are stored against the ticket and exposed to every template as variables.
- Short and paragraph fields
- Required or optional, with min and max lengths
- Named variables like {form.order_id}
- Reusable across panels
- Responses preserved in the transcript
Claiming
Claiming is recorded as history rather than a single overwritten column, so a handoff does not erase who worked the ticket first.
- Claim and unclaim, with full history
- Optional channel permission changes on claim
- Staff can only release their own claim; admins can override
- Claim counts feed the staff analytics
Permissions
Access is decided server-side on every action. Hiding a button is presentation, never protection.
- Support, admin, dashboard and blacklist roles
- Per-panel support roles that override the server default
- Administrator bypass you can switch off
- Row-level security enforced in the database itself
Logging
Every meaningful action is written to a structured event table. Discord log messages are a projection of that data, not the record itself.
- Created, closed, reopened, deleted, claimed, unclaimed
- Users added and removed, renames, transcript generation
- Configuration changes
- Queryable history that outlives a purged channel
Transcripts
Each transcript is captured as canonical JSON and rendered to HTML from it. If the design changes, the whole archive can be regenerated from the source documents.
- Messages, attachments, embeds, stickers, reactions, replies
- Edited and deleted state preserved
- Stored in a private bucket, served through short-lived signed URLs
- Versioned schema, so old transcripts stay readable
Analytics
Metrics computed in Postgres over recorded events. Nothing is estimated, and a metric with no data says so instead of showing a zero.
- Tickets created, closed and currently open
- Average resolution time
- Average first response time
- Volume by panel and by day
- Staff claim leaderboard