Works with FreshBooks · ready

Live spreadsheets on your FreshBooks data

Invoices, payments, expenses and time entries become tables that formulas, pivot tables and charts read directly. Your numbers stay current without exporting.

  • Read only: never changes your books
  • Ageing buckets built in
  • Hours per project and client
What it is

Sheets

Live spreadsheets, dashboards and scheduled reports on your FreshBooks data.

Works with FreshBooks. Sign in with FreshBooks

Sheets turns your FreshBooks business into live spreadsheets. Invoices and their lines, payments, expenses, bills, clients, projects and time entries become tables that spreadsheet formulas, pivot tables and charts read directly, so your numbers stay up to date without exporting.

  • Receivables by client, with ageing (current, 1-30, 31-60, 61-90, over 90 days).
  • Expenses by category and vendor, and bills still to pay.
  • Hours per project and client from your time entries.
  • Pivot tables and charts on any table, and dashboards with filters.
  • Share sheets with colleagues, export to .xlsx or PDF, and send scheduled e-mail reports from your own mailbox.

Sheets only reads your FreshBooks data: it never changes your books.

Reports

Reports people build first

One formula each. Put it in a cell, fill it down a column, or turn the table into a pivot and a chart.

=data.invoices.sum(outstanding, payment_status, "Overdue")
Overdue receivables. Everything clients owe past the due date. Sheets computes the Payment status column (Draft, Open, Overdue or Paid) from what is outstanding and the due date.
=data.invoices.sum(outstanding, ageing, A2)
Receivables ageing. Outstanding invoices in the buckets accountants use (Current, 1-30, 31-60, 61-90, Over 90). Put a bucket name in A2.
=data.invoices.sum(outstanding, client, A2, payment_status, "<>Paid")
Receivables by client. Put the clients in column A with =list.invoices(client) and what each one still owes beside it.
=data.invoices.sum(total, date, ">=2026-01-01", payment_status, "<>Draft")
Invoiced this year. Total invoiced since 1 January, drafts left out; change the date to compare periods.
=data.payments.sum(amount, method, A2)
Payments received per method. Cash in by payment method, per row in column A.
=data.expenses.sum(amount, category, A2)
Expenses by category. Spending per expense category, ready for a pivot table or a bar chart.

All 8 reports

How it works

From connection to a live report

  1. ConnectSign in and choose your FreshBooks business. Sheets gets read-only access.
  2. Add dataAdd the tables a sheet needs as data sources, each under a short name.
  3. Write formulasUse =data.<name>.sum(…) next to any spreadsheet function, or build pivots and charts.
  4. Share and scheduleShare the sheet with colleagues, export to .xlsx or PDF, or e-mail it on a schedule.
FAQ

Questions

Does Sheets change anything in FreshBooks?

No. Sheets only reads your FreshBooks data. It never creates, edits or deletes invoices, expenses or any other record.

Which FreshBooks data can a sheet use?

16 tables: invoices, invoice lines, estimates, credit notes, payments, other income, expenses, bills, bill payments, vendors, expense categories, projects, time entries, clients, items, and taxes.

How current are the numbers?

Sheets reads FreshBooks when a sheet opens or refreshes, and keeps data at most in a short-lived cache, so formulas show the books as they are now.

Can I use more than one business?

Yes. Each FreshBooks business you connect is its own account in Sheets, with its own spreadsheets; you can switch between them.

Can I send reports by e-mail?

Yes. A sheet can be sent on a schedule as PDF or .xlsx, from your own mailbox.

Live spreadsheets on your FreshBooks data

Invoices, payments, expenses and time entries become tables that formulas, pivot tables and charts read directly. Your numbers stay current without exporting.

FreshBooks is a trademark of FreshBooks.