Akforges
← All work
03— Automation · n8n
Northwind Logistics
Freight · 200 employees

14 spreadsheets → one n8n stack.

Custom n8n nodes for their TMS, Slack-based approval workflows, and automated Stripe payouts. 4,200 ops/day running. Paid for itself in week three.

320
Manual hrs / wk reclaimed
47
Workflows live
4,200
Ops / day automated
21d
Payback period

The problem

Northwind Logistics is a 200-person freight brokerage that had grown faster than its operations tooling. Their ops team was spending 320 hours per week on manual data entry — copying shipment status updates from their TMS into Stripe, HubSpot, and Slack; chasing approvals over email; manually reconciling invoices in spreadsheets.

They had tried Zapier. The task costs were eye-watering at their volume, and Zapier's built-in TMS connector didn't support the custom fields their freight management system used. They needed something they could extend — and that would keep their shipment data inside their own network.

The brief was simple: automate the 14 highest-volume manual processes, self-hosted, with a data residency guarantee, in under 6 weeks.

What we did

Week 1: process mapping. We interviewed every ops team member, documented every manual step, and ranked the 14 processes by time cost and error rate. The top 3 alone accounted for 180 of the 320 weekly hours.

We deployed n8n on an AWS EC2 t3.medium inside their VPC — Docker Compose, PostgreSQL for execution logs, an S3 bucket for workflow exports, and an nginx reverse proxy with SSL. Total infra cost: $67/month, compared to the $4,200/month Zapier bill they were heading toward at projected volume.

The critical blocker was their TMS. It had a REST API but used non-standard field names and returned inconsistent date formats. We built three custom n8n nodes in TypeScript: one for shipment status sync, one for carrier invoice parsing, and one for their internal approval routing system. Each node was unit-tested and published to their private n8n registry.

The approval workflow was the team's favourite: any invoice over $5,000 now triggers a Slack message to the approver with Accept/Reject buttons. Approval data writes back to their TMS and triggers a Stripe payout — all within 2 minutes of the invoice being received, versus 2–3 days manually.

Results

47 workflows live across all 14 originally scoped processes — plus 33 additional ones the ops team built themselves during the engagement after we trained them on n8n. 4,200 ops/day running reliably.

320 hours of manual work reclaimed per week. At their burdened ops team cost, that's $11,200/week in recovered capacity. The engagement paid for itself in 21 days.

In the 6 months since launch, the ops team has added 28 more workflows without external help. The custom TMS nodes are their most-used components.

Tech stack

n8nTypeScriptPostgreSQLRedisAWS EC2DockerStripeSlack APICustom TMS nodes

The audit alone saved us $40k/month in AWS spend. Then they actually rebuilt the thing — and trained our team to own it.

Daniel Osei
VP Engineering, Northwind
Start a similar project← Previous case