Skip to content

Home services and trades

How to export customers, jobs and invoices from Housecall Pro

By SourceX Editorial · Updated

Short answer

To export data from Housecall Pro, pull customer, job, estimate and invoice lists to spreadsheets first, then treat photos, notes, messages and any call recordings as separate exports or written support requests. Keep the IDs that link each customer to jobs and invoices, export history in yearly batches, and reconcile counts before you cancel or switch.

Key takeaways

  • List exports cover the core tables, but photos, attachments, notes and message history usually need separate steps.
  • The customer ID, job ID and invoice number are what let you rebuild history after the export.
  • Ask support in writing for anything you cannot export yourself, and ask what happens to account data after cancellation.
  • Accounting data is a check on the invoice export, not a substitute for it.

What can you export from Housecall Pro yourself?#

Housecall Pro users can usually export the core lists themselves: customers, jobs, estimates and invoices, as spreadsheet files from inside the app. Which columns appear, and which users can run exports, depends on your plan, your permissions and the app's current version, so check the vendor's help center before planning around a specific field.

Anything that is not a row in a list tends to need more work. Job photos, attachments, checklists, internal notes, customer message threads and any call recordings from phone features are the usual gaps. Where your plan includes API access, a developer can often pull more detail than the list exports show.

Export map by data type#

An export map assigns every data type to a route and names the fields that must survive. Build it before anyone clicks export, and use it as the completion checklist. The routes below are a starting point, not a promise: export screens, available columns and API access vary by plan, permissions and app version, so confirm each route in the vendor's help center or with support.

Treat the gap column as your support request list. Each gap either gets closed by a developer, closed by the vendor, or recorded as a known limitation in the export manifest.

Export map by data type
Data typeUsual routeFields to confirmGap to request
CustomersList exportCustomer ID, name, contacts, tags, lead source, notesArchived or deleted customers
Service addressesCustomer export or APIAddress linked to customer ID, all addresses per customerExtra addresses dropped when only the primary appears
JobsList export, filtered by dateJob ID, customer ID, address, status, dates, technicians, line itemsVisit-level detail on multi-visit jobs
EstimatesList exportEstimate ID, options, line items, status, linked jobDeclined and expired estimates
Invoices and paymentsList exportInvoice number, job ID, line items, tax, payments, refundsPayment detail beyond totals
Service plansList export or APIPlan, start and renewal dates, visits, billingVisit history per plan
Price bookExport or APIItem codes, names, descriptions, prices, categoriesImages and option groupings
Photos and attachmentsManual download or support requestFile name or folder tied to job IDBulk download across all jobs
Notes and checklistsAPI or support requestAuthor, timestamp, job IDFull note history, not only the latest
Messages and callsSupport requestDate, channel, customer linkText threads and any recordings

The IDs that keep customers, jobs and invoices linked#

IDs keep a customer, the jobs done at that address and the invoices billed for them connected once they leave the app. A job export that carries only the customer's name, not the customer ID, breaks as soon as two customers share a name or one customer changes theirs.

Linked IDs are also what make the archive useful later. A buyer checking repeat customers, an adjuster asking about a past repair or a reviewer assessing your job history all need to follow one customer through every job and invoice.

  • Confirm every job row carries the customer ID and the service address.
  • Confirm every invoice row carries the job ID, not only the customer name.
  • Confirm estimates carry the ID of the job they converted into, where one exists.
  • Name photo folders by job ID, and keep a manifest that maps files to jobs.
  • Never renumber IDs in the archive copy, even if the new system assigns its own.

Gaps to request from support, in writing#

Support requests should be written, specific and dated, because the answers decide what you can still recover after cancellation. Send them early in the process, not in the final days of the subscription.

Keep every reply with the export manifest. If a request cannot be met, record that too, so a later reviewer knows the gap was known rather than overlooked.

  • A bulk export of all job photos and attachments, organized by job.
  • Full note and checklist history with authors and timestamps.
  • Customer message history, including texts and emails sent from the app.
  • Call logs and recordings, if you used built-in phone features.
  • Archived or deleted records that do not appear in list exports.
  • The data return format, delivery method and expected timing.
  • What happens to account data after cancellation, and when it is deleted.

Checks before you rely on the export#

Checks prove the export is complete while you can still fix it. Run them before the account closes, and have the person who knows each record family sign off.

When a check fails, fix the cause before re-exporting, not the file. A short year usually means a date filter or a row limit; unreconciled months usually mean refunds, deposits or voided invoices handled differently in the two systems. Record each failure and its fix in the manifest.

Checks before you rely on the export
CheckHow to run itWhat a failure looks like
Record counts by yearCompare exported rows with in-app reports for the same datesA year with far fewer rows than expected
Invoice totalsSum invoices by month and compare with the accounting systemMonths that do not reconcile
End-to-end job traceFollow several jobs from customer to estimate, job, invoice and photosA step with no matching record
Date coverageCheck the earliest and latest dates in each fileHistory that starts later than the account did
Text encodingOpen files and scan notes for broken charactersGarbled apostrophes or accented names
DuplicatesLook for repeated IDs or overlapping date rangesThe same job appearing in two batches

Illustrative: a plumbing company exports before a merger#

Illustrative: a fictional residential plumbing company is merging into a larger HVAC and plumbing business that runs a different platform. The acquiring COO asks for full history, not just active customers, before the plumbing company's subscription ends.

The office manager exports customers, jobs, estimates and invoices in yearly batches and finds that the job file carries customer names but not IDs. A developer uses API access to pull jobs with customer IDs and visit detail. Support is asked in writing for a bulk photo export and the message history; the photos arrive, and the reply about messages is filed with the manifest.

The merged company imports active customers and open work into its platform and stores the full archive, keyed by the original IDs, as a sealed copy. The reconciled archive also answers the acquirer's questions about the plumbing company's repeat customers.

What the export is for after the switch#

A complete Housecall Pro export serves more than migration. It supports warranty and dispute questions, gives a buyer or lender verifiable history, and shows which records a company holds if it ever considers licensing data to AI developers.

SourceX's first fit check needs only a description of the archive, such as the systems involved, the years covered and the record families, with no files shared. If a package moves forward through the SourceX five-step transaction of Supply, Rights, Preparation, Approval and Delivery, the SourceX Evidence Packet records the export route and date as part of provenance, alongside licensing rights, permitted use, the privacy record and release authorization.

Frequently asked questions

Can QuickBooks or our accounting system replace the invoice export?

No. Accounting data holds totals, taxes and payments, but usually not the job, technician, line-item and visit detail behind each invoice. Use accounting totals to check the invoice export, and keep both.

Should we export everything at once or by date range?

Yearly batches are easier to check. Smaller files are less likely to hit size limits, and each year's count can be compared with in-app reports. Name each file with its date range and record it in the manifest.

Do archived customers show up in exports?

Not always. Archived or inactive records may be filtered out of default lists. Check the export filters, compare totals with the account's customer count, and ask support how to include archived records if they are missing.

Is it safe to send the export to a consultant or new vendor?

The export contains customer names, addresses, contact details and job notes, so treat it as personal data. Share only what the recipient needs, use a secure transfer, and make sure an agreement covers confidentiality and deletion when the work is done.

What about data held in apps connected to Housecall Pro?

Connected apps for accounting, financing, reviews, marketing or phones may hold records the platform never stored, such as call audio or financing decisions. List every integration, decide which records you need from each, and export them on the same schedule as the main account.

Related resources

See if your company qualifies

A short company assessment. No data uploads are needed.

See if you qualify