Summary & Proposal
Hi @bbbbbbbbbbbbba! Currently, AgentDesk maintains two parallel entities for handling customer inquiries:
- Conversations ( _conversation, _message): Real-time chat, AI Agent loop, web/WeCom/Telegram/Zalo/Email messaging.
- Tickets ( _ticket, _ticket_progress): Static issue records with title, description, manual status (pending, in_progress, done), and progress logs.
We propose unifying Tickets into Conversations to transition AgentDesk into a modern AI-First Omnichannel Customer Support Platform (similar to modern platforms like Intercom, Crisp, Front, and Zendesk Messaging).
Key Pain Points of the Split Architecture
-
Fragmented Agent Experience:
- Customer support representatives in the Workbench have to navigate between /workbench (Conversations) and /workbench/tickets (Tickets).
- Chatting with a customer and logging internal resolution progress happens in separate screens.
-
Context Disconnect:
- When a ticket is created from a conversation, the ongoing chat context is frozen in time into a static ticket description. Follow-up customer replies in the chat do not naturally update the ticket state unless manually synchronized.
-
Duplicated Metadata & Operational Overhead:
- Assignee, Team, Priority, Tags, Customer, and Status exist on both _conversation and _ticket.
- Routing and assignment workflows have to be duplicated or synchronized across both models.
The Modern Omnichannel Solution
Instead of treating Tickets and Conversations as separate destinations, a Conversation IS the Ticket:
-
Enriched Conversation Model:
- Add ticket-grade capabilities directly to Conversation:
-
Issue Lifecycle: open (unassigned/pending) $\rightarrow$ �ctive (in-progress/agent serving) $\rightarrow$ waiting (waiting for customer) $\rightarrow$
esolved / closed.
-
Priority & SLA Tracking: Urgency levels (low,
ormal, high, urgent) and SLA timers on conversations.
-
Internal Notes & Progress: Special internal messages (sender_type = note) visible only to agents, directly in the chat timeline.
-
Unified Tagging & Custom Fields: Assign tags, categories, and custom attributes to conversations.
-
Unified Workbench UX:
- Single unified inbox for all channels (Web, Email, Telegram, Zalo, WeCom).
- Sidebar panels provide full customer 360°, CRM integration, and issue metadata alongside the real-time conversation timeline.
-
Seamless AI $\rightarrow$ Human Workflow:
- AI Agent handles inquiries directly in the conversation.
- When complex troubleshooting or human escalation is needed, the AI Agent simply changes the conversation status, sets priority/tags, or routes to an agent team—without needing to create an external static ticket record.
Migration & Backward Compatibility Path
- Phase 1: Add internal notes (enums.IMMessageTypeNote) and conversation priority/SLA fields.
- Phase 2: Add conversation quick filters (My Inbox, Unassigned, Priority, Closed, SLA Breached) to the Workbench.
- Phase 3: Provide a simple database migration to link existing _ticket records into historical conversations and deprecate standalone ticket tables.
We would love to hear the maintainers' and community's thoughts on this architectural direction!
Summary & Proposal
Hi @bbbbbbbbbbbbba! Currently, AgentDesk maintains two parallel entities for handling customer inquiries:
We propose unifying Tickets into Conversations to transition AgentDesk into a modern AI-First Omnichannel Customer Support Platform (similar to modern platforms like Intercom, Crisp, Front, and Zendesk Messaging).
Key Pain Points of the Split Architecture
Fragmented Agent Experience:
Context Disconnect:
Duplicated Metadata & Operational Overhead:
The Modern Omnichannel Solution
Instead of treating Tickets and Conversations as separate destinations, a Conversation IS the Ticket:
Enriched Conversation Model:
esolved / closed.
ormal, high, urgent) and SLA timers on conversations.
Unified Workbench UX:
Seamless AI$\rightarrow$ Human Workflow:
Migration & Backward Compatibility Path
We would love to hear the maintainers' and community's thoughts on this architectural direction!