n8n eCommerce Automation as a Multi-Tenant SaaS: Inside Our Ecom Automation Demo

Connecting Shopify to n8n takes an afternoon. Turning that workflow into something ten different stores can sign up for, configure, and trust with their API keys takes a lot more. That gap is where many n8n eCommerce automation projects stall: the workflow runs fine for one store, then someone asks how the second client gets onboarded without cloning the whole setup.
We built Ecom Automation to answer that question in working code. It's a mini demo from NUS Technology Labs that automates a common fulfillment flow across Shopify, Zoho Inventory, EasyPost, Slack, and email, wrapped inside a real multi-tenant application. You can try the live demo or read the source on GitHub. This post covers what it does, how it's built, and the decisions that matter if you plan to ship something similar.
Why Order Fulfillment Still Breaks Without Automation
Every order raises the same three questions. Is it in stock? Can it ship? Who needs to know? When a person answers them by jumping between the Shopify admin, an inventory tool, and a carrier dashboard, small errors pile up. Stock gets promised twice. A held order sits unnoticed until the customer writes in.
At industry scale, those gaps cost real money. IHL Group's 2026 Inventory Distortion Study estimates that out-of-stocks and overstocks cost retailers $1.7 trillion a year, about 6.2% of global retail sales. Not all of that is a workflow problem, but plenty of it comes from systems that don't share data fast enough. It's a recurring theme in commerce and marketplace operations.
Workflow tools have become the default fix, and n8n is one of the most popular. The company raised a $180 million Series C at a $2.5 billion valuation in October 2025. Most n8n eCommerce automation guides show you how to connect one store to one instance. That's a good start. It's also where the difficult engineering questions begin: onboarding the second customer, storing their API keys safely, and showing them what happened to an order without handing over the n8n editor.
Inside the Shopify Order Fulfillment Workflow
Ecom Automation is a multi-tenant SaaS showcase. A business signs up, connects its own Shopify, Zoho Inventory, and EasyPost accounts, and then watches orders move through a predefined fulfillment workflow:
- A Shopify order webhook reaches the backend, which verifies the HMAC signature, deduplicates the event, and saves the order.
- n8n opens a workflow run and checks stock availability in Zoho Inventory.
- In-stock orders are confirmed and passed to EasyPost for shipment creation, with fulfillment data written back to Shopify.
- Out-of-stock orders go on hold and trigger a Slack notification.
- Shipment updates can trigger customer emails and Slack messages.

The interesting part is how failures behave. If the inventory check, shipment creation, or Shopify update fails, the run stops and is marked failed, and failed runs can be retried. Alerts are best-effort, so a Slack outage never invalidates an order that otherwise shipped correctly. That distinction sounds minor. In production, it decides whether your ops team gets woken up over a chat tool hiccup.
The workflow is fixed rather than user-editable today. For most merchants that's the right trade: they want orders shipped, not a workflow canvas to maintain.
n8n SaaS Architecture: Keep the Orchestrator Out of the Trust Boundary
The demo uses n8n for what it does well, coordinating steps and branching logic, and puts everything security-sensitive in a dedicated application layer.
It's a TypeScript Turborepo monorepo with three main pieces. A Next.js 16 and React 19 frontend handles onboarding, integration setup, and dashboards. A NestJS 11 backend with Prisma and PostgreSQL owns tenant logic, authorization, and every call to an external provider. n8n runs the workflow and talks to the backend through protected internal APIs using a shared service token.

Here's the decision that matters most: n8n never sees a merchant's decrypted credentials. It sends tenant and order IDs to backend endpoints. The backend decrypts the stored credential (AES-256-GCM, kept in its own table), calls Zoho or EasyPost, and returns the result. Provider calls run through adapters with request timeouts, rate limits, and circuit breakers. Workflow JSON lives in the repository as the source of truth and contains no provider tokens.
This is the same complex system integration discipline we bring to client work. For a French agricultural eCommerce company, our warehouse console keeps inventory in sync with the storefront and hands shipments off to XPO Logistics, DB Schenker, and GLS. Purchase order automation there cut administrative overhead by more than 40%. The demo's backend is a compact snapshot of how we approach Node.js development for integration-heavy products.
Multi-Tenant n8n Automation: What Changes With Customer Number Two
A single-store workflow can hardcode its credentials. A product can't. In Ecom Automation, each business works inside its own organization context. The same predefined workflow runs for every tenant while their data and configuration stay separate.
Three things make that work:
- Verified identity. Tenant identity comes from the verified Clerk organization claim on the session token, not from a request header on its own.
- Role-based access. Access follows four seeded roles: Owner, Admin, Operator, and Viewer. A warehouse operator can process orders without touching billing or integrations.
- Visibility inside the app. Users see integration status, workflow run status, step progress, and logs, with Server-Sent Events pushing near real-time updates. Nobody needs a login to the underlying n8n instance.
The adapter layer is built for change, too. Beyond Zoho, EasyPost, Slack, and Resend, the repository already includes adapters for alternatives such as Odoo, Shippo, SendGrid, Mailgun, and Discord. Swapping the provider for one step doesn't mean rewriting the workflow.
One honest trade-off: tenant isolation is enforced at the application level, and PostgreSQL row-level security isn't configured. Every tenant-scoped query has to filter by tenant ID. For a production system holding sensitive merchant data, we'd add database-level isolation as a second safeguard. That kind of hardening is part of how we plan workflow automation and operational visibility projects from the start.
The n8n License Question Most Tutorials Skip
None of the top-ranking Shopify and n8n guides we reviewed mention licensing. It should be the first thing you check before building a paid product on this pattern.
n8n is distributed under the Sustainable Use License, which n8n created in 2022. Its license FAQ says you can usually use n8n as the back end for a feature in your app, provided that process doesn't use your users' own credentials to access their data. n8n's own example of something not allowed is collecting a user's HubSpot credentials to sync data into an app.
A multi-tenant tool where each merchant connects their own Shopify store sits very close to that example. For uses outside the license, the FAQ points to a separate commercial agreement with n8n.
Our demo is a non-commercial showcase, and its repository carries a non-commercial license. Keeping decrypted credentials out of n8n is good security practice, but don't read it as a licensing workaround. We're engineers, not lawyers. If you plan to charge for a product like this:
- Contact n8n's licensing team early.
- Factor the licensing cost into your pricing.
- Weigh it against owning the orchestration code yourself.
FAQ
Can n8n run automations for multiple customers at once?
Yes, but n8n alone doesn't give you a tenant model. In our Ecom Automation demo, a NestJS backend and Clerk Organizations handle tenants, roles, and encrypted credentials, while one predefined n8n workflow serves every business. n8n passes tenant and order IDs to the backend, which makes the provider calls. That keeps each tenant's configuration separated and keeps customers out of the n8n editor entirely.
Is n8n free to use in a commercial SaaS product?
Not always. The Sustainable Use License limits use to internal business purposes. n8n's documentation says powering an app feature is usually fine, unless the process uses your users' own credentials to access their data. That case needs a commercial agreement. Hosting or white-labeling n8n for paying customers isn't allowed either. Confirm your use case with n8n's licensing team before launch.
Which tools does the Ecom Automation demo connect?
The live demo's fulfillment workflow connects Shopify, Zoho Inventory, EasyPost, Slack, and email through Resend. The stack includes Next.js 16, React 19, NestJS 11, Prisma, PostgreSQL, n8n, Clerk, and Server-Sent Events, packaged with Docker Compose and Turborepo. The repository also contains adapters for alternatives such as Odoo, Shippo, SendGrid, Mailgun, and Discord.
Can I reuse the Ecom Automation code?
You can read it, run it locally, and learn from it. The repository is published under the NUS Technology Non-Commercial License 1.0, so commercial use and redistribution aren't permitted. If you want a production version for your own business or product, reach out to NUS Technology to discuss commercial licensing or a custom build that fits your operation.
Conclusion
The workflow in this demo is simple on purpose: check stock, ship or hold, tell the right people. What makes n8n eCommerce automation ready for production is everything around it:
- Tenant-aware authentication
- Encrypted credentials the orchestrator never touches
- Clear failure rules
- Dashboards merchants can actually read
- A licensing plan you've confirmed before launch
Open the live demo, browse the code on GitHub, or look through our case studies for the client systems behind this approach. If you're planning a similar automation product, or need a fulfillment workflow that fits how your operation really runs, tell us what you're building. We'll help you work out the right architecture.


