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.
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
“The audit alone saved us $40k/month in AWS spend. Then they actually rebuilt the thing — and trained our team to own it.”