Where it started
A New Jersey automotive parts distributor reached out because their operations manager had quietly become a router. Every supplier confirmation, every photo-verified shipment, every wholesale approval, every customer-status check, every needs-photo-no-ship reminder — all of it was running through one inbox and a half-dozen browser tabs. The owner's words on the call were, almost verbatim: "we just need a smarter Shopify."
The first thing we did was ask if we could shadow the ops manager for a day before quoting anything.
What we found by listening
The Shopify admin wasn't really the problem. The problem was that the business was running across fourteen surfaces, and Shopify was just one of them.
Walking through a typical morning at the ops desk:
- A supplier sends an arrangement confirmation by email → forwarded into a thread → ops manager remembers to flag the order in Shopify → moves on, sometimes forgets.
- A new order comes in for a high-value part → photo-verification needs to happen at the warehouse before it ships → no system enforces it, just a daily Slack reminder someone hopes the warehouse sees.
- A wholesale customer requests an approval → email back-and-forth → manager creates a draft order in Shopify → manually applies dealer pricing → sends invoice.
- An OEM email confirmation lands → has to be parsed by a human → status updated somewhere.
- A QC issue → goes into a thread that nobody owns → resolved when someone notices.
The "smarter Shopify" the owner wanted wasn't a Shopify thing. It was a single internal portal that knew about all of these surfaces — and a set of small, invisible bots that handled the repetitive routing so the ops manager could focus on the parts of the job that actually needed judgment.
What we built
A custom internal ops portal — Next.js 15 + Supabase, with role-based access (admin, staff, supplier) and Row Level Security so each role saw only what they needed. Serial-number-level inventory across 5,000+ SKUs, modeled as a ledger so adjustments were always reversible and never lossy. Shopify webhooks pulled into Supabase Edge Functions, so the portal stayed current without anyone clicking refresh. Slack slash commands wired into the same backend so the team could query inventory, create POs, adjust stock, and look up orders without ever opening the portal.
Around the portal, we built a bench of focused Slack bots — one job each, none of them trying to be clever:
- Inventory checker bot for real-time SKU lookups, refreshing every 20 minutes.
- Order fulfillment bot orchestrating the order-to-shipment pipeline.
- Photo-check bots — one for new orders ("does this need a photo?"), one for outgoing reminders, one for handling customer responses to those reminders.
- Supplier-confirmation bot parsing inbound supplier emails and routing to the portal.
- OEM email bot reading OEM order confirmations.
- QC backend bot orchestrating the quality-control flow before fulfillment.
- Wholesale approval bot turning back-and-forth approval emails into a one-click Slack flow.
- Shipping-label-maker bot generating labels on demand.
- Order-status checker bot, draft-order bot, customer-check-in bot, contact-form-to-CRM bot, invoice-review bot, trello-metrics bot, troubleshooting-tickets bot — and a handful of smaller utilities.
Plus an AI-assisted backend bot for the ops manager — answers questions about historical orders, inventory positions, and customer history with the team's actual data behind it instead of generic chat.
Each bot is a standalone deployment (Node + Slack Bolt, Socket Mode, PM2-managed on a single VPS, GitHub Actions for CI/CD). One job each. None of them know about each other. The ops manager doesn't think of them as bots — they're just Slack channels that work.
The outcome
Six months in, with the portal and the first wave of bots live:
- 40+ hours of weekly busywork eliminated across supplier routing, photo gates, approval flows, and status lookups. Roughly one full headcount of capacity returned to the ops desk.
- Daily ops can be run by one fewer person. The ops manager went from routing-everything to actually managing — supplier relationships, exception handling, the parts of the job a system can't do.
- 5,000+ SKUs tracked at serial-level accuracy. Every order has a real audit trail. Warranty service, customer questions, returns — all answerable in seconds instead of digging through a thread.
- Photo-verification rate at 100%. The "does this need a photo, has the photo been received" loop is now a system, not a hope-someone-noticed Slack reminder.
- Inventory ledger never disagrees with itself. Every adjustment is reversible, traceable, attributable to a person and a timestamp. The "where did 3 units go" conversation has stopped happening.
- Supplier-side latency dropped meaningfully. Confirmations route automatically. Wholesale approvals close in minutes instead of email-chain hours.
- Owner stopped touching the ops queue. The reason they hired us was so they could go back to running the business. That's what they're doing.
"We didn't need a smarter Shopify. We needed a back office that didn't depend on me remembering things. The portal is the visible part of that — the bots are the invisible part. Both ended up mattering equally." — Owner, the NJ automotive parts distributor
Why it worked
Three things.
We refused to scope the engagement as "a Shopify customization." The actual problem was that the business was running across more surfaces than any single platform could ever consolidate. The right answer was a portal that lived above all of them, and a quiet set of bots that made the surfaces talk to each other.
We built one bot per job, deliberately. Trying to ship one big "automation platform" would have meant a 12-month build, a brittle dependency tree, and nothing to show until the end. Fifteen single-purpose Slack bots ship in waves, deploy independently, fail safely (one going down doesn't take the others with it), and can be deleted when the business changes.
Everything lives in their accounts. Their Supabase, their Shopify, their Slack workspace, their VPS, their GitHub. If we vanished tomorrow, the bots would keep running, the portal would keep responding, and a competent engineer could take over the whole thing in a week. That's the point.
A scoped, milestone-based engagement for the portal and first wave of bots — every deliverable defined and priced before any work began. Each subsequent bot scoped individually as the team identified the next bottleneck. No retainer, no monthly minimum, no hourly creep — just a working relationship where the work compounds when there's something worth working on.
