Skip to content
Dashboards

Your business,
on one screen

Live data from every tool your team uses, unified for the people making decisions. The morning ritual goes from seven tabs to one glance.

Built around the questions you actually need to answer.
One source of truth, across every team.

The difference

Stop hunting for numbers across seven tools.

Your data is already in the tools you pay for. We sync every source into one trusted layer, then build the views each role needs to make the call in front of them.

1. Your sources

Stripe
HubSpot
QuickBooks
GoHighLevel
Airtable
Xero

The tools your team already uses.

2. Unified data

One sync layer keeps every source fresh.

3. A view per role

Owner
Manager
Field

Same data, framed for the call in front of you.

Syncs as often as you need, automatically Drill-downs and exports on every chart Mobile-ready for the field

Example · the operations manager's view

Tuesday morning, 9am

Same data. Two ways of getting to it.

Today, without a dashboard

~30 min

ERP: pull yesterday's shipments and stock movements

CRM: see which open orders moved overnight

Accounting: match invoices against shipments

Spreadsheet: cross-check stock against the reorder list

The reorder picture lives in your head until tomorrow morning.

The manager's dashboard

30 sec

Yesterday

342 units · €18,420 invoiced

on track

Stock alerts

5 SKUs below reorder

steel cable

On-time delivery · 30d

92% · ↑ 2.4 pts

At-risk · today

3 items
PO 4821 · supplier 4 days late
SKU H-220 · 2 weeks of cover left

Three reorders queued before the team starts the day.

Case study Pool Ninjas

Three apps to one screen, every morning.

Pool Ninjas runs a recurring-service business across multiple US states. Their field jobs lived in Skimmer, customer history lived in GoHighLevel, and accounting lived in QuickBooks. Service managers were opening all three every morning, stitching the picture together by hand, and only catching at-risk accounts when something obvious broke.

We pulled all three sources into one Airtable hub and built a tailored dashboard for each role. Service managers work jobs and account health. The customer service team runs the inbox, with AI flagging urgent replies and customers whose sentiment is slipping. The owner sees every view, including the financials, and decides who else does.

5 layers · sync to screen

↓ see the live dashboard below

1. Source connectors

Skimmer · GoHighLevel · QuickBooks · APIs and exports

2. Scheduled sync

Hourly pulls, webhook-driven updates for events

3. Unified data model

Customers, jobs, invoices, messages linked in Airtable

4. Role-based views

Owner, manager, technician: each sees what they need

5. Alerts on the edges

Sentiment risk, missed payments, retention dips

Pick a role to see their dashboard

The team only sees what they need

The service manager logs in to this view: jobs, accounts, and what needs a call today. They cannot see payroll or company financials. The owner picks who sees what, per role.

01 · Service Manager Dashboard

Service Manager Dashboard

3 sources synced · 4 min ago
Mon, Mar 16

This month at a glance

live

MRR

$48.5k

+21% YoY

Active accounts

387

↑ 43 YTD

Churn (YTD)

2.8%

↓ from 3.7%

Source health

Skimmer synced 3m ago
GoHighLevel synced 4m ago
QuickBooks synced 8m ago

Account health

387 accounts
healthy 373 at-risk 11 critical 3

Henderson · 4523 Oak Ridge

Last service 19d · 2 unpaid · sentiment -32

$840 owed missed pmt ×2 critical

Vargas · 218 Pine Hollow

3 rescheduled jobs · last contact 14d

· silent · 14d critical

Mitchell · 88 Brookline Dr.

"Pool green again, 3rd time" · today

$120 owed sentiment ↓ at-risk

Becker · 1107 Lakeview Pl.

Invoice 21d overdue · service still active

$340 owed final notice at-risk

Patel · 32 Mockingbird Lane

3y customer · monthly · paid on time

$0 healthy healthy

Ngo · 645 Sandstone Ct.

Renewed yesterday · auto-pay on

$0 healthy healthy
+ 381 more · sorted by risk
action queue 3 critical accounts assigned · 7 follow-ups queued for today

Customer service runs on this view

Every conversation, every missed call, every customer signal in one place. AI flags the urgent replies and the customers whose sentiment is slipping. No financials, no payroll, just the inbox and the signals around it.

02 · Customer Service Dashboard

Customer Service Dashboard

live · synced 2 min ago
Last 30 days

Comms volume

1,847

1,103 in 744 out

Avg response

2h 34m

324 tracked · 18 pending

Missed calls

12%

32 of 267 inbound

Avg callback

47m

↓ from 1h 12m

Trust score

82

team average

Communication volume

inbound outbound

Weekly, last 13 weeks. Hover a week for the breakdown.

200 150 100 50 0 W1 W5 W9 W13

Avg response time

email sms

Weekly, in minutes. SMS replies are faster than email by design.

400 300 200 100 0 W1 W5 W9 W13
AI

Messages to reply

3 urgent 7 needs reply

AI flags incoming messages that mention urgency, complaints, or service-affecting issues.

Urgent

Henderson · 4523 Oak Ridge 12m ago

"Pool is green again, third time this month. Need someone out today."

Vargas · 218 Pine Hollow 38m ago

"Pump making loud noise, leaking water onto deck. Please call."

Becker · 1107 Lakeview Pl. 1h ago

"Cancelling service. Final notice on invoice and no response in 3 weeks."

Needs reply

Mitchell · 88 Brookline Dr. 2h ago

"Can we reschedule Thursday's service to Friday morning?"

Patel · 32 Mockingbird Lane 4h ago

"Do you have a recommendation for a new filter for our spa?"

+ 5 more needs-reply messages

AI

Low sentiment customers

12 at risk

Customers whose sentiment score is low or trending down in recent conversations.

Henderson 22 ↓ falling
last: 19d ago

3 unresolved complaints · invoice overdue · tone increasingly frustrated

Vargas 28 ↓ falling
last: 14d ago

3 rescheduled jobs · silent 14 days · last message "frustrating"

Mitchell 42 ↓ slipping
last: today

"Pool green again, 3rd time" · repeating issue · score down 18 in 30d

Becker 38 ↓ slipping
last: 21d ago

Invoice 21d overdue · service still active · cancellation risk

Tanaka 48 ↓ slipping
last: 6d ago

Asked about cancelling service · price comparison with competitor

+ 7 more customers with declining sentiment

service view AI flags urgent messages and at-risk customers automatically. Same sync, different lens.

The owner sees every dashboard, and decides who else does

The manager sees their cut. The field team sees theirs. The owner sees all of them, including this one. And the owner is the one who sets those permissions, per role, in a config table.

03 · Financials Dashboard

Financials Dashboard

live · synced 4 min ago
YTD 2026

MRR

$48.5k

+21% YoY

Active accounts

387

↑ 43 gained YTD

Retention

92%

monthly avg

At-risk

14

accounts flagged

Churned

11

YTD · 2.8%

Monthly revenue

2024 2025 2026

Each line is a year. Hover a month to compare years.

$100k $75k $50k $25k $0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Customer retention

active gained lost

Bars are gained vs lost per month. Line is total active accounts. Hover any month for the breakdown.

24 18 12 6 0 387 355 322 289 265 Nov 24 Apr 25 Oct 25 Mar 26

Income by service

Year-to-date · YoY change at the end of each bar

Revenue per service line. Hover a row for the exact figure.

Recurring Service
+87%
Repair Work
+210%
Chemical Income
+28%
Opening / Closing
+63%
Specialty Chemical
+45%
Clean Ups & Other
+380%
Filter Cleaning
+125%
Parts Only
-82%
$0 $200k $400k $600k $800k
owner view One of the views the owner opens. Built from the same sync layer as every other dashboard.

Results

Mornings stopped being a chore.

3 → 1

apps consolidated to a single morning view

30 sec

to read the picture, down from 30+ minutes

minutes

to surface at-risk accounts, not weeks

100%

live data · no manual spreadsheet maintenance

“I highly recommend Costanera. They've worked to integrate QuickBooks, GoHighLevel, and an industry-specific CRM all together into an interactive reporting environment for us built with Airtable. We use this to make sure operational, financial, and customer experience metrics are moving in the right direction for our home service company. They're great with APIs and scraping, great at listening and contributing creative ideas to create more business value. They're very responsive and are a pleasure to work with. I feel lucky to have found them.

John Nelson

President, Pool Ninjas

Pool Ninjas

Our approach

From scattered tools to a single source of truth.

A dashboard is only as good as the answers it gives. We start from the questions, not the visualisations, and design the data model and views around how your team actually works.

01

Start from the questions your team keeps asking

Before we draw a single chart, we list the questions your team is actually opening tabs to answer. What's overdue? Who's at-risk? What changed since last week? Every chart on the dashboard then has a job, not just a slot.

The questions, before any chart

Owner

Is revenue tracking against forecast?

weekly

Manager

Which accounts are at-risk this week?

daily

Finance

Who hasn't paid an invoice over 30 days?

weekly

Field / staff

What's on my queue today?

hourly

Output: a one-pager of questions per role, signed off.

How each source gets in

API real-time

Live pull of structured data. Stripe, HubSpot, GoHighLevel, Airtable.

Webhook event-driven

Pushed the moment something changes. Stripe events, Make, n8n.

Export scheduled

CSV or Excel drops on a schedule, for closed tools. Lexware, SAP, legacy ERPs.

Database direct read

Where you own the data, we read it straight. Postgres, MySQL, Supabase.

Output: every source flowing in, fresh enough to act on.

02

Get every source in, on its own terms

No two tools give up data the same way. We mix APIs, webhooks, scheduled exports, and direct database reads, so nobody types the same number into two systems. A dashboard is only as fresh as its slowest source, so we tune that one until it's fast enough for the call you make on it.

03

One screen per role, not one for everyone

A dashboard that tries to serve everyone serves nobody. We design role by role, with the owner deciding who sees what. Same data underneath, framed differently for each screen.

Same data, different cut per role

Owner

revenue · retention · forecast

Headline KPIs, trend indicators, the whole picture.

Manager

jobs · accounts · alerts

Daily picture, at-risk accounts, jobs behind schedule.

Field / staff

today's queue · route

Just their work for today, in order, on mobile.

Output: one screen per role, permissions baked in.

Versions, not deliverables

v1 · week 2

shipped

The view the owner picks as most critical. Built first, in use by your team within the fortnight.

v2 · week 4

shipped

Next role's view added. Same sync layer, no new connectors needed.

v3 · week 6

live

Remaining role views. Drill-downs and filters added from real usage, not guesses.

Output: live in two weeks, weekly iterations after.

04

Ship a working v1 in week 2, iterate from there

We don't disappear for six weeks and come back with a finished product. A working v1 lands in week 2 with whichever view the owner picks as most critical. Your team starts using it. We watch where they get stuck, then add the next view, drill-downs, and filters based on real use.

Capabilities

What every dashboard can do.

A consistent toolkit underneath, whether the dashboard is custom React or an Airtable interface.

One source of truth for every tool

We pull every tool your team uses into one unified data layer. Every dashboard, alert, and AI insight reads from that single source. No more reconciling numbers across systems.

Stripe HubSpot QuickBooks GoHighLevel Airtable + more
One data layer
Dashboards Alerts AI insights

Works for: any combination of tools your team already pays for. No migration needed.

KPI cards with drill-downs

A number alone is useless. Every KPI card has a trend, a comparison, and a click-through to the underlying records. No more "where did that come from?"

MRR

$48.5k

↑ 21% YoY

Retention

92%

↑ 1.8 pts

Works for: revenue, retention, utilization, pipeline, conversion, anything you measure week to week.

AI-powered insights

The dashboard surfaces signals automatically: urgent messages, sentiment drops, at-risk accounts, anomaly detection. AI prompts are editable by your team, no dev round-trip.

UrgentHenderson · 3 unresolved complaints
Sentiment ↓Vargas · score dropped 18 pts
At-riskBecker · invoice 21d overdue

Works for: complaint detection, churn prediction, fraud flagging, anything a human should see first.

Alerts that come to you

Nobody should have to refresh a dashboard to know something broke. Alerts route to Slack or email when a number crosses a line you set. The team gets the signal, not the noise.

Stock < 5 units #ops · Slack
Sentiment score < 30 Sarah · email
Invoice 30+ days late #finance · Slack

Works for: stock-outs, missed SLAs, account-at-risk flags, anomaly thresholds.

Live sync from any source

APIs, webhooks, scheduled exports, direct database reads. Whatever the source uses to get data out, we use to get it in.

Stripe webhook live
HubSpot API every 10m
Excel export · S3 nightly

Works for: accounting, CRMs, ecommerce, ERPs, field service, spreadsheets.

Role-based views

Each role sees what they need to do their job, and nothing more. Owner, manager, staff, accountant: different screens, same underlying data.

Owner revenue · forecast · cohort retention
Manager jobs · accounts · sentiment · queue
Staff today's route · checklist · notes

Works for: hierarchies (owner/manager/staff), departments (sales/ops/finance), territory-based teams.

Custom React or Airtable interfaces

Two tools, two strengths. We pick based on what your team needs to do, not what's easier for us to build. Airtable for fast iteration and ops teams. React when the visualisation has to do more than tables can.

Airtable Ops dashboards · CRUD · interfaces editable without devs.
React Custom analytics · advanced charts · external client-facing views.

Works for: internal ops portals, public client portals, embedded analytics, mobile-first views.

Every dashboard we build includes

Date filters

Re-cut any view by day, week, month, or custom range.

CSV and Excel exports

On every table, chart, and view.

Mobile-ready layouts

For the field team, not just the office.

View-level permissions

The owner decides which roles see which screens.

More dashboards we have shipped

Two more from the same playbook.

Different industries, different stacks, different metrics that matter. The pattern underneath is the same: pull from where the data lives, design for who reads it, drill down to the records that drove the number.

Pick a dashboard

Context

Peru's largest online pet supplies store. Their POS (Bsale) had every transaction, but the team was stuck in spreadsheets to get any analytics. We built a custom React dashboard with revenue, product reorder logic, RFM client analysis, and AI-flagged churn risk.

Sources Bsale POS + MySQL
Frontend Custom React
Refresh Hourly + on-demand

What it answers

  • How is revenue tracking vs prior period?
  • Which products are about to run out, by when?
  • Which high-spend clients are slipping toward churn?

Bsale Analytics · Overview

Business performance at a glance

7D 30D 90D 1Y
3 high-value clients at risk of churning María R. · S/ 6,420 · 28d ago Sofía M. · S/ 5,210 · 32d ago +1 more

Revenue

S/ 162.4k

▼ 6.2%

Transactions

812

▼ 9.1%

Avg ticket

S/ 200

per order

Active clients

491

↑ 8 new this wk

Revenue · last 30 days

peak: S/ 38k · day 13

Reorder probability Score Interval Status
Premium Wet Food · 85g 78 12.4d due soon
Dry Food Adult · 3kg 72 16.2d on track
Cat Treats · Variety Pack 41 19d overdue

Context

German engineering consultancy specializing in residential energy subsidies. Their financial picture lived across Lexware accounting and a separate payroll system. We built a unified financial overview: monthly P&L, receivables, project pipeline, top clients and suppliers, all in one screen.

Sources Lexware + Payroll
Frontend Custom React
Refresh Nightly + on-demand sync

What it answers

  • How is each month tracking on revenue vs expenses?
  • Which invoices are still open, how much is owed?
  • How is the pipeline flowing from quote to paid?

Financial Overview

Last sync: 18.05.2026, 14:22

⟳ Lexware ⟳ Payroll

Active quotes

€58,470

19 pending · 4 expired

Pipeline

€232,940

78 to invoice

Receivables

€41,820

17 awaiting

Payables

€8,340

5 due

2026 Monthly revenue & expenses

Paid Open Expenses Payroll
-€38.5k +€19.2k +€27.3k -€5.4k +€41.3k
Jan Feb Mar Apr May

Net revenue

€187,000

Net expenses

€143,100

Net profit

€43,900

Margin

23.5%

Quote → invoice → paid (all time)

Accepted
€682k 18d avg
Invoiced
€518k 45d avg
Paid
€473k 14d avg
Ecommerce · Pet supplies Bsale POS synced into a React dashboard with revenue, reorder logic, and AI churn flags.

Same pattern, every time

Pull from where it lives → unify in one data model → design per role → ship v1 in week 2.

Production-grade sync

Retry logic, fallback paths, error alerts. The dashboard does not silently go stale.

Tunable by your team

Thresholds, filters, column choices: all editable in Airtable or a config panel. No dev round-trip.

Is this right for you?

Three signs a dashboard will pay off.

If two of these three describe you, the dashboard will earn its keep within the first quarter.

01

Someone spends 30+ minutes a day assembling the picture

Opening the same tabs, copying the same numbers, mentally diffing this week against last week. Time the manager spends on assembly is time they are not spending on judgment.

seconds to read the picture

One screen replaces 30+ minutes of tab-switching every morning.

02

Your data lives across 2+ tools you already pay for

Accounting, CRM, field service app, a spreadsheet someone maintains. The numbers are already there. You don't need to start collecting them. You need to stop re-collecting them.

0 new tools, full picture

We read what you already pay for. Nobody types the same number into two systems.

03

Problems only surface when one person catches them

A customer cancels before anyone knew they were slipping. Stock runs out before someone notices. When the person who watches the numbers is out, no one else sees the slip. A dashboard surfaces every change the moment it happens, for everyone who needs to know.

minutes to spot a change

Surfaced live for whoever needs to know, not buried in one person's head.

If two of those three sound like you, we should talk.

30-minute scope call. We pick the screen with the highest leverage and quote a fixed price.

Book a scope call

Need an agent that takes action on the data, not just visualises it? See AI Agents.

Ready to put your businesson one screen?

30-minute scope call. We look at where your data lives, pick the highest-leverage view, and quote a fixed price.

Book a Scope Call

No commitment required

30

min call

Fixed

price quote

2

weeks to v1