Product
Shared Inbox
Your support addresses arrive in a common queue. Each message becomes a ticket with a number, a requester, a priority, and an owner. No more « I thought you had replied ».

One ticket per conversation
Successive replies are linked to the same ticket via References and In-Reply-To headers, even when the customer replies from a different address.
No one replies twice
A banner indicates that a colleague is writing on the same ticket. Assignment visually locks the row in team views.
Sorting by keyboard
You scroll the list, assign, apply a label, and move to the next without touching the mouse.
acme.open-helpdesk.com/app/tickets
IDSujetSLAAgent
#4821Facture double sur juinMarie Duval · priorité haute42 minLéa
#4820Export CSV videStudio Novak · priorité normale3 hKarim
#4818Accès SSO refuséMairie de Blois · priorité haute18 min—
#4815Demande de remboursementPierre Aubry · priorité basse1 jLéa
#4811Webhook non reçuTech Ardennes · priorité normale5 hKarim
In detail
Precise queue behavior
- Reception
- MX redirect to an ingestion address, or IMAP poll every 60 seconds.
- Parsing
- Signature and quotes automatically collapsed, attachments extracted and scanned.
- Priority
- Low, normal, high, urgent. Manually editable or by rule.
- Views
- Combinable filters on 14 fields, multi-sort, shared with a team or private.
- Merge
- Two merged tickets retain both threads and notify the requester only once.
- Search
- Postgres full-text search on subject, body, internal notes, and text attachments.
- Replies
- Editor with attachments up to 40 MB, draft saved every 3 seconds.
Create a ticket from your application
curl -X POST https://acme.open-helpdesk.com/api/v1/tickets \
-H "Authorization: Bearer $OHD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"subject": "Paiement refuse",
"requester": { "email": "marie@exemple.fr", "name": "Marie Duval" },
"priority": "high",
"channel": "api",
"body": "La carte est refusee depuis ce matin."
}'