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:
- 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’.
- 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
- 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).
- The system creates a ticket (bound to the source agent) and notifies that agent’s local seats and authorized support groups.
- 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).
- 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:
| Filter | Note |
|---|---|
| Open | open, can claim |
| Assigned to me / in progress | in_progress |
| Closed | resolved / cancelled |
Actions: Claim, Comment reply, Close. Refresh interval may be slower than the live queue (not strongly realtime).
4. States
| State | User sees | Support sees |
|---|---|---|
| open (to handle) | Can withdraw/close, can comment | Can claim |
| in_progress (handling) | Can see handler, can comment, can close | Assigned seat can reply and close |
| resolved (closed) | Can rate | Read-only |
| cancelled (withdrawn) | Read-only | — |
5. API summary (implementation)
| Method | Path | Note |
|---|---|---|
| POST | /embed/support-cases | Visitor submit |
| GET | /embed/support-cases | List under the visitor name |
| GET | /embed/support-cases/{id} | Detail and messages |
| POST | /embed/support-cases/{id}/messages | Customer comment |
| POST | /embed/support-cases/{id}/cancel | Customer close: open → withdrawn; in progress → closed |
| POST | /embed/support-cases/{id}/rating | Rate after close |
| POST | /embed/cs-tickets/{id}/convert-to-case | Live → ticket |
| GET/POST | /workspaces/{id}/support-cases etc. | Workbench list, claim, reply, close |
6. Tables (illustrative)
support_cases: async tickets; includes rating,ended_by, optionalconverted_from_cs_ticket_idsupport_case_messages: customer / seat / system comments
7. Related documents
- Live support: 人工客服.md
- Requirements truth: docs/产品规格.md §4.8 / §4.8.2