An n8n inventory dashboard is a self-hosted or cloud workflow that pulls stock levels from your systems on a schedule, writes them to a single database or sheet, and pushes alerts when items cross a threshold — no custom backend required. This guide shows how to build one end to end: connect your data sources, model the data, schedule syncs, add low-stock alerts over Slack or WhatsApp, and surface it all in a live dashboard. It is written for operators who want accurate stock visibility without paying for a heavyweight inventory platform.
At Aiwalay, we build these kinds of workflows for clients across retail, restaurants, automotive, and home services. n8n is one of our default tools when a business needs to stitch together tools it already pays for rather than migrate to a new system.
Why build an inventory dashboard with n8n?
Most small and mid-size businesses already have inventory data — it just lives in five places. Shopify holds ecommerce stock, a POS holds in-store counts, a supplier portal holds incoming orders, and someone maintains a "master" spreadsheet that is always slightly out of date. The problem is not missing data. It is that no one has one trustworthy view.
n8n solves this because it is a fair-code workflow automation tool you can self-host for free or run on n8n Cloud. It ships 400+ integrations, native HTTP request nodes for any REST API, a built-in scheduler, and — since 2024 — AI agent nodes. That combination lets you consolidate sources, transform the data, and trigger actions from one place.
Compared with the alternatives, the trade-off is straightforward:
| Approach | Setup effort | Monthly cost | Flexibility | Best for |
|---|---|---|---|---|
| n8n (self-hosted) | Medium | Server only (~$5–20) | Very high | Teams comfortable with a VPS |
| n8n Cloud | Low–medium | Paid plans (starter tiers, priced per execution/active workflow) | Very high | Teams that want no server ops |
| Zapier | Low | Higher at scale (task-based pricing) | Medium | Simple, low-volume syncs |
| Dedicated inventory SaaS | Low | $50–300+ | Low (opinionated) | Businesses that fit the product exactly |
If your stock logic is unusual — kits, bundles, multi-location, supplier lead times — n8n's flexibility usually wins. For a broader look at where this style of tooling fits, see agentic AI vs traditional automation.
What you need before you start
You do not need to be a developer, but you do need a few things in place:
- •An n8n instance. Self-host via Docker (
docker run -it --rm -p 5678:5678 n8nio/n8n) or sign up for n8n Cloud. Self-hosting is free but you manage updates and backups. - •API access to your data sources. Typically an API key or OAuth connection for Shopify, Square, WooCommerce, Airtable, Google Sheets, or a supplier system.
- •A storage layer for the "single source of truth." A Postgres/MySQL database is ideal; Airtable or Google Sheets works fine for smaller catalogs.
- •A dashboard front end. Options range from a Google Looker Studio report on top of Sheets, to Grafana or Metabase on top of Postgres, to a lightweight custom page.
If any of this feels like a lot, that is exactly the kind of setup our business automation team handles for clients — but the workflow itself is very buildable in an afternoon.
How do you structure the n8n inventory dashboard workflow?
Think of the build in four layers: ingest, normalize, store, and act. Keep them as separate workflows where possible so each can fail and retry independently.
1. Ingest — pull stock from every source
Start with a Schedule Trigger node. For most inventory use cases, a sync every 15–30 minutes is plenty; near-real-time is possible with webhooks where the source supports them (Shopify emits inventory_levels/update webhooks, for example).
For each source, add an HTTP Request node or the platform's native node. A Shopify inventory pull looks roughly like this:
GET https://{shop}.myshopify.com/admin/api/2025-01/inventory_levels.json?location_ids={id}
Header: X-Shopify-Access-Token: {your_token}Run each source in its own branch. Do not try to make one node fetch everything — separate branches make debugging far easier when one API changes.
2. Normalize — get everything into one shape
This is where most DIY inventory projects fail: each system names things differently. Use a Set node or a Code node to map every source into one canonical record. Decide your schema up front, for example:
// n8n Code node — normalize an incoming item
return items.map(({ json }) => ({
json: {
sku: json.sku ?? json.variant_sku,
name: json.title ?? json.product_name,
location: json.location_id ?? 'main',
on_hand: Number(json.available ?? json.quantity ?? 0),
reorder_point: Number(json.reorder_point ?? 10),
source: 'shopify',
synced_at: new Date().toISOString(),
},
}));The sku field is your join key. If your systems disagree on SKUs, fix that mapping before anything else — a mismatched SKU is the root cause of nearly every "the dashboard says we have stock but we don't" complaint.
3. Store — write to your single source of truth
Use an upsert so re-running the workflow never creates duplicates. In the Postgres node, insert on conflict:
INSERT INTO inventory (sku, name, location, on_hand, reorder_point, source, synced_at)
VALUES ($1, $2, $3, $4, $5, $6, $7)
ON CONFLICT (sku, location)
DO UPDATE SET on_hand = EXCLUDED.on_hand,
synced_at = EXCLUDED.synced_at;For a Sheets or Airtable-based setup, use the "Append or Update" operation keyed on SKU. Keep a composite key of sku + location if you track stock across multiple sites.
4. Act — alerts, reorders, and the dashboard feed
Once the data is clean and stored, the interesting part begins. Add a branch that filters for on_hand <= reorder_point and fans out to whatever actions you need:
- •Low-stock alert to a Slack or Microsoft Teams channel.
- •A WhatsApp message to the purchasing manager for urgent items.
- •A draft purchase order emailed or created in your supplier system.
- •A daily digest summarizing everything below threshold.
How do you add low-stock alerts and dashboards?
Alerts are what turn a passive report into an operational tool. The pattern is simple: a Filter node isolates at-risk SKUs, then a messaging node delivers the notification.
WhatsApp is often the highest-signal channel for owners and floor managers who do not live in Slack. You can wire n8n to the WhatsApp Cloud API directly; plan for business verification, a Business Manager and template message management. Aiwalay builds WhatsApp automation that answers, qualifies and follows up with leads on WhatsApp, and we agree the setup route and any Meta messaging fees with you during scoping. We covered the broader playbook in WhatsApp automation for customer engagement.
For the dashboard itself, pick the front end that matches your storage:
| Storage | Recommended dashboard | Why |
|---|---|---|
| Postgres / MySQL | Metabase or Grafana | Free/open-source, real-time SQL charts |
| Google Sheets | Looker Studio | Zero setup, native connector |
| Airtable | Airtable Interfaces | Built-in, no extra tool |
A good inventory dashboard shows four things at a glance: total SKUs, items below reorder point, out-of-stock count, and stock value. Everything else is drill-down.
A daily digest example
A single scheduled workflow can post a morning summary. In a Code node after your query, build the message body:
const low = items.filter(i => i.json.on_hand <= i.json.reorder_point);
const text = low.length
? `⚠️ ${low.length} items need reordering:\n` +
low.map(i => `• ${i.json.name} (${i.json.sku}): ${i.json.on_hand} left`).join('\n')
: '✅ All stock above reorder point.';
return [{ json: { text } }];Send that text to Slack, email, or WhatsApp. Your team starts each day knowing exactly what to order.
Common mistakes to avoid
We have rebuilt enough of these to know where they break:
- •No idempotency. Without upserts, a retried run doubles your data. Always key writes on SKU.
- •Polling too aggressively. Hitting APIs every minute burns rate limits and n8n executions for data that changes hourly. Match the schedule to reality.
- •Silent failures. Add an Error Trigger workflow that pings you when any run fails. A dashboard nobody knows is broken is worse than none.
- •Treating alerts as spam. Throttle notifications — alert on state change (item crossed the threshold), not on every sync while it stays low.
- •Ignoring data ownership. Self-hosted n8n keeps inventory and supplier data on your infrastructure, which matters for many businesses.
For more hard-won lessons on shipping automations that survive contact with real operations, read AI agents in production: lessons.
Where this fits in a larger automation stack
An inventory dashboard rarely lives alone. Once your stock data is clean and centralized, it becomes an input to other systems:
- •Feed reorder events into CRM integration so account managers see supply status.
- •Trigger an AI calling agent to confirm large restock orders with suppliers by phone.
- •Connect it to customer-facing automation so "back in stock" messages fire automatically.
This is the compounding value of building on n8n: each workflow you add can read from and write to the ones you already have. If you want to see how businesses sequence these projects, our 7-day AI transformation guide lays out a realistic order of operations, and the full services overview shows the range.
Aiwalay has deployed 250+ AI and automation systems across 50+ countries from our base in New Mexico. Founder Syed Husnain Haider Bukhari is a full-stack Python and AI developer who also builds ProLeads for lead generation and AgentFlow AI, a visual call-flow builder — so these workflows are built by people who ship production automation daily, not just diagram it. Explore our products or case studies to see the pattern applied.
Ready to build yours?
If you would rather have a working inventory dashboard delivered than assemble it yourself, book a free AI audit. We will map your data sources, recommend the leanest architecture, and scope the build — usually in a single call.
Key takeaways
- •An n8n inventory dashboard consolidates stock from multiple systems into one source of truth and triggers alerts when items run low.
- •Structure the build in four layers: ingest, normalize, store, act — and keep them as separate, independently retryable workflows.
- •Use upserts keyed on SKU (or SKU + location) to stay idempotent and avoid duplicate data.
- •Pair the data with a dashboard front end (Metabase, Grafana, or Looker Studio) and alerts over Slack, email, or WhatsApp.
- •Alert on state change, not every sync, and add an Error Trigger so failures never go unnoticed.
- •n8n's flexibility and self-hosting make it a strong fit when your stock logic is too custom for off-the-shelf inventory SaaS.