HTKapp Logo

Tickets Module (Support)

HtkDoli's Tickets module lets you manage customer support: create, track and close requests, hold a conversation directly within the ticket, attach documents, link contacts, track time spent, and connect the ticket to a third party or a project. It also includes a knowledge base search.

⚠️ Known limitation — deletion. Dolibarr cannot delete a ticket through its API: the request fails server-side and the ticket stays in place. The cause is a defect in Dolibarr itself, present in version 22 as well as 24, and the app can do nothing about it.

The app therefore offers "Abandon" instead: the ticket moves to the Abandoned status, which is how Dolibarr itself takes a ticket out of circulation. The record stays readable and keeps its history. For a permanent deletion, use Dolibarr's web interface.

Interface and Features (List)

The main view displays the list of all your tickets.

  • Search bar: Search by ticket reference or subject.
  • Sorting:
    • Date (Newest → Oldest)
    • Date (Oldest → Newest)
    • Reference (A-Z, Z-A)
  • Grouping: Depending on the sort, tickets are grouped by creation month (e.g. "February 2024") or by the first letter of the reference. A floating indicator (month or letter) appears briefly while scrolling.
  • Filters by status, each with a count shown next to it:
    • All
    • Open (all statuses < 6, i.e. active)
    • Unread (status 0)
    • Read (status 1)
    • Assigned (status 2)
    • In progress (status 3)
    • Waiting (statuses 5 and 7)
    • Closed / Resolved (statuses 8 and 9)

Displayed Information (Ticket Cards)

Each row represents a ticket with:

  • Its subject.
  • Its reference (badge).
  • The linked third party (logo or initials, and name).
  • Its creation date.
  • Its type.
  • Its severity (colored badge).
  • Its status as a colored dot on the avatar.

Quick Actions

  • Swipe right: Edit the ticket.
  • Swipe left: Abandon the ticket (see the known limitation above).
  • Long press (context menu): Edit, Abandon, Send an email, and — for an unread ticket — Take charge and Close.

Creation

  • A "+" button in the top bar to create a new ticket.

Refresh

  • Pull-to-refresh and a refresh button (keyboard shortcut Command + R): reload the 50 most recent tickets from the server.

Detailed View (Viewing a ticket)

Header (Hero Section)

  • Ticket reference.
  • Subject.
  • Status badge.
  • Linked third party (logo as avatar if available).

Timer Banner (if active)

If a timer is running on the ticket, a banner shows:

  • A pulsing timer icon.
  • The elapsed time in hh:mm:ss format.
  • A Stop button to end the timer; the entry sheet then opens, pre-filled with the measured duration, from which it can be copied (see "Time Tracking").

Information

  • Ticket type (Incident, Request, Other, etc.).
  • Severity (Low, Normal, High, Blocking).
  • Creation date (with time).
  • Last modification date.
  • Total accumulated time spent (shown when set).

Description

The ticket's initial message, posted by the requester.

Notes

  • Public note (visible to customers in exports).
  • Private note (internal use).

Documents

Ticket attachments: viewing, PDF preview, download and upload (files, screenshots, logs, etc.). Depending on the Dolibarr version, the tickets documents API may not be implemented; in that case the section stays empty.

Contacts

List of contacts linked to the ticket (with role, and call/email shortcuts). You can add a contact (Customer support contact, Technical support contact, Contributor) when the ticket is synced and attached to a third party, and unlink a contact by swiping.

Linking

This section gathers contextual links:

  • Linked third party: A clickable card with logo, name, and access to the third party file.
  • Linked project (if applicable): Direct access to the project file.
  • View on the instance: Opens the file in Dolibarr web (useful for actions not exposed via the API).
  • Search the knowledge base: Opens a knowledge base search sheet. The selected article is added as a link in the ticket's private note (not in the conversation).

Conversation

  • Chronological display of all the ticket's messages, distinguishing your own messages ("Me", aligned right) from those of the requester.
  • If loading fails, a reload button is offered.
  • An input bar at the bottom of the screen lets you reply directly (only for an already-synced ticket):
    • Text field.
    • Send button (paper plane).
    • The button is disabled while the message is empty.
    • When offline, the message is queued and shown locally, then sent upon reconnection.

Creation and Editing

The editing screen (TicketEditorView) lets you enter or modify a ticket:

  • Linked third party (required when creating).
  • Linked project (optional; can be detached).
  • Subject (required).
  • Type: Incident, Request, Other.
  • Severity: Low, Normal, High, Blocking.
  • Description (initial message).
  • Public and private notes.
  • Status (only when editing, "Workflow" section): Unread, Read, In progress, Waiting for feedback, On hold, Resolved / closed, Abandoned.

Saves follow an optimistic model: the ticket is created/updated locally immediately, then synchronized with the server in the background.

Time Tracking

Two entry modes are available from the file's action bar:

  • Timer: A start button (play icon), with a banner at the top of the file while the counter runs. Stopping it opens the pre-filled time-entry sheet.
  • Manual entry: A dedicated sheet to enter a date (and time), a duration (hours + minutes) and a note.

⚠️ The measured time does not reach Dolibarr. The API exposes no time-spent route for tickets — neither timespent, nor timespents, nor time — in version 22 as in 24. The sheet nonetheless announced "Time entry saved": the time was lost.

The timer is kept, because it keeps its value: it measures work in the field, offline, without depending on the server. Only the promise of saving is gone. The button is now "Copy duration": it puts the duration on the clipboard, formatted as 1h30, to be entered in the web interface.

Business Behavior and Dolibarr

Statuses (Dolibarr mapping)

  • 0 — Unread
  • 1 — Read
  • 2 — Assigned
  • 3 — In progress
  • 5 — Waiting for the requester's feedback
  • 7 — On hold
  • 8 — Resolved / closed
  • 9 — Abandoned (closed without solution)

There is no status 4 or 6 in Dolibarr 24 (Ticket::STATUS_* constants, verified on 14 September 2026).

The "Open" filter corresponds to everything that is neither resolved nor abandoned.

Rights and Permissions

  • Read: Tickets module read permission required to see the list.
  • Create / Modify: ticket.creer permission.
  • Abandon: ticket.supprimer permission (the gesture sets the Abandoned status; true deletion is impossible server-side, see the warning).
  • Conversation actions (reply, send message) require write rights.

Synchronization

  • The list reloads the 50 most recent tickets on a refresh.
  • The full details (conversation messages, notes, duration, status) are loaded when the file opens via a separate detail call.
  • Documents and contacts are fetched in the background when the file opens.
  • New messages, creations and edits are queued and then synchronized; they appear immediately in the app (optimistic mode).

Screenshots

2 screenshots — click to enlarge