OTOMY
N8NJune 11, 20266 min

Automate Your KPI Reporting With a Custom Dashboard

Your teams waste hours every week compiling KPIs in spreadsheets? Discover how n8n, Supabase, and a custom front-end eliminate that manual work — for good.

M

By

Melissa Slimani

Automate Your KPI Reporting With a Custom Dashboard

Why Your KPI Reporting Deserves to Be Automated

In most SMBs, KPI reporting looks like this: someone opens five tabs, copies numbers into Google Sheets, applies formulas, generates a PDF, then sends it by email. Every Monday. Every month. Every quarter.

The problem isn't reporting itself — it's the human time swallowed by tasks a machine performs better, faster, and without errors.

Automating KPI reporting with a custom dashboard means turning a recurring chore into a living system that updates itself and alerts you when a metric goes off track.


The Technical Architecture: n8n at the Core

Here's the stack we deploy at Otomy for our SMB clients:

Layer Tool Role
Orchestration n8n (self-hosted) Data collection, transformation, routing
Database Supabase (PostgreSQL) Structured storage for historical KPIs
Front-end Next.js on Vercel Interactive, responsive dashboard
AI (optional) Claude AI via API Automated summaries, anomaly detection
Notifications Slack / Email / SMS Real-time alerts

This architecture is modular: you can start with n8n + Google Sheets on a tight budget, then migrate to Supabase as data volume grows.


Step 1 — Identify Your Data Sources

Before building anything, list exactly where your KPIs come from:

  • Google Analytics 4: traffic, bounce rate, conversions
  • Stripe / WooCommerce: revenue, average order value, refund rate
  • HubSpot / Brevo: open rates, leads generated, sales pipeline
  • Google Search Console: impressions, clicks, average position
  • Internal databases: PostgreSQL, Airtable, Notion

n8n offers over 400 native integrations. For unsupported APIs, a simple HTTP Request node does the job.


Step 2 — Build the n8n Workflow

Here's a concrete workflow for a weekly e-commerce report:

Trigger

Cron Trigger → Every Monday at 7:00 AM

Data Collection

1. HTTP Request → Google Analytics 4 API (sessions, conversions)
2. HTTP Request → Stripe API (revenue, refunds)
3. HTTP Request → Google Search Console API (clicks, impressions)

Transformation

4. Function Node → Calculate conversion rate, AOV, delta vs. previous week
5. IF Node → If conversion rate < 2% → alert branch

Storage

6. Supabase Node → INSERT into 'weekly_kpis' table

Notification

7. Slack Node → Formatted message with key KPIs in #reporting
8. (Alert branch) Email Node → Urgent notification to the manager

Pro tip: use n8n's Merge node to combine responses from different APIs before transformation. This prevents spaghetti workflows.


Step 3 — Store Intelligently With Supabase

Why Supabase instead of plain Google Sheets?

  • SQL queries: calculate rolling averages and period-over-period comparisons directly in the database
  • Row Level Security: each client only sees their own data
  • Auto-generated REST API: your front-end consumes data without a custom backend
  • Real-time: Supabase Realtime pushes updates to the dashboard instantly

Recommended table structure:

CREATE TABLE weekly_kpis (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  client_id UUID REFERENCES clients(id),
  week_start DATE NOT NULL,
  sessions INTEGER,
  conversions INTEGER,
  revenue NUMERIC(10,2),
  avg_order_value NUMERIC(10,2),
  conversion_rate NUMERIC(5,4),
  seo_clicks INTEGER,
  seo_impressions INTEGER,
  created_at TIMESTAMPTZ DEFAULT now()
);

Step 4 — Build the Front-End Dashboard

We use Next.js deployed on Vercel to build custom dashboards. Why?

  • SSR/SSG: pages load in under 200ms
  • Recharts or Tremor: charting libraries built for dashboards
  • Auth via Supabase: secure login in 10 lines of code
  • Responsive: accessible on mobile for executives on the go

Each dashboard typically includes:

  • Overview panel: the 5-7 critical KPIs with trend indicators (↑ ↓)
  • Time-series charts: evolution over 4, 12, or 52 weeks
  • Visual alerts: a KPI below threshold automatically turns red
  • PDF export: server-side generated for board meetings

Step 5 (Bonus) — Add Intelligence With Claude AI

This is where it gets truly powerful. Add an HTTP Request node in n8n that sends your weekly KPIs to the Claude AI API with this prompt:

Analyze these weekly e-commerce KPIs. Identify notable trends, 
anomalies, and suggest 3 concrete actions. 
Respond in English, 150 words maximum.

The AI-generated summary is then:

  • Inserted into Supabase (ai_summary column)
  • Displayed at the top of the dashboard
  • Included in the weekly Slack message

Result: your executive reads one paragraph instead of dissecting a table of numbers.


Common Mistakes to Avoid

  1. Too many KPIs: limit yourself to 7-10 metrics maximum. Beyond that, nobody reads them.
  2. No alert thresholds: a dashboard without alerts is a pretty poster. Define thresholds for every KPI.
  3. Ignoring reliability: configure n8n's Error Trigger node to be alerted if a workflow fails silently.
  4. Forgetting historical data: don't store only the latest value. History enables comparisons and trend detection.

What Does It Cost?

Component Estimated Monthly Cost
n8n self-hosted (VPS) €5-15
Supabase (Free tier) €0
Vercel (Free tier) €0
Claude AI API ~€5-10
Total €10-25/month

Compare that with the cost of an employee spending 4 hours per week on manual reporting: roughly €800/month in time equivalent. The ROI is immediate.


Conclusion: From Reactive Reporting to Proactive Steering

Automating your KPI reporting with a custom dashboard is no longer a luxury reserved for large enterprises. With n8n as the orchestrator, Supabase for persistence, and Next.js for visualization, an SMB can deploy a complete system in under two weeks.

At Otomy, we help SMBs across France and Algeria make this transformation. If your Mondays still start with copy-pasting into Excel, it's time to automate.

OTOMY

Ready to automate your business?

Book a free call — 30 minutes to identify what we can automate for you.