Tickets
Support in the same console as everything else — no context-switch, no lost tenant. Opt-in per project.
Anatomy of a ticket
A
public_reflikeTKT-3F7A2C(also the email-threading token).A threaded message timeline — messages are authored by a member, the requester or the system, and can be
is_internalnotes never mailed out.An append-only assignment chain of custody — who held it, when, and why.
A state machine:
open ⇄ pending, →resolved, →closed; the only way out of closed isreopen.
Inbound email
Customers can reply by email: POST /inbound (generic) and /inbound/brevo turn an email into a ticket — a TKT-… token in the subject threads the reply onto the existing ticket and reopens it, otherwise a new one is opened. Gated by SVITRIO_TICKETS_INBOUND_SECRET / SVITRIO_TICKETS_BREVO_SECRET.
One inbox across products
GET /admin/tickets is a cross-project unified queue over every project where you hold tickets:read — so a support person works one inbox, not one per tenant.