Track A / Automation and reporting
Five systems, five answers. We make them agree.
For businesses where the job system, the accounting package, the CRM, the spreadsheet, and the inbox each tell a different story. We connect them in code, automate the work that happens between them, and put one set of numbers in front of the owner in Power BI. Then we keep watching it, because automations break when the other end changes.
- Power BI on Microsoft 365
- Code and workflow, built to fit
- Fixed, per job, smaller than a build
- The same monthly plan
The jobs we get sent.
If one of these is yours, this is the page.
The numbers do not match
Sales says one figure, Xero says another, the spreadsheet says a third, and the monthly meeting is spent arguing about which one is right instead of what to do about it.
Someone re-keys it every Friday
Jobs from one system typed into another by hand. It works until that person is on leave, and it is wrong about once a fortnight.
The report takes three hours to build
Five exports, a pivot table, some copy and paste, and by the time it lands the numbers are a week old. The owner reads the first page.
Forty automations nobody understands
A workflow platform full of zaps and flows built by three different people, running on someone's personal login, with no record of what any of them do.
Onboarding touches six tools
A new customer gets set up in the CRM, the job system, accounting, email, the shared drive, and the phone system. Step four gets missed about a third of the time.
You find out when the customer rings
A sync failed on a Tuesday. Nothing told anyone. The invoices went out wrong for three weeks.
Automation, built to fit.
Two kinds of work, and we do both. Workflow automation on the platform you already pay for, and code for the parts the platform cannot do. Every automation gets a name, an owner, a log, and an alert for when it does not run.
Integrations in code
When the off-the-shelf connector does not exist, or exists but does not do the thing. Written against the systems' own APIs, with retries, logging, and secrets kept on the server.
Workflow automation on Microsoft 365
Power Automate for the approvals, notifications, and hand-offs that belong there. Built on a service account the business owns, documented, and kept out of anyone's personal login.
Reconciliation
Pull from every system, match the records, and produce a list of what does not line up and why. This is usually the first job, because it is where the arguing stops.
Scheduled jobs
The Friday re-key done at six on a Friday morning by something that never goes on leave, writes down what it did, and tells someone if it could not.
Alerts for the thing that did not happen
A sync that should run every hour and has not. A quote unanswered for three days. An invoice past terms. Silence is the failure mode, so we alert on silence.
Tidying the forty
An inventory of what already runs, what it touches, who owns it, and what to switch off. Half of it usually can be.
One number, and where it came from.
Reporting is Power BI on Microsoft 365, because that is where most Australian businesses already are and because it is good. We build the data model, set the refresh schedule, and design a report the owner actually opens. Every figure on it can be traced back to the system it came from.
What we do not do is bolt an AI insight panel onto the side of it. A number you trust beats a prediction you cannot check. If a model earns its place later, it goes in with the same rules as everything else: you can see where it got its answer.
Power BI on Microsoft 365
- Data model
- One place the systems are joined, with the matching rules written down.
- Refresh
- On a schedule, with an alert if a source stops answering.
- Reports
- Designed for the person who reads them, not the person who built them.
- Lineage
- Every figure traceable to a source record. When the numbers disagree, you can see why.
- Access
- Row level security where it matters. The sales team sees their numbers, not everyone's.
Smaller than a build, same rules.
Each automation or report is scoped and quoted as its own fixed price. The first one is usually reconciliation, because it tells us what the other jobs need to be. Most businesses get through the list in a handful of small jobs rather than one large one.
Everything runs on accounts the business owns. Service accounts, not personal logins. Secrets on the server, not in a spreadsheet script. Logs from day one.
The monthly plan applies here more than anywhere. Automations break when the system at the other end changes its API, its login, or its export format. Someone has to notice, and it should not be your customer.
- Thirty minutes. Which systems, which arguments, which Friday job.
- What runs now, what it touches, what to keep.
- Usually reconciliation. Fixed price, one to three weeks.
- The next job on the list, or the plan, or both.
The traps that apply here.
Automation has its own ways of going wrong, and they are on the inspection report with the rest.
- API keys and secrets shipped inside the browser bundle
- Domain, DNS, and hosting registered to the developer's personal email and card
- No logging, so nobody knows what happened
- Automations running on someone's personal login
- Workflows that fail silently
Two guides for the jobs we get sent most: integrating with Xero and running Power Automate properly.