Classic Automation Win

How We Built a Data Hub

Multiple tools, one dashboard. No more exporting, copying, pasting, and screenshotting. Just open and present.

5+
Tools consolidated
1
Source of truth
0
Manual exports
Live
Always current

The monthly reporting nightmare

Every company has this problem. Multiple tools, none of them talk to each other, and someone has to manually stitch it all together for the board.

The Tool Sprawl

Finance uses one system. Operations uses another. Sales has their CRM. Marketing has their analytics. Each tool has reports, but none of them connect. The data exists, scattered across platforms.

The Spreadsheet Dance

Log into tool A. Export report. Open spreadsheet. Paste data. Log into tool B. Export report. Paste into another tab. Repeat for every source. Hours of work before you even start analysing.

The Presentation Production

Now the data is in a spreadsheet, you need slides. Create graphs. Screenshot them. Paste into PowerPoint. Format. Align. Hope the numbers haven't changed since you started.

The Time Sink

A full work week every month. Spent not on analysis, not on insights, not on decisions. Spent on copying data from one place to another. Every single month.

Before
  • Log into 5+ different tools
  • Export reports manually
  • Copy-paste into spreadsheet
  • Build formulas and graphs
  • Screenshot for presentation
  • Repeat monthly, forever
After
  • Open dashboard
  • Data already consolidated
  • Interactive graphs built in
  • Filter and slice live
  • Present directly from the dashboard
  • 40+ hours saved every month

One source of truth, multiple inputs

Pull data from APIs where possible. Use human input forms where APIs don't exist. Store everything in one place. Serve it fast.

n8n

Workflow orchestration

PostgreSQL

Data warehouse

Supabase

Edge functions + hosting

Web Dashboard

Interactive frontend

Input Forms

Human API bridge

APIs

Direct data sources

The technical bits, explained simply

Database indexes, edge functions, API bridges. Here's what they actually mean and why they matter.

DATABASE INDEX

Why indexes make everything faster

Imagine a book with no table of contents. To find "Chapter 7", you'd flip through every page. That's a database without an index. With an index, the database knows exactly where to look.

In practice: We index columns that get filtered or sorted frequently. Date ranges, categories, IDs. Query time drops from seconds to milliseconds.

EDGE FUNCTION

The middleman between dashboard and database

The dashboard can't talk directly to the database. That would expose credentials and allow anyone to run any query. An edge function sits in between, accepts requests, validates them, runs the query, and returns results.

In practice: Supabase edge functions run globally, close to users. Fast response times, secure access, controlled queries.

HUMAN API

When machines can't get the data

Some tools don't have APIs. Or the API doesn't expose reports. Or it costs too much. Solution: a human downloads the report and pastes it into a form. The form triggers an automation. Human becomes the bridge.

In practice: 3 minutes of human effort replaces API access that doesn't exist. The form validates, formats, and pushes to the data warehouse automatically.

DATA WAREHOUSE

One place for everything

Each source tool has its own database, its own format, its own quirks. The data warehouse normalises everything. Same date format. Same column names. Ready for analysis without transformation gymnastics.

In practice: PostgreSQL tables designed for reporting. Aggregations pre-calculated. Historical data retained. One source of truth.

How the dashboard connects

The web dashboard makes a request to an edge function. The edge function authenticates the request, runs a parameterised query against PostgreSQL, and returns JSON. The dashboard renders the data with interactive charts. User clicks to filter? New request, new results, instant update.

No spreadsheets involved. No screenshots. No stale data. The board sees exactly what the data shows right now.

From scattered data to live dashboard

Three paths for data to enter the warehouse. One path out to the dashboard.

A
API Path

Direct API Integration

Tools with accessible APIs feed data automatically

Scheduled workflows hit each API daily. Pull new records, transform to standard format, upsert to warehouse. No human intervention needed. Finance system, CRM, marketing platforms that support API access.

Runs Automatically

Daily schedule, early morning. Data ready before anyone checks.

Handles Failures

Retry logic, error alerts, fallback to manual if needed.

B
Human Path

Human Input Form

Tools without API access get a human bridge

Some tools don't allow API access to reports. The human downloads the report (often just clicking "Export"), pastes into a web form. Form validates the data, triggers an automation that formats and inserts to warehouse.

3 Minutes Max

Export, paste, submit. The automation handles the rest.

Validates On Entry

Wrong format? Missing columns? The form catches it immediately.

1
Storage

Data Warehouse

All data lands here, normalised and indexed

PostgreSQL database with tables designed for reporting. Each source gets its own table. Common dimensions (dates, categories) standardised. Indexes created on frequently queried columns for speed.

Indexed for Speed

Queries that would take 5 seconds now take 50 milliseconds.

History Retained

Compare this month to last month, this year to last year.

2
API Layer

Edge Function

Secure, fast access point for the dashboard

A serverless function that runs globally. Receives requests from the dashboard, validates authentication, runs parameterised queries against the warehouse, returns JSON. The middleman that keeps the database secure.

Secure By Design

Database credentials never exposed. Only specific queries allowed.

Globally Distributed

Runs close to the user. Fast responses regardless of location.

3
Frontend

Web Dashboard

Interactive, live, presentation-ready

A web page that displays the data. Interactive charts, filter dropdowns, date range selectors. Change a filter? New data loads instantly. No spreadsheets, no screenshots. Walk the board through insights while the dashboard does the heavy lifting.

Always Current

Data from this morning. Not from when someone last ran an export.

The Presentation

No slides needed. Open the dashboard, talk through the numbers.

Dashboard vs Google Sheets

Sometimes a sheet is fine. Sometimes a proper dashboard is worth the investment.

Google Sheets can work as a dashboard. We've done it for simpler cases. But for board-level reporting with multiple data sources and the need for interactive exploration, a web dashboard wins.

INTERACTIVITY

Change the view on the fly

Filter by region. Switch between monthly and quarterly. Compare two time periods. A proper dashboard does this smoothly. Sheets struggle with complex interactions.

PERFORMANCE

Large datasets, fast responses

Sheets slow down with data. 10,000 rows? Noticeable lag. A dashboard with indexed database and edge functions stays fast regardless of volume.

PRESENTATION

Walk through, don't screenshot

Open the dashboard. Click to drill down. Zoom in on anomalies. Answer questions on the spot. The presentation happens live, with the actual data.

CONTROL

No accidental edits

Sheets can be edited. Formulas can break. Dashboards are read-only by default. The data is safe, the view is consistent, nobody accidentally deletes a row.

What we learnt building data hubs

Patterns that work for consolidating scattered data into actionable dashboards.

1

Human input isn't failure

When an API doesn't exist, a form works. 3 minutes of human effort monthly beats weeks of fighting a system that won't cooperate. The human becomes the API.

2

Indexes matter more than you think

A slow dashboard is a useless dashboard. Index the columns you filter and sort on. The difference between 5 seconds and 50 milliseconds is the difference between "I'll wait" and "this feels instant".

3

Edge functions are the gatekeepers

Never expose your database directly. An edge function validates requests, limits what can be queried, keeps credentials hidden. Security and performance in one layer.

4

Skip the slides

Open the dashboard in the meeting. Click through the data. Answer questions with live queries. The presenter focuses on insights, not on screenshots that are already stale.

5

Normalise early, suffer less later

Every source has different date formats, different field names, different quirks. Standardise on insert. When it hits the warehouse, it should already be clean.

6

Measure the time you're actually spending

We tracked it. A full week every month on copy-paste. Now that person analyses data instead of assembling it. That's the ROI.

Drowning in reports from different tools?

If your finance or ops team spends days every month consolidating data for board reports, we can fix that.