Project

General

Profile

Edit Copy Actions

Bug #11740

open

Support #11764: E-commerce pending tasks for nov 15 release

Gaps in support ticket management from e-commerce to admin panel

Added by Yalavarthi Thriveni 6 days ago. Updated about 3 hours ago.

Status:
New
Priority:
Normal
Target version:
-
Start date:
11/02/2026
Due date:
% Done:

0%

Estimated time:
8:00 h
Tested Date:
10/27/2026
Raised by Tester:
Page/ Module (POS):
E2E

Description

Gap 1: Commerce & Order Realities (The Biggest Missing Piece)
No Line-Item Level Selection:
Problem: In e-commerce, an order often contains 5–10 items (e.g., 3 plants, 2 fertilizers, 1 ceramic pot). The customer received 1 cracked pot or 1 dead plant.
Current State: The ticket only references orderId. It has no orderItemId, productId, variantTitle, or quantity.
Impact: The manager is forced to exchange 2–3 back-and-forth messages asking "Which exact item from order #1042 was damaged?", wasting hours of SLA.
No Direct In-Ticket Remediation (Refunds / Replacements):
Problem: Resolving an e-commerce ticket almost always requires taking an operational action:
Initiating a full or partial refund (via Stripe / Razorpay).
Creating a zero-cost replacement shipment.
Issuing a store credit or coupon code.
Current State: The ticket system is a pure text chat. The manager has to open a separate browser tab, find the order in POS, manually compute the refund, and then return to the ticket to copy-paste the note.

Guest Checkout Customers Cannot Open Support Tickets:
Problem: Up to 40% of e-commerce orders are placed via Guest Checkout (no password/account created).
Current State:

ticketCustomer.token.js
rejects any request without an authenticated clientId/id.
Impact: Guest customers cannot access /api/v1/cust-ticket to submit or track a ticket. They have to call or email manually.
Gap 2: Real-Time Communication & Agent Collision
High Latency Polling (30s – 45s Delay):
Problem: E-Commerce frontend polls every 45 seconds (

SupportTicketDetail.tsx:L47
); POS Staff polls every 30 seconds (

ServiceDeskTicketDetail.tsx:L71
).
Impact: When both customer and manager are online, replies take nearly a minute to appear. It feels like an unresponsive system.
Solution: You already have socket.io installed in

package.json
and initialized in

socket/index.js
. Emitting ticket:reply to a room ticket:<ticketId> gives instant messaging with zero database polling overhead.
No Agent Collision Detection:
Problem: If an Admin and a Service Manager (or two managers) open the same ticket simultaneously, neither knows the other is viewing or drafting a reply.
Impact: Two different staff members might send conflicting responses or initiate duplicate resolutions.
Gap 3: SLA & Business Hours Calculation Flaws
Calendar Hours vs. Business Working Hours:
Current State: First response SLA is calculated purely in calendar hours: now.getTime() + FIRST_RESPONSE_HOURS[priority] * HOUR (

ticket.service.js:L255
).
The Flaw: If a customer raises a "medium" ticket (8-hour SLA) on Friday at 7:00 PM, its due date is Saturday at 3:00 AM. If the support desk is closed over the weekend, the ticket will be marked Overdue on Monday morning before staff even arrives!
Fix: SLA calculation must skip non-business hours, holidays, and weekends.
Single-Shot Overdue Alert (No Escalation Ladder):
Current State: In

customerTicketCron.js:L71
, the cron checks overdueNotifiedAt: null. Once flagged, overdueNotifiedAt is set to now.
The Flaw: If the assigned manager is unresponsive, on emergency leave, or ignores the notification, it is never flagged again.
Fix: A multi-tier escalation ladder:
Level 1: Manager reminder at 80% SLA.
Level 2: Manager & Team Lead alert at 100% SLA breach.
Level 3: Auto-reassign to Admin/Backup Manager if untouched for 2 hours post-breach.
Gap 4: Customer Experience & Quality Control
Missing CSAT (Customer Satisfaction Rating):
Current State: When a ticket is marked resolved, the customer simply clicks "Confirm Resolution".
The Missing Piece: No 1–5 star rating, no CSAT feedback tags ("Fast response", "Polite", "Unresolved issue"). Without this, store leadership cannot evaluate manager performance or identify recurring product quality issues.
Uncapped Reopen Abuse:
Current State: Customers can reopen tickets indefinitely (

ticket.service.js:L349
).
The Flaw: reopenCount increments, but there is no maximum limit. A dissatisfied customer can reopen a closed case 15 times.
Best Practice: Limit customer self-reopen to a maximum of 2 times. On the 3rd attempt, escalate directly to the Admin or convert to a new supervisor review ticket.
Gap 5: Omnichannel Inbound Reply (Email)
Problem: When customers receive an email update like [TKT-00123] New reply from support, over 40% of customers click 'Reply' directly in Gmail or Apple Mail instead of clicking the portal link.
Current State: Your mailer sends from an outbound email address. Replies bounce or land in an unmonitored mailbox.
Solution: Add an Inbound Email Webhook (SendGrid Inbound Parse / AWS SES / Mailgun) to map reply-to: straight into ticket.replies.
Gap 6: Staff Productivity Tools
No Canned Responses (Saved Reply Snippets):
Managers repeatedly type the same answers ("Please share an unboxing photo showing the shipping label", "Your courier tracking number is...", "Refund processed, will reflect in 3-5 bank days").
Adding 1-click canned responses with dynamic placeholders ({{customer_name}}, {{order_no}}) speeds up first response times by 60%.
No Video Proof Support:
For perishable or fragile goods (plants, pots, electronics), unboxing video (.mp4, .mov) is standard industry proof for courier claims. Ensure attachment handling supports compressed video uploads up to 25–50MB.

3. Recommended Improvement Roadmap
Priority Feature / Gap Estimated Effort Impact
P0 (Immediate) Order Line-Item Selector: Allow picking specific product items/variants when opening an order ticket. Eliminates 60% of back-and-forth messages.
P0 (Immediate) Business Hours SLA: Calculate SLA due dates using operating hours rather than raw 24h clock. Prevents false overdue tickets on weekends and nights.
P1 (High) Live Socket Updates: Connect socket.io for ticket chat to eliminate the 30–45s polling latency. Instant messaging experience.
P1 (High) Guest Customer Ticket Flow: Allow ticket submission by Order No + Email/Phone OTP. Supports customers who checkout without accounts.
P1 (High) CSAT Rating on Resolution: 5-star rating + feedback prompt on ticket confirmation. Crucial KPI for Customer Service Manager appraisal.
P2 (Medium) Canned Responses: Saved reply snippets in POS Service Desk. Halves manager handling time.
P2 (Medium) Inbound Email Webhook: Ingest customer email replies automatically into the ticket thread. Seamless omnichannel support.


Add

Subtasks 1 (1 open — 0 closed)

Bug #11942: Issues in support ticket managementNewRavi Shankar Palle11/02/2026

Delete link to subtaskActions

Add

Related issues

Actions #1

Updated by Yalavarthi Thriveni 5 days ago

  • Parent task set to #11764
Actions #2

Updated by Bindu Danda about 3 hours ago

  • Subtask #11942 added
Edit Copy Actions

Also available in: Atom PDF