Finance teams are good at producing numbers and bad at being asked for them. If the leadership scorecard depends on someone in finance copying the cash balance and aged receivables into a table every Monday, it will be late in month-end week, wrong when that person is on holiday, and a small resentment the rest of the time.
Automating the finance scorecard fixes that — as long as it’s done with the same care finance applies to any other report. This guide covers the options, what to automate first, and the controls worth putting around it.
What Clarion connects to — plainly
Clarion has no built-in integration with accounting software, banks or payroll systems. Figures get onto the scorecard in four ways:
- Typed in by the metric’s owner.
- Pushed to a metric’s private URL by a spreadsheet script or an automation platform.
- Pulled by Clarion from a JSON API on a schedule.
- Sent through the REST API by a script a developer writes.
If your accounting system can export to a spreadsheet, or connect to Zapier, Make or n8n, routes 2 and 3 cover nearly everything.
Start with the spreadsheet you already have
Most finance teams already maintain a weekly cash sheet or management reporting workbook. That’s the best source for scorecard automation, for two reasons: the numbers in it have already been checked, and calculated figures like DSO, margin and runway are already worked out.
Every metric in Clarion can have a push URL. To create one, open Metrics, expand the metric, click Edit Metric, and under Push URL click Create push URL. Copy it immediately — it’s shown only once. See metric push URLs.
Then, in your Google Sheet, open Extensions → Apps Script and add a function per metric:
const PUSH_URLS = {
cash: "https://api.onclarion.com/v1/metrics/push/mpu_CASH_TOKEN",
ar60: "https://api.onclarion.com/v1/metrics/push/mpu_AR60_TOKEN",
};
function pushFinanceMetrics() {
const sheet = SpreadsheetApp.getActive().getSheetByName("Weekly cash");
push(PUSH_URLS.cash, sheet.getRange("B2").getValue());
push(PUSH_URLS.ar60, sheet.getRange("B3").getValue());
}
function push(url, value) {
UrlFetchApp.fetch(url, {
method: "post",
contentType: "application/json",
payload: JSON.stringify({ value: value }),
});
}
Add a time-driven trigger to run it — daily, or Monday morning before the leadership sync. See the Google Sheets page for more.
Better still, store the URLs in the script’s properties (Project Settings → Script properties) rather than in the code, so they aren’t visible to everyone who can open the sheet.
How pushed values are stored
- Each value lands on the metric’s current period — today, this week (starting Monday) or this month, depending on the metric’s frequency.
- Pushing again replaces that period’s value. It doesn’t add to it. So a daily run during the week just keeps the week’s figure current, and re-running a script is harmless.
- To record a past period — after a month-end adjustment, say — include a
datein the body:{"value": 412000, "date": "2026-09-30"}. It’s filed under the period containing that date. - You can include
noteswith a value, such as “after payroll run”, which is stored alongside it.
Using an automation platform
If you’d rather not maintain a script, Zapier, Make and n8n can all send a number to a push URL with a standard HTTP or webhook step. Many of them can also read from accounting tools directly. A typical scheduled workflow:
- Runs every weekday morning.
- Reads a balance or report total from your accounting tool or spreadsheet.
- Posts
{"value": ...}to the metric’s push URL.
Keep it to one workflow per source system, so when something changes you know where to look.
Pulling from a JSON API
If a figure is available at an HTTPS URL that returns JSON — for example a reporting endpoint your team or a developer maintains — Clarion can fetch it itself. An owner or admin opens the metric’s Edit Metric dialog and sets up Fetch from URL: the URL, the path to the number in the response (for example data.cash.total), an optional auth header, and how often — hourly, every six hours or daily. Test shows the number found before saving. See pull metrics from a URL and JSON API.
It only reads JSON. It won’t read a web page, a PDF or a CSV file, and it doesn’t follow redirects.
Controls finance should insist on
Automated numbers in front of the leadership team deserve the same controls as any report.
- Treat push URLs as credentials. Anyone with the URL can write values for that metric. Don’t paste them in chat or email. If one may have leaked, open the metric and click Generate new URL — the old one stops working immediately — or Turn off to remove it.
- Auth headers are protected. For pulled metrics, the auth header value is stored encrypted and never shown again after saving. If someone changes the URL to a different host, the saved value is removed, so a token can’t be redirected elsewhere. Only owners and admins can set up a pull.
- Failures are visible. A pulled metric shows when it last ran and, if it failed, why — for example “The server answered HTTP 401.” After ten failures in a row it pauses until someone saves it again.
- A human still owns the number. Every metric keeps an owner. Their job shifts from typing the figure to glancing at it before the meeting and correcting it if needed — a manual entry simply replaces the automated one for that period.
- Audit trail. If you need to log or reconcile every value received, a developer can subscribe to the
metric.ingestedwebhook. See set up webhooks.
What to automate first
| Metric | Source | Suggested route |
|---|---|---|
| Cash balance | Weekly cash sheet or accounting tool | Sheets script, or a scheduled automation |
| Cash collected this week | Accounting tool | Scheduled automation pushing the week-to-date total |
| Receivables over 60 days | Aged debtors report | Sheets script from your reporting workbook |
| Gross margin, net profit | Monthly management accounts | Sheets script after close, with date set to month end |
| Runway, DSO | Calculated in your workbook | Sheets script |
Start with the weekly cash metrics — they matter most and change most often. Monthly profitability figures can stay manual for a while; they only arrive once a month anyway.
For larger setups
If a developer already has a script or data warehouse job that calculates finance figures, it can write many metrics in one call using the REST API with a scoped API key. See ingest metric values via the API and push metrics from your systems.
Common mistakes
- Automating an undefined number. Agree what “cash” includes before you wire it up.
- Pushing raw transactions. Each push replaces the period’s value. Push the total or balance, not individual payments.
- Hard-coding URLs in a widely shared sheet. Use script properties, and limit who can edit the script.
- Nobody looking. Automation removes the typing, not the responsibility.
To decide which numbers to track, start with build a finance scorecard.