KeyCRM and Bank Reports in 2 Days: a Dashboard for a Professional Cosmetics Distributor
A distributor of salon cosmetics tracked sales, profit, stock and debts in Google Sheets. We built a web dashboard on top of KeyCRM and Finmap: each manager sees only their own debts, and a payment can be posted to the CRM in one click.
- 2 daysto the first working version
- 184orders reconciled to the cent
In hours and people: Debt reconciliation no longer needs a separate job, and the owner sees at once where the money is: 34 wholesale orders made up 63% of all debt.
Industry context
A professional cosmetics distributor sells wholesale to salons and retail to customers, some with cash on delivery. Money arrives from the bank, from a payment service as one transfer for many shipments, and in cash, while sales live in KeyCRM. As long as reports are calculated in spreadsheets, the owner sees numbers late and managers see more than they should.
The challenge
Spreadsheet reports were awkward and risky: managers saw each other’s debts, bank payments were matched to orders by hand, and checking whether a debt was real took half an hour of reconciliation.
Our approach
- 01
Copies, not edits
We left the live automations untouched: built copies and compared them with the sheet order by order.
- 02
Reconciled to the cent
184 orders in the debt report matched the sheet to the cent before the dashboard became the main tool.
- 03
A suggestion instead of automation
Matching payments to orders is suggested to the accountant rather than done automatically.
How the solution works
- 01KeyCRM + FinmapSales, payments and finance
- 02n8nComputes reports on a schedule
- 03SupabaseStores snapshots and access rights
- 04DashboardA manager sees their debts and posts payments
n8n computes reports from KeyCRM and Finmap and stores ready snapshots in Supabase; the dashboard shows sales, gross profit, stock, debts, bank, cash flow, a write-off log and bundles. A "paid" tick in the dashboard posts the payment to the CRM. Bundles sync both ways with a Google Sheet. Managers see only their own debts.
Why this stack
KeyCRM stays where managers work and Finmap stays the financial ledger. We replace neither; we bring the data into one dashboard. n8n computes reports on a schedule and Supabase stores ready snapshots, so the dashboard opens instantly and does not load the CRM. Row-level access gives each manager only their own debts.
Where projects like this usually break
A payment "larger than the debt"
Our first conclusion about an inflated debt was wrong: the payment had already been entered by hand. Automation splitting such a payment across orders would have quietly doubled payments. So matching stayed a suggestion.
Cash on delivery
The payment service sends one transfer for many shipments, so paying status per order cannot be verified from the bank. The dashboard shows those orders separately.
Convenience beats looks
The owner insisted the dashboard be as convenient as a spreadsheet: draggable columns, filters, a total at the bottom, minimal labels. We started there and adjusted the design later.
Results
| Before | After |
|---|---|
| Reports in Google Sheets | One dashboard: sales, profit, stock, debts, bank |
| Managers saw each other’s debts | Each sees only their own customers |
| Payments matched by hand | A payment is posted to the CRM in one click |
All 8 spec stages in 2 days, then a week of interface iterations with the owner.
Who this fits
A fit for trading and distribution companies on KeyCRM that calculate reports in spreadsheets and want sales, profit, stock and debts in one place with per-manager access. If you have two simple reports, KeyCRM’s built-in reports are enough.
Frequently asked
Do we need to move off KeyCRM?
No. The dashboard runs on top of KeyCRM and Finmap and managers keep working where they are used to.
How do you check the numbers are right?
We compare the dashboard with the sheet order by order, to the cent. Here 184 orders in the debt report matched, and only then did the dashboard become the main tool.
Can managers see each other’s debts?
No, each sees only their own customers. The owner and accountant see everything.
How long does a project like this take?
The first working version here took 2 days, then a week of interface iterations. Timing depends on the number of reports and data sources.