← All articles
Reporting

Stop Pulling Reports. Let Them Come to You.

Somewhere in your company there is a person who opens QuickBooks every Monday, runs the same three reports, exports them to Excel, deletes two columns, adds a total row, and emails the file to four people. They have done it 200 times. They will do it 200 more.

That is not reporting. That is a cron job with a pulse. The reports may be fine — the delivery mechanism is a person, and people are expensive, forgetful, and on vacation in July.

Start with the report nobody asked for

Before automating anything, find out who reads what. Ask each recipient one question: what decision did you make from this last month? Most recurring reports get forwarded, unopened, to an archive folder. Automating those means nobody reads them faster.

Kill the dead ones. What is left is usually three or four that drive decisions — cash position, receivables aging, margin by whatever dimension you actually manage.

Automating a report nobody reads is just making garbage arrive on schedule.

Use the native scheduler first

QuickBooks Online will email a memorized report on a schedule, as a PDF, to a list of addresses. It is built in and costs nothing. If the report exists natively and the audience just needs to look at it, turn it on and go do something else with your afternoon.

The native scheduler falls down in three places: it cannot join QuickBooks data to anything outside QuickBooks, it cannot do conditional logic, and PDFs in an inbox are where analysis dies.

When to go past the built-in

The moment a report needs a number QuickBooks does not own — pipeline from the CRM, headcount from the HR system, units shipped from the warehouse — you need a real pipeline. The pattern is unremarkable:

  1. Pull from the Reports API on a schedule into a warehouse table stamped with a run time.
  2. Join it to the other sources there, not in a spreadsheet on somebody's laptop.
  3. Render one view — a dashboard link plus a short digest in Slack carrying the three numbers that matter.
  4. Keep history, so "is this worse than last quarter" is one query, not an archaeology project.

Push the exceptions, not the report

The best version of a scheduled report is not a report. It is an alert that usually stays quiet. Nobody needs a weekly aging PDF; they need a message when an invoice over 10,000 dollars crosses 45 days. Nobody needs the full P&L Monday; they need to know when a category runs 20 percent over trend.

Send the whole picture monthly for context. Send exceptions the hour they happen. That inverts the work: instead of scanning numbers hunting for problems, your team gets handed the problems.

The ideal reporting system sends you almost nothing, and everything it sends is worth reading.

We build this end to end, from API pull to digest — see Dashboards & Scheduled Reports.

Receipt Capture: Killing the Shoebox for GoodAutomation

Receipt Capture: Killing the Shoebox for Good

Duplicate Transactions: Debugging a Sync Gone WrongTroubleshooting

Duplicate Transactions: Debugging a Sync Gone Wrong

Building Purchase Approval Workflows in QuickBooksWorkflow

Building Purchase Approval Workflows in QuickBooks