CLIENT: Hsinlan Devices🇹🇼Taiwan

Riffle - AI Ticket Triage Layer That Catches Product Safety Reports

AI Support Triage for a Taiwanese Electronics Brand

Designed and built a clickable AI triage layer for a Taipei consumer electronics brand: it classifies every new Zendesk and Freshdesk ticket, masks personal data, routes it to the right queue, sends low-confidence tickets to a review queue and pushes possible battery, heat and fire reports to an on-call product safety team.

Scope of Work
Product design, UI build and clickable demo
Industry
AI Agents & Automation / Support Ticket Triage
AIEnterprise
Compliance & Certifications
Taiwan PDPAGDPREU GPSRTaiwan Consumer Protection ActDirective (EU) 2019/771BSMI inspection

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, live triage feed, ticket triage detail with 6 tabs, review queue and safety inbox. Every one of the 24 demo tickets opens its own triage detail.

9 Predictions
Per ticket, each with a confidence

Intent, product, product model, language, sentiment, urgency, safety, spam and PII. Each shows its top alternatives, the threshold that applied and whether it was auto-applied or sent to review.

60 Minutes
Safety acknowledgement policy

Any safety signal at 0.30 confidence or above goes to the safety inbox, which shows the oldest unacknowledged detection against the 60-minute policy, the on-call officer and a Page again button.

24 Tickets
Realistic demo data

Tickets from Zendesk and Freshdesk Japan in 8 languages with masked personal data, 8 routing queues, duplicate clusters, order and warranty matches and 13 safety detections.

The Problem

Hsinlan receives around 9,000 support tickets a week in eight languages. Everything landed in one general view, team leads spent the first two hours of every shift dragging tickets into queues, and tags were applied inconsistently. A customer who reported a hot, bulging power bank waited four days before anyone noticed, while spam, pasted card numbers and the same five answers retyped in three languages ate agent time.

Our Solution

Riffle sits on top of Zendesk and Freshdesk without replacing them. It reads every new ticket, classifies it, masks personal data, catches possible safety reports before the spam filter, routes the ticket and drafts a reply an agent must approve. Every prediction carries a confidence score, and below Hsinlan's thresholds a person decides.

The Challenge: Triage at Scale Without Missing a Hazard

About 70 agents in Taipei, Kaohsiung and Kraków answer customers from Taiwan, Japan, Korea, Southeast Asia and the EU. The triage layer has to be fast enough to route thousands of tickets, careful enough never to bury a safety report, and honest about when it is not sure.

Safety Reports Hidden in the Queue

A swollen battery, smoke or a burn can arrive in any language, through any channel, worded as a warranty question. Under the EU General Product Safety Regulation a manufacturer has to examine such complaints and notify accidents without undue delay, so a four-day wait in a general queue is not acceptable.

Personal and Health Data in Free Text

Customers paste phone numbers, card numbers and ID photos into tickets, and injury descriptions count as sensitive data under the Taiwan PDPA and special category data under GDPR Article 9. Text has to be masked before agents and models see it, and the original kept behind a logged, restricted view.

Confidence, Not Guesswork

A wrong label routes a ticket to the wrong team and a wrong spam call loses a real customer. Each dimension needs its own auto-apply and review thresholds, a person must decide below them, and spam is suspended and restorable, never deleted.

Two Helpdesks, Many Markets

The main team works in Zendesk, a Japanese distributor in Freshdesk, and orders come from web stores and marketplaces. Warranty hints must show Hsinlan's 12 or 24-month commercial warranty alongside the EU two-year legal guarantee, and never tell an agent to refuse a legal claim.

Our Approach: From Triage Rules to a Clickable Console

01

Spec and Rules Research

Mapped 9 staff roles from support agent to product safety officer and ML engineer, 38 screens across the console and the helpdesk sidebar app, and the data model for tickets, triage runs, predictions, reviews, safety detections and cases, clusters, PII detections, drafts and versioned thresholds. Wrote down the rules the design follows: Taiwan PDPA, GDPR, EU GPSR, Taiwan Consumer Protection Act, the EU legal guarantee and human approval for every reply.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit: the dashboard with KPIs, needs-attention list, volume by intent and a confidence histogram with threshold lines, a live triage feed where new rows slide in, the ticket triage detail with predictions, routing, order and warranty, duplicates, draft and history, the review queue with keyboard shortcuts, and the safety inbox with on-call paging. All actions run on local state.

03

What a Production Build Adds

Zendesk and Freshdesk APIs, webhooks and sidebar apps, Shopify, SAP Business One and marketplace order lookups, Claude on Amazon Bedrock in EU and Tokyo regions, Presidio PII detection with East Asian identifier patterns, DeepL translation, pgvector duplicate search and PagerDuty paging. Role-based access, an append-only audit log, labelling and retraining with model promotion blocked below 0.98 safety recall, and the remaining console screens.

Why It Works: A Person Decides Below the Threshold

Safety Runs First and Stays Visible

Safety detection runs before the spam filter and cannot be suppressed by it. Safety rows stay pinned at the top of the live feed with a red border until acknowledged, and detections for the same product and hazard within 7 days are grouped as a possible pattern.

Every Label Shows Its Confidence

The triage detail lists each prediction with its runner-up, the threshold that applied and the result. Intent auto-applies at 0.85 and goes to review between 0.55 and 0.85, and the dashboard draws both lines on today's confidence histogram.

A Review Queue Built for Speed

Low-confidence tickets show their reason, the top prediction and runner-up, and a waiting time that turns amber after 15 minutes and red after 30. Leads pick an alternative with 1 to 3, confirm with Enter, or press S for safety and X for spam, and each confirmation is stored as training feedback.

Personal Data Masked by Default

Messages show tokens such as [PHONE] and [ORDER] in place of detected personal data, with a DeepL translation for agents. Attachment images are thumbnailed only after PII and nudity checks pass, and Riffle never sends a reply, closes a ticket or refunds anything on its own.

Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab