Toey avatarChanan Portfolio
UX Research/Operations · B2B/End-to-end

Queue System

Turning a six-hour supplier wait into a bookable queue — research-led, from a messy operational situation to a system the factory's own IT team shipped.

67%
Supplier waiting time — against a 50% target
70%
Warehouse overtime — 191,625 THB saved a year
+6.2%
Supplier satisfaction with the warehouse
Trucks queueing along the public road outside the plant
My Role
UX Researcher
Responsibilities
Stakeholder interviews · Field observation · Personas & journey mapping · User flow · Wireframes · Hi-fi prototype (Figma) · Usability testing · Dev handoff
Team
Cross-functional — Warehouse, Planning, QA, IT, R&D
Timeline
Jan – Jul 2022
Recognition
Ant Mission Award — CPRAM Event 2022
01

Overview

CPRAM Co., Ltd. is CP Group's food manufacturer — a factory that takes in around 300 raw-material and packaging deliveries a day. I joined its CPRAM Event programme as the UX Researcher on a cross-functional team drawn from Warehouse, Planning, QA, IT and R&D, working on a PDCA plan over seven months.

There was no brief and no feature request. What we had was a situation: trucks queueing along the public road outside the plant, and a growing pile of complaints from the delivery firms who had to sit in them. My job was to find out what was actually going wrong, prove which problem was worth solving, and design something the in-house IT team could build.

What we shipped was an online queue-booking system. Suppliers pick the POs they're delivering, book a time slot against real loading-dock capacity, receive a QR code, check in at the security gate, and get notified when the queue shifts. Warehouse sees the day's incoming schedule in advance; Planning finally gets stock visibility.

02

The starting point

First come, first served — and nobody could see anything.

Deliveries ran at roughly 300 trips a day — 7,894 in a single month in 2021 — and every one of them arrived unannounced. There was no booking, no schedule and no visibility: whoever reached the gate first got unloaded first, so suppliers came early and waited. On average a delivery took 360 minutes — six hours; some gate logs showed four to eight.

The cost of that wait didn't sit with the factory. Supplier satisfaction scores for the warehouse (82.14 in 2019, 83.16 in 2020) had been below the internal target for two years running, and the complaints had turned into behaviour: delivery firms were refusing factory jobs, and drivers were quitting.

The 360-minute delivery, as timed on site
{{ journeyBar }}
03

Three candidate problems

Interviews across eight roles, each problem priced.

I interviewed across eight roles — Management, Purchasing, Sales, IT, Planning, Warehouse, QA and the drivers themselves. The queue was the loudest complaint, but it wasn't the only one, and I didn't want the team to pick the loudest thing. So I wrote up all three problems people raised and put a number on each, using the factory's own operational records.

{{ problemCards }}
04

Choosing the problem

A five-criteria score, not a show of hands.

In a cross-functional team, whoever argues hardest usually wins. To avoid that, we scored all three problems on five criteria — importance, urgency, cost value, number of departments involved, and time to fix — and multiplied the scores so a weakness on any one axis really counted.

The waiting-time problem came out on top at 81. It was measurable in money, it touched the most departments, and it was fixable inside the programme window — the redundant price-comparison process was cheap to fix but low-value, and the urgent-PO problem was expensive but depended on overseas lead times we couldn't influence.

Scoring did something a discussion wouldn't have: it gave the people whose problem wasn't chosen a reason they could accept, which is why we still had their cooperation when it came time to research the journey.

{{ scoreTable }}
05

Research — walking the wait

Observation, root-cause analysis, twelve interviews.

The 360-minute figure came from records, so I went and walked it: gate, QA, warehouse, stopwatch in hand, timing each stage of a real delivery. It held up — and standing in it told me something the number didn't. Most of the six hours is dead time in a truck cab, not work.

I ran a fishbone analysis with the team across Man, Method, Environment, Material and Machine. Three root causes survived it: suppliers arrive unscheduled and therefore simultaneously, there are not enough loading docks to absorb the peak, and there is no queue discipline once they're on site. Only the first is a design problem — which is exactly why a booking system, not more docks, was the answer we could afford.

Then twelve field interviews: purchasing and warehouse staff, production, QA, security, supplier sales managers and drivers. Same event, five different kinds of pain — and two of them became the people we designed for.

What we heard — 12 field interviews

The same six hours, felt from every side of the gate. Quotes as spoken, in Thai, with translations.

“กว่าจะได้กลับบ้านก็ตี 3–4 พนักงานมีปัญหาสุขภาพ เวลาพักน้อย และลามไปถึงปัญหาครอบครัว เพราะไม่ได้เจอภรรยาที่บ้านเลย”

“Drivers don’t get home until 3 or 4 a.m. — health problems, barely any rest, and it reaches their families: some never see their wives at home at all.”

Complaint letter from a delivery firm

“Sup. โทรหากลางดึก เนื่องจากยังไม่ได้ลงสินค้า”

“Suppliers call me in the middle of the night because they still haven’t unloaded.”

Eve — Purchasing officer, CPRAM

“ต้องทำงานเกินเวลาเพราะ Sup. ยังลงสินค้าไม่หมด”

“We’re on overtime because suppliers still haven’t finished unloading.”

Joy — Warehouse officer, CPRAM

“ไม่สามารถเช็คสต็อก real-time ได้ ทำให้ทำงานล่าช้า”

“I can’t check stock in real time, so my work runs late.”

Gib — Assistant manager, Production planning

“รถโฟล์คลิฟท์ที่ขนสินค้าไปลงที่โรงงานต้องไปช่วยที่คลัง ทำให้แผนผลิตล่าช้า”

“Forklifts get pulled over to help the warehouse, so the production plan slips.”

Nam — Production, Plant 1

“คิวรอตรวจคุณภาพสินค้าไม่เป็นระเบียบ ทำให้เกิดความล่าช้า”

“The QA inspection queue has no order, and everything runs late.”

Som — General manager, Quality Assurance

“มีคนรถมาโวยวายหน้าป้อม รปภ. แจ้งว่าโดนแซงคิว”

“Drivers come shouting at the security post that someone cut the queue.”

Somchai — Head of security, CPRAM

“ได้รับคำร้องเรียนจากคนรถตลอดเวลา พนักงานลาออกประจำ บริษัทขนส่งไม่อยากรับงาน”

“I get complaints from the drivers all the time — people keep resigning, and delivery firms don’t want the job.”

Gift — Sales, Thai Nisshin (supplier)

“อยากมีเวลาให้ครอบครัวมากขึ้น”

“I just want more time with my family.”

Sakol — Truck driver, Thai Nisshin

“บริษัทเสียค่าใช้จ่ายในการรอคอย”

“The waiting is costing our company money.”

Jarunwich — Sales manager, Fuji Oil

“ต้องรีบมารับคิวตั้งแต่เช้า บางครั้งโดนแซงคิว”

“I have to rush in at dawn to grab a queue — and sometimes I still get cut.”

Chai — Delivery driver, Excel Package

“พนักงานขนส่งทยอยลาออก เพราะทำงานหนักเกินเวลา”

“My drivers keep resigning — the hours are just too hard.”

Wir — Chairman, bakery supplier

“ค่าใช้จ่ายในการทำงานนอกเวลารวมค่าเช่ารถส่งสินค้าเฉลี่ย 4,000 บาท/เดือน”

“Overtime plus truck rental averages 4,000 THB a month.”

Nan — Siam Packaging group

“รอลงของ 4 ชม. หาก 8 ชม. ยังไม่ได้ลงของ จะเอารถกลับ ไม่ส่งของ”

“We’ve waited four hours. If it hits eight and we still haven’t unloaded, we’re taking the truck back — no delivery.”

LINE message from a supplier’s driver
ROOT-CAUSE ANALYSIS · FISHBONE Why do suppliers wait six hours to unload? Suppliers wait ~360 min per delivery MAN QA inspects trucks in gate-queue order Drivers never know their unload time ENVIRONMENT No warehouse-expansion policy One store serves the whole plant Loading docks insufficient MATERIAL Production draws stock shift by shift Plan slips leave stock stuck in store METHOD Suppliers arrive unscheduled — many at once POs carry no delivery time Deliveries every day, one day-shift round MACHINE Not enough pallets and forklifts Truck breakdowns have no backup FIELD RESEARCH + STAKEHOLDER INTERVIEWS · CPRAM, 2022
Fishbone analysis across Man / Method / Environment / Material / Machine — three root causes survived it.
A supplier’s delivery day Sakol, truck driver — roughly 7 hours door to door PLAN TRAVEL CHECK-IN THE WAIT WRAP-UP Leave early to grab a queue — first come, first served Check the route, call Purchasing to say the goods are coming Park outside, walk in to take a queue at the store Get a queue, then wait ~4 hrs · still not called · check at the store 6 hrs in, call the sales manager to chase it up Finally unloaded and done — almost 7 hours GOOD NEUTRAL BAD “It’s my kid’s birthday — hope this is quick.” “Traffic’s good today.” “Have to walk in just to take a queue. It’s boiling.” “Four hours and still not called.” 6 hrs — chasing by phone “Wife’s calling. I’m late again.” GATE WAIT · 150 MIN QA 30 MIN · UNLOAD + BILLING 180 MIN ≈ 7 HRS TOTAL OPPORTUNITIES Book a queue in advance QR check-in Notify when the queue is near Confirm completion in-app
Journey map of a delivery day — emotion bottoms out during the four-to-six-hour wait.
{{ personaCards }}
Journey map — one delivery day

Mapped end to end, a delivery day runs about seven hours, and the emotional low sits squarely in the four-to-six-hour wait — not at the gate, not at unloading. That's where the opportunities were.

Book in advance
Give the arrival a time, so the peak spreads itself.
Check in by QR
Replace the paperwork queue at the security gate with a scan.
Notify on change
A shifting queue is tolerable if you know about it before you leave.
06

Design

Flow first, sketches second, Figma last.

The flow was the real design work. A supplier logs in, sees the deliveries they owe, selects the POs going on one truck, opens the loading-dock calendar, takes a slot that still has capacity, and walks away with a QR code they can print and hand to the driver. Everything after that is confirmation and notification.

{{ flowSteps }}

I sketched the low-fidelity screens by hand, because the people reviewing them were warehouse and IT staff rather than designers — pencil invites correction in a way a polished screen doesn't. Once the layouts held up, I built a small set of components (colour, type, inputs, buttons, grid) so the hi-fi prototype would be consistent and the IT team would have something specifiable to build from.

The prototype covered five screens: a dashboard with delivery status at a glance, a PO list with per-item detail, the loading-dock calendar, the booking confirmation with its QR code, and the notification a supplier gets when their queue moves.

High-fidelity wireframe — login page and dashboard with delivery-status overview
Hi-fi prototype — login and the dashboard: 316 deliveries at a glance, status ring, and the day's booking list.
Purchase order list and per-item PO details
Purchase orders — select the POs going on one truck; each item opens with material, amount, warehouse and pallet detail.
Loading-dock calendar booking and booking-success screen with QR code
Booking — pick a slot on the loading-dock calendar; confirmation issues the QR code the driver shows at the gate.
Booking queue details and notification feed for queue changes
Booking details & notifications — every queue shift is announced with the old and new times, so no one waits blind.
07

Usability testing

Five tasks: login, dashboard, PO page, booking, report.

Testing the prototype on five tasks caught the kind of thing you only find by watching someone try. The biggest was an ordering problem in my own head: I had put the booking action where I thought about it, not where users arrive at it.

{{ findingRows }}

The slot-conflict rule mattered more than it looks. Two suppliers can want the same dock at the same minute, and in an operational system the honest answer is that one of them loses — so the design's job is to make losing quick and clear, not to hide it.

Handoff & outcome

Supplier waiting time fell 67% — the target was 50%.

I handed the validated flows, components and prototype to CPRAM's internal IT team, who developed and deployed the system. The pilot ran May–July 2022, and on-time unloading climbed month over month from 60.5% to 72.7% — 67.7% across the pilot overall.

60.5→72.7%
On-time unloading over three pilot months
83.16→89.36
Supplier satisfaction with the warehouse, +6.2%
191,625
THB saved a year in warehouse overtime
{{ onTimeChart }} {{ otTable }}
From research to production
Research Wireframe Validate Handed to IT Live in 6 plants

The system went live at the Lat Krabang plant and then rolled out to every regional plant — Lamphun, Khon Kaen, Chonburi, Surat Thani and Lat Lum Kaeo — with Smart Visual Stock, a lean-warehouse extension, on the roadmap after it. The project won the Ant Mission Award at CPRAM Event 2022.

Takeaways

What I'd carry into the next project.

Pricing a problem is how a researcher gets a seat at the table.

Nobody in that room argued with 273,750 THB of overtime. Converting frustration into the factory's own numbers turned a UX observation into an operations decision.

In B2B operations, the user with the worst experience has the least power.

Drivers absorbed six hours of the process and were the only group nobody had asked. Designing for them — not just for the warehouse — is what made the numbers move.

A clean handoff is a design deliverable, not an email.

The IT team built this without me. What made that possible was components with defined states, a documented flow, and every design decision traceable to a test finding they could question.

{{ imgLightbox }}