A working Revenue GPS, built from your job post

This is a real run, not a mock-up. An n8n workflow pulled recurring revenue (Stripe), invoices (Zoho Books), pipeline (GoHighLevel) and client agreements (ClickUp). It checked each source, reconciled them against each other, calculated the numbers below and wrote the AI brief. Then it checked every figure in that brief against the data before publishing it.

Data: sandbox copies of each API with the exact response format, filled with fictional clients. Connecting your real accounts only changes the four source steps.

Watch it run recorded live · about 2 minutes

The n8n workflow running end to end in real time (about 22 seconds), the outputs of the key steps, then a walkthrough of the dashboard that run produced. Every number below comes from that run.

30 / 60 / 90 day forecast cash expected · AUD

Confirmed: retainers under agreement (Stripe + ClickUp) and open invoices due (Zoho)Speculative: weighted pipeline (GHL) and unconfirmed renewals at 70%

Alerts reconciliation + sync checks

Critical issues are sent to the founder straight away (Slack or email):

Daily AI brief

The model only sees verified figures. A guardrail step then extracts every number it wrote and matches it against the data. If one does not match, the brief is held back and the dashboard shows the numbers only.

Recurring revenue this month Stripe

Receivables Zoho Books

Expected payments, next 30 days Zoho Books

Sales pipeline GoHighLevel · probability by stage

Sync health checked on every run

Each source step continues on error. If Zoho or Stripe fails, the run still finishes, the alert fires and the affected numbers are marked stale instead of silently showing zero.

Source of truth per metric

MetricSource
Recurring revenue, new and churnedStripe subscriptions
Active client agreements, renewal datesClickUp list (agreement end date, monthly fee)
Outstanding invoices, collections, due datesZoho Books invoices
Pipeline, stages, owners, follow-upsGoHighLevel opportunities
Billing gaps and fee mismatchesClickUp agreement vs Stripe subscription

The workflow behind it n8n · this run

n8n workflow run with every step green: schedule, Stripe, Zoho Books, GoHighLevel, ClickUp, calculate, AI brief, number check, snapshot, alert

Every morning at 7:00 Melbourne time: 4 source pulls, validate and calculate, AI brief, number check, dashboard snapshot, then a founder alert if anything critical turns up.

The guardrail step output: 31 numbers checked, 0 unmatched, verified true

Make, custom code or AI agents?

My recommendation for you is a hybrid, kept deliberately small:

  • Make.com (which you already run) for triggers, API connections and alerts. It is cheap, visible and easy for your team to follow.
  • One small tested code module for the revenue logic: forecasts, reconciliation and stage probabilities. Money maths belongs in code with tests, not in 40 scenario modules. It runs as a Make code step or a small function in your own account.
  • AI only on verified numbers, for the brief and anomaly notes. No agent decides anything about money.
  • A Postgres or Supabase table keeps one snapshot per day, so trends and "what changed since yesterday" come for free.

This demo runs in n8n because I could stand it up end to end today. The same steps map one to one onto Make scenarios.

What I would validate first

  1. Does Zoho Books mirror Stripe invoices? If it does, revenue is double counted. This is the most common error in these dashboards.
  2. Which system owns the agreement end date and fee: ClickUp, GHL or the contract itself.
  3. Your real stage probabilities, from GHL won/lost history rather than guesses.
  4. API access and scopes for each tool, read-only, in accounts you own.
  5. How you want "confirmed" defined, for example signed agreement plus active billing.