Integration · Inbound logistics

Knowing where the freight actually is

Inbound visibility is the problem every warehouse says it has already solved. Then you ask how they know a shipment is late, and the answer is that somebody checks.

4 carrier integrations
4 exception queues
10 min refresh cycle
Confidential client & operation

Built for the inbound receiving operation of a contract-logistics site handling returns and inter-facility transfers.

The problem

Open shipments arrived as a spreadsheet attached to a recurring email. Someone opened it, and for anything that looked late, opened the carrier's website and pasted in a tracking number.

Three failure modes fell out of that, and all three cost real money. Freight put on carrier hold looked identical to freight in normal transit, so nobody called until it was days late. Freight delivered to the wrong city was discovered when it didn't show up. And completed lines never fell off the report — the source system kept every line of an order visible while any line stayed open — so the list grew until people stopped trusting it.

What we built

Direct integrations with the major carriers, refreshed on a cycle, writing status and revised arrival dates straight onto the open shipment record. One carrier had no API at all — that lane is handled by driving their portal in a real browser session, bounded and retried so a slow website can never stall the rest of the pipeline, bounded and retried so a slow website can never stall the rest of the pipeline.

The integration was the easy half. The half that changed the operation was giving every shipment an owner.

  • Carrier hold language detected and parked in its own queue, then released automatically when the carrier resumes
  • Delivery to an unexpected destination flagged for human action — outranking 'delivered', because wrong-city freight still needs work
  • Shipments past their transit allowance swept into a research queue
  • Receipt quantities reconciled against the warehouse system, with mismatches escalated only after a dwell period

Getting the details right

Automation that overwrites human judgment gets switched off within a week. Every automated update is scoped so it can only act on shipments still in an early state — once a person has advanced something, the machine leaves it alone.

The same care applies to bad data. A failed carrier lookup returns text, and text is easy to mistake for a status. Placeholder and error responses are explicitly excluded from ever being read as evidence that a hold was released, and a blank destination is never treated as a wrong destination. Every field edit is written to a change log with the old value, the new value, the user and the time.

The result

The dashboard answers the questions the spreadsheet couldn't: what is overdue, what is expected today, what is stuck and whose problem it is. Exceptions surface on their own instead of waiting to be found, and the report shrinks when work is done rather than growing forever.

Built with

  • Python
  • Carrier REST APIs (OAuth2)
  • Selenium browser automation
  • SQL Server
  • HTML canvas charts (hand-rolled)
  • Scheduled workers

On the details we left out

Client, location, system names and volumes are withheld deliberately. We're happy to go deeper on architecture and approach on a call.

Services this draws on

Workload Optimization

Squeeze more throughput out of the hardware and licenses you already pay for.

See the service →

System Integration

Connect aging systems to modern APIs, data platforms, and SaaS tools.

See the service →

More projects

Automation · Warehouse systems

Automating a system that has no API

The warehouse platform offered no write interface, so every transaction went in by hand. We automated the screens themselves — carefully enough to trust with live inventory.

Read the story →
Planning · Outbound fulfilment

Turning a flat order backlog into a plan the floor can pick

A daily backlog feed said what had been ordered — not what could be built, released or picked. We built the pipeline that turns it into a wave plan, a queued pick order, and a screen that says where each one got to.

Read the story →
Reconciliation · B2B trading partners

Variances that only close when they're actually gone

Two systems held different quantities for the same parts, and the disagreement arrived as a spreadsheet attached to a recurring email. We turned it into a register that remembers — and that nobody is allowed to close by hand.

Read the story →

Got a system like this?

A free assessment gives you a clear picture and a prioritized plan — no commitment.

Book a free assessment