Guide · Updated November 12, 2026

How to export Housecall Pro data to Google Sheets

There are four practical ways to get Housecall Pro data into Google Sheets. Which one fits depends on your plan and how often you need fresh numbers. The steps below come from Housecall Pro's own help center, and each section links its source.

MethodPlan neededStays up to date?Effort
1. Built-in list export (Jobs, Customers, Estimates)Any (Admin user)No, it's a snapshotRepeat each time
2. Report / dashboard exportAny (needs reporting permission)No, it's a snapshotRepeat each time
3. ZapierCheck Housecall Pro's plan pageNew events onlyBuild and maintain Zaps
4. Housecall Pro APIMAXYes, if scheduledDeveloper or an add-on

Method 1: Export the Jobs, Customers or Estimates list

Only employees who are Admins can export the Customers and Jobs lists.

  1. In Housecall Pro, click Jobs (or Customers) in the left navigation.
  2. Optional for jobs: click Edit columns to choose columns, and Filter to narrow by created, scheduled, completed or paid dates, lead source, tags, status, employees and more.
  3. Click the Actions button and choose Export.
  4. Confirm the email address and click Send file.
  5. Housecall Pro emails a CSV file from [email protected]. If it hasn't arrived within an hour, check spam.

Sources: Housecall Pro Help Center, How to Import & Export Jobs and Customers and Job & Estimate List Reporting.

Import the CSV into Google Sheets

  1. Download the CSV attachment from the email.
  2. In Google Sheets, open your reporting spreadsheet and go to File → Import → Upload.
  3. Choose Replace current sheet if this tab only holds the export, or Insert new sheet(s) to keep history.
  4. Keep "Convert text to numbers, dates, and formulas" on so totals and dates can be summed and filtered.
Tip: Keep the raw export on its own tab (e.g. Jobs_raw) and build pivots and charts on a separate tab that references it. Then next week's import only replaces the raw tab, and your reports keep working.

Method 2: Export a report or dashboard card

Housecall Pro's Reporting tab has dozens of ready-made reports (Jobs, Estimates, Leads, Service plans, Payments, Custom). You can customize columns and filters, save reports, and export them.

Employees need the Access Reporting permission to use the Reporting tab. Housecall Pro can also schedule reports to be emailed. Scheduled reports arrive as PDFs, though, so they're useful to read but not to feed a spreadsheet.

Sources: Managing Reports, Navigating Your Dashboard Reports, Exported Report Breakdown.

Method 3: Zapier (new records only)

Housecall Pro's help center shows how to build a Zap with the trigger New Scheduled Job in Housecall Pro and the action Create Spreadsheet Row in Google Sheets, mapping fields such as Customer Display Name to your columns. This works well as a running log of new jobs. It doesn't backfill past jobs, and to update a row when a job changes you need extra lookup-and-update steps.

Source: Zapier Integration Overview.

Method 4: The Housecall Pro API (MAX plan)

The Housecall Pro Public API is only available on the MAX plan. An Admin creates a key under My Apps → All Apps → API Key Management → Generate API Key, and can choose Full access or Read-only. For reporting, choose Read-only. Housecall Pro warns that a key gives access to all of the account's data, so only share it with a developer or tool you trust.

The API lives at https://api.housecallpro.com. List endpoints include GET /jobs, GET /customers, GET /estimates and GET /invoices. They return pages (page, page_size, total_pages, total_items; default page size 10) and can be sorted with sort_by (for example updated_at) and sort_direction. Housecall Pro's authentication page shows the API-key header format as:

Authorization: Token YOUR_API_KEY

A minimal Google Apps Script that pulls the first page of jobs into the active sheet looks like this:

function pullJobs() {
  const key = PropertiesService.getUserProperties().getProperty('HCP_KEY'); // never hard-code keys
  const res = UrlFetchApp.fetch(
    'https://api.housecallpro.com/jobs?page=1&page_size=100&sort_by=updated_at&sort_direction=desc',
    { headers: { Authorization: 'Token ' + key, Accept: 'application/json' }, muteHttpExceptions: true });
  const body = JSON.parse(res.getContentText());
  const rows = body.jobs.map(j => [j.id, j.invoice_number, j.work_status, j.total_amount, j.updated_at]);
  const sh = SpreadsheetApp.getActiveSheet();
  sh.getRange(1, 1, 1, 5).setValues([['id','invoice_number','work_status','total_amount','updated_at']]);
  if (rows.length) sh.getRange(2, 1, rows.length, 5).setValues(rows);
}

A production version also needs to loop through all pages, update existing rows instead of appending duplicates, handle errors and rate limits, and run on a schedule. Independent developers report that money fields come back as integer cents, so test against your own account before you trust totals.

Sources: API Overview (Housecall Pro Help Center), Authentication, Get Jobs, Get Invoices (Housecall Pro Public API docs).

Want method 4 without writing code? FieldSheet Sync is a Google Sheets add-on (in development) that does all of the above on an hourly schedule, with a read-only key. See the founding pre-order →

FieldSheet Sync is not affiliated with Housecall Pro. Menu names may change. If a step doesn't match your screen, check the linked help article.