Build Flows
Built and shownIntegrations

Procore and QuickBooks Online integration for WIP and cash reporting

Procore forecasts and QuickBooks actuals joined through a trust-ordered crosswalk, so the WIP schedule builds itself and unmapped jobs stay visible.

The problem

Procore holds the job forecast and QuickBooks Online holds the money, but nothing links a Procore project to a QuickBooks customer and job. The controller rebuilds the WIP schedule by hand each month, matching names that drift from one system to the other.

What we build

We connect both APIs with least-privilege credentials, land raw payloads in a Fabric lakehouse, and link projects to jobs in strict order of trust: the controller's manual mapping, then exact project number, then an unambiguous name match. Anything left over goes to an Exceptions page instead of being guessed onto the wrong job.

How it works

  1. 1

    Connect with least privilege

    An Intuit developer app using the OAuth authorization code flow for QuickBooks Online and a Procore custom app, with token reauthorization planned from day one and secrets in Azure Key Vault.

  2. 2

    Extract and keep the raw payloads

    Extract notebooks run under a rate limiter and land every API response in bronze as raw JSON, so any number can be traced back to what the source returned.

  3. 3

    Build the crosswalk without guessing

    Gold applies the manual mapping file first, exact project numbers second, and a name match only when there is exactly one candidate.

  4. 4

    Gate before Power BI

    Quality checks block the publish on missing data or values that would make a calculation wrong, and the report keeps showing the last version that passed.

  • Procore
  • QuickBooks Online
  • Azure Key Vault
  • Microsoft Fabric
  • Power BI
  • GitHub

The value it creates

  • Time saved

    The WIP schedule is generated from source data instead of rebuilt in Excel; measured by the controller's month-end hours before and after.

  • Better decisions

    Earned revenue, billings, and over/under billing are calculated once from governed measures, so every page uses the same definitions.

  • Early warning

    Unmapped projects, cost codes projected over, and jobs over their estimate at completion surface on one Exceptions page.

  • Forecasting

    A cash forecast built on committed cash only, with its assumptions stated on the page.

Proof

Frequently asked questions

Does QuickBooks Online access expire?

QuickBooks Online uses OAuth, and Intuit sets the token lifetimes. In our build we planned for periodic reauthorization and documented who signs in and when, so the refresh does not quietly stop. Check Intuit's current documentation for the exact limits.

Our project names do not match between Procore and QuickBooks. Is that a problem?

It is the normal case. The crosswalk uses an explicit mapping file first and exact project numbers second, and only matches on names when there is a single sensible candidate. The durable fix is adding the project number to the QuickBooks job name so the exact rule takes over.

Can we see this working before we commit?

Yes. The walkthrough and screenshots on the work page show the full report with sample data for a fictional contractor, including the WIP schedule, Exceptions, and cash forecast pages.

Do we need HubSpot too?

No. HubSpot adds pipeline next to backlog in our build, but the Procore and QuickBooks join stands on its own. A CRM can be added later through the same crosswalk.

Next step

Which report or workflow would you like to improve?

Tell us what your team does today, which systems are involved, and what you want to change. We'll discuss whether there is a practical fit.

Prefer email? charley@buildflows.ai