The client
A logistics provider in Bangkok handling cross-border e-commerce shipments across Southeast Asia. Around fifty staff, including a customer-service team of eight handling roughly six hundred tickets a week, of which the vast majority were variations of the same question.
The problem
The dominant inbound message was “where is my order”. Customers had reasonable anxiety: shipments crossed multiple carriers, status updates came in delayed or in inconsistent formats, and the tracking page sometimes showed a parcel as “in transit” for five days. The customer-service team was spending half its hours just reassuring people whose parcels were actually moving normally.
The approach
The build wired the carrier APIs into a single n8n flow that watched every parcel’s status across all carriers in the chain. When a parcel moved between stages (cleared customs, on local courier, out for delivery), the system queried the relevant data, summarized the status in plain language using an LLM, and sent a clear, friendly update to the customer.
Critically, the messages were generated with awareness of the customer’s local language, the typical delay at this stage of the route, and what was actually expected next. A parcel sitting in customs for three days, which is normal, got a message saying so. A parcel that should have moved by now got an update flagging the delay and offering to help.
The result
Inbound “where is my order” tickets dropped by forty percent in the first month. Customer-service capacity got redirected to the actual problems (lost parcels, damaged packages, address corrections) where human attention is required and useful. The team felt less defensive and more helpful.
"Where is my order tickets are down forty percent. The team is finally working on the actual problems, not reassuring people whose parcels are moving normally. Customers feel better looked after, which feels right."