← All Projects
Case Study · 2024, Present

Delivery Management System

Connecting a sales platform, an internal admin panel and a courier's own API into one Google Sheet, so a missing T-shirt size never breaks a shipment again.

Tools Used
Google Apps Script Apps Script
Google Sheets Google Sheets

ACS Future School ran a course-purchase gift campaign: buy a course, receive a T-shirt, a diary, or both, with the T-shirt further split by size depending on what a student had bought. It reads like a small operational detail. At a few thousand orders a month, it wasn't.

This is the story of how three separate systems, the sales platform, an internal admin panel, and a courier partner's own API, ended up talking to each other through one Google Sheet, and how that sheet started catching the gaps that used to break shipments before they ever reached a courier.


The Problem

Order data reached the fulfilment process from the sales platform with frequent gaps, a missing delivery address, a missing or invalid T-shirt size, or an unclear gift combination. A single missing field was enough to fail a shipment once it reached the courier.

The sales platform, the internal admin panel and multiple courier providers each held only part of an order's history. There was no single view of which orders were incomplete, which were in transit, and which had gone missing, arrived late, or been returned, so the first signal something had gone wrong was usually a customer asking where their gift was.


The Approach

Three Google Apps Script integrations connect the sales platform, the internal admin backend and a courier partner's API into a single Google Sheet acting as the operational hub.

Sales Platform API Google Sheet Admin Backend
Courier API Formula Cross-Check Resolved or Flagged
One sheet, three sources, reconciled automatically.

One script pages through the sales platform's API to pull every paid order together with its gift selection, T-shirt size, delivery address and contact details, de-duplicating by payment ID and excluding failed or pending transactions. A second authenticates against the admin backend and writes delivery-status updates back for each order directly from the sheet. A third pulls the courier's own order list, including its recorded delivery address and status, for cross-checking against the internal record.

Google Sheets formulas cross-reference the three sources to flag any order missing an address or a T-shirt size, resolve the gap automatically wherever the missing value exists in another source, and surface only the genuine exceptions that still need a manual look.


The Outcome


What I'd Do Differently

If I started this today, I'd design the formula-based validation in before the first batch went out, rather than after the first run of failed shipments made the gaps obvious. Three independent systems reconciled through one sheet turned out to be the right pattern, it was just discovered under pressure rather than chosen deliberately from day one.