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
Built-in helpdesk
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.
How it works
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
Capabilities
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.