← Back to Projects

Swift Imports Tracking System

"Every customer deserves to know where their goods are"

Swift Imports customer tracking landing page

A shipment tracking and customer management platform built for a Ghana-based imports business that consolidates goods shipped from China via sea and air freight. Built for staff who need to manage dozens of customers across shared shipments, and for customers who just want to know where their stuff is.

Live demo: swift-imports-five.vercel.app ↗

The problem

This started as a solution I was building for a friend. He runs a small imports consolidation business in Ghana, bringing in goods from China for customers via sea and air freight, and I noticed he was drowning in the operational side of it. I sat down with him, asked questions, and watched how he worked. What I found was a system held together entirely by WhatsApp messages, Excel sheets, and phone calls.

Running an imports consolidation business means one shipment can carry goods for fifty different customers. Each customer paid for their order, each is waiting anxiously, and each needs a different answer to the same question: where is my stuff?

Every time a shipment moved to a new stage, he had to manually update a spreadsheet and individually message each customer. When a shipment cleared customs, that was fifty messages to send by hand. When a customer asked for an update at 9pm, he had to dig through a spreadsheet to find their order. He was spending more time managing messages than running the actual business.

The tools that exist to fix this are either built for large logistics companies with dedicated IT teams, or they are generic order management tools that do not understand how consolidation shipping actually works, where one shipment ID contains dozens of individual tracking numbers, each belonging to a different customer with different items.

Why it needed solving

The business was growing. More shipments, more customers, more items per shipment. The WhatsApp-and-spreadsheet system that worked for ten customers starts breaking at fifty. Messages get missed. Customers get frustrated. Staff spend more time answering "where is my order?" than actually running the business.

The real cost is not just time. It is trust. A customer who cannot get a straight answer about their goods starts to wonder if the business is legitimate. A customer who gets a WhatsApp notification the moment their shipment clears customs feels taken care of.

I wanted to build him one system where staff could create a shipment, upload a customer list from Excel, and have every customer automatically get a tracking number and SMS/WhatsApp notifications at every stage, without anyone manually sending a single message. He has been using it since it launched and it has already changed how the business runs.

What makes this different

Built around how consolidation shipping actually works. Most tracking tools assume one order equals one customer. This one understands that one shipment ID like SW0404S contains forty-eight individual customers, each with their own tracking number like SW0404S-T0001, their own items, and their own delivery status. The whole data model is built around that reality.

Bulk customer upload via Excel. Staff do not enter customers one by one. They upload the same Excel sheet they already use to track orders. The system parses it, groups rows by phone number into customers, generates tracking numbers automatically, and creates everything in the database in one shot. The preview shows exactly what will be imported before anything is confirmed.

Seven-stage progress tracking, Sea and Air aware. A sea freight shipment and an air freight shipment go through the same stages but at very different speeds. The system tracks all seven stages, from In Warehouse China through to Delivered, and knows that sea freight has a 50-day ETA while air freight has 7 days. The countdown starts the moment a shipment goes En Route and shows customers exactly how many days remain, or how many days overdue, until it flips to Arrived.

Automatic SMS and WhatsApp notifications via Hubtel. Every time a staff member updates a shipment status, the system fires notifications to every customer in that shipment automatically. Templates are customisable per stage, per freight type. A sea freight En Route message can be different from an air freight one. No manual messaging, no missed customers.

A customer portal that requires nothing. Customers go to one URL, type their tracking number, and see their shipment status, ETA, and item list. No app, no account, no login. Their phone number is masked for privacy. The portal works on any device.

Individual delivery tracking within a shared shipment. When a shipment is Out for Delivery, staff mark each customer as delivered individually. The shipment only moves to Delivered status automatically when every single customer has been marked. This matters when one customer picks up early and another needs a second delivery attempt.

How it works

1. Create a shipment. Name it with an auto-generated ID based on the date and freight type. Add notes. Ten seconds.
2. Upload customers. Drop in the Excel or CSV file with customer names, phone numbers, items, and supplier tracking numbers. Preview the parsed data. Confirm. Every customer gets a tracking number instantly.
3. Update status as the shipment moves. One dropdown, one click. All customers in the shipment get notified automatically via SMS and WhatsApp.
4. Mark deliveries individually. When goods go out, mark each customer delivered as it happens. The shipment completes itself when everyone is done.
5. Customers track themselves. Share the portal link. Customers enter their tracking number and see everything, status, ETA, items, without calling anyone.

Where it goes from here

The system is live and working. What started as a solution for one friend has made me realise how many small and medium imports businesses across Ghana and West Africa are running the same WhatsApp-and-spreadsheet operation. The next step is reaching out to those businesses, understanding whether the problems they face map to what this already solves, and working out a pricing model that makes sense for the market. The product is ready. The question now is scale.

Built with: Node.js, Express, PostgreSQL (Neon), Prisma ORM, JWT authentication, Hubtel SMS/WhatsApp API, vanilla HTML/CSS/JS frontend, deployed on Vercel.

Try it: swift-imports-five.vercel.app ↗

Staff login screen for Swift Imports Admin dashboard showing the shipments list Create Shipment flow, step 1 of 2 Notification template editor for each shipment stage Shipment detail page showing a delivered shipment with progress tracker Individual customer's item breakdown and delivery status Shipment detail page with the Update Status dropdown open Customer-facing tracking result page showing delivered status and items