Receive
A ticket lands — email, form, API, or the support widget — linked to the right account and contact
- Email → ticket gateway
- Web form embed
- API endpoint
- Manual creation
Support tickets that already know who the customer is, what they bought, and which deals they're in. SLA timers with business-hours awareness. Approvals before close. A solutions library that builds itself from real resolutions.
A ticket's job isn't just to get closed — it's to leave the team smarter than it started.
A ticket lands — email, form, API, or the support widget — linked to the right account and contact
Assign owner, set priority and severity, configure SLA timer
Work the issue inside the ticket — internal notes, customer replies, attachments, all on one timeline
Save the resolution to the solutions library — future tickets surface it inline as you type
new → assigned → pending → closed. Transitions are validated server-side: a ticket can't jump straight from new to closed, and re-opening an old closed ticket needs admin role.
Priority + severity derive an SLA target. A timer ticks down on every ticket; escalation rules fire when it's about to expire.
Some orgs need a second pair of eyes before close. /tickets/approvals queues tickets awaiting sign-off; one click records the decision with timestamp and rationale.
A write-once knowledge base built from real ticket resolutions. /solutions is searchable; new tickets surface matching articles automatically as the subject is typed.
First-response time, resolution time, SLA hit rate per assignee, volume by tag, backlog age distribution. /tickets/analytics is the on-call manager's morning page.
Add the columns your team needs — environment, product version, customer plan, escalation level — without code. Filterable in list view, available in API and mobile.
Tickets share the same data plane as leads, deals, and invoices — and the same API for everything outside it.
SLA timers respect an org-level business-hours calendar. Time spent outside business hours doesn't count toward the SLA, and the calendar can include public holidays. The settings live under /settings/support.
Yes — a customer portal exposes tickets owned by the requesting contact via a tokenised public URL. Customers can read updates, post replies, and attach files; staff-only notes are filtered server-side.
A Celery beat task scans open tickets every minute. When a ticket's SLA is within an org-configured warning threshold, it fires the case.escalated webhook and (optionally) re-assigns to a senior responder per the escalation policy.
Yes — solutions are indexed on title, body, and tags. The inline-match feature on ticket creation hits the same index. PostgreSQL's full-text search powers it; no external Elasticsearch needed for typical loads.
Self-hosted, open source, and right next to your CRM data. Spin it up in five minutes with Docker.