All docs

Tickets

Voice: When the user does not need a person online immediately, they can submit a ticket and leave the question; support colleagues later handle it on the workbench, comment, and c

Source docs/en/site/mech-tickets.md

Voice: When the user does not need a person online immediately, they can submit a ticket and leave the question; support colleagues later handle it on the workbench, comment, and close. Tickets do not require realtime; they are a separate capability from live human support (online queue chat).

Implementation mapping: support_cases, support_case_messages; routes /api/v1/embed/support-cases, /api/v1/workspaces/{id}/support-cases; support workbench Tickets section.

Live human support: 人工客服.md (implementation table cs_tickets; do not call it a “ticket” on the user side).


1. Split from live support

| | Live human support | Tickets | |--|------------------|----------| | User expectation | Someone online soon | Leave a message and leave; check progress later | | Queue | Queue position / wait estimate | No live queue; states: open / in progress / closed | | Communication | Realtime messages in the conversation | Ticket comment thread (async) | | Entry | Human support | Submit a ticket; while in a live queue, “Don’t wait, submit a ticket instead” |

When human support config is on, the ticket entry is available too (no separate switch).

How to tell customers apart (same agent)

One agent may serve many customers; each ticket binds customer identity at create time. The support workbench list and detail show:

  1. Host signed-in user (recommended): when the embed page passes a host user, show their name/nickname plus the host-side user ID. In the action assistant that user only sees their own conversation history, human support, and tickets — not other signed-in users’.
  2. Unsigned visitor: shown as “site visitor xxxx” by browser visitor ID — the same browser opening again is the same visitor; another browser or clearing site data becomes a new visitor.

Seat replies always show as Support on the customer side; the seat’s phone number is never exposed.


2. User-side flow

  1. In a conversation with an agent that has human support on, tap Submit a ticket and fill in the question (may include a summary of the current conversation).
  2. The system creates a ticket (bound to the source agent) and notifies that agent’s local seats and authorized support groups.
  3. The user can view My tickets status and seat replies, comment again before close, or close the ticket themselves (open = withdraw; in progress = close and may rate).
  4. After closed / withdrawn, they may give a five-star rating (≤3 stars may include a reason).

Switching from a live-support queue: create a ticket and end/cancel the current live conversation.


3. Support side (workbench · tickets)

Same page as live support; pick Tickets on the left. When group members switch to Group workbench, they only see tickets for authorized customers in service scope; claiming does not switch the top-bar current workspace.

Shown separately from the live queue:

FilterNote
Openopen, can claim
Assigned to me / in progressin_progress
Closedresolved / cancelled

Actions: Claim, Comment reply, Close. Refresh interval may be slower than the live queue (not strongly realtime).


4. States

StateUser seesSupport sees
open (to handle)Can withdraw/close, can commentCan claim
in_progress (handling)Can see handler, can comment, can closeAssigned seat can reply and close
resolved (closed)Can rateRead-only
cancelled (withdrawn)Read-only

5. API summary (implementation)

MethodPathNote
POST/embed/support-casesVisitor submit
GET/embed/support-casesList under the visitor name
GET/embed/support-cases/{id}Detail and messages
POST/embed/support-cases/{id}/messagesCustomer comment
POST/embed/support-cases/{id}/cancelCustomer close: open → withdrawn; in progress → closed
POST/embed/support-cases/{id}/ratingRate after close
POST/embed/cs-tickets/{id}/convert-to-caseLive → ticket
GET/POST/workspaces/{id}/support-cases etc.Workbench list, claim, reply, close

6. Tables (illustrative)

  • support_cases: async tickets; includes rating, ended_by, optional converted_from_cs_ticket_id
  • support_case_messages: customer / seat / system comments

7. Related documents