Constructelligence
Guide · data

Construction software integration: connecting ERP, project management and field tools

Most contractors run three kinds of software that each hold part of a job: the ERP (cost, payroll, AP, AR), a project-management platform (commitments, change events, RFIs, submittals) and field tools (time, daily logs, photos). Integration decides whether they tell one story or three. This guide covers the decisions that make an integration hold up: who owns each field, which keys join the systems, which way data flows, and how you notice when it stops.

Updated · 11 minute read

Key takeaways
  • Give every field one system of record; sync one way from it.
  • Job number, cost code structure and vendor ID must match across systems.
  • Money into the ERP should pass an accounting approver.
  • Own the error queue, check counts weekly, tie out commitments monthly.

Decide the system of record for every field

The first rule of integration is that every field has exactly one owner. Two systems both allowed to edit a commitment amount will disagree within a month. A typical split:

DataSystem of recordFlows to
Jobs, cost codes, cost typesERPPM platform, field tools
Vendors and subcontractorsERPPM platform
Original budgetERP (from the estimate)PM platform
Subcontracts and POs (commitments)PM platform, approved by accountingERP
Change ordersPM platformERP once approved
Posted cost, payroll, paymentsERPPM platform, reporting
Time and quantitiesField toolPayroll in the ERP
RFIs, submittals, issuesPM platformReporting only

Write the table down before choosing a connector. A connector that can't respect it — one that syncs a field both ways because it can — is the wrong connector.

ERPjobs · codes · cost · pay Project managementcommitments · COs · RFIs Field toolstime · quantities · logs Reporting reads all three, joined by job number jobs, codesapprovedtime → payroll
Each flow runs one way from the system that owns the data; reporting reads every system and changes none of them.

The keys that join the systems

Records only line up if they share a key. Three matter more than the rest:

Most platforms have a field for the other system's ID — Procore calls it the Origin ID. Filling it is what marks a record as synced, and what lets a report join the two sides without guessing.

CalculatorDouble entry you are paying for
ERPPM platformField appJob numberJ-1104J-11041104 RiversideCost code · type06-110 · L06-110 · LFramingVendor IDV-2041V-2041ABC Drywall, Inc.Green joins automatically. Red means a manual lookup on every cross-system report.
Job number, cost code and vendor ID must be identical everywhere. Push the ERP’s lists to the other systems rather than keeping a second copy.

Sync direction and timing

For each flow in the table, decide three things:

  1. Direction. One way, from the system of record. Two-way sync is almost never needed and is the usual source of overwritten numbers.
  2. Trigger. On approval (a commitment goes to the ERP when accounting approves it), on a schedule (cost to the PM platform nightly), or on change (webhooks).
  3. Approval. Money moving into the ERP should pass an accounting approver. Procore's ERP integration is built around exactly this: records wait in a staging area until an accounting approver accepts them.

Four ways to integrate

MethodHow it worksFitsWatch for
Native connectorBuilt by one of the two vendorsA common pairing both vendors supportWhich fields it actually syncs, and in which direction
Integration platformA middleware service with connectors for both sidesSeveral systems, or a pairing with no native connectorAnother subscription and another place for errors to hide
Direct APIYour own code against both APIsUnusual flows, or systems nothing else supportsYou own the upkeep, token renewals and rate limits
FilesScheduled exports and imports (CSV)On-premises software with no APISilent failures when a file is late or a column moves

Reporting is a fifth case that needs no sync at all: a reporting layer can read both systems and join them by job number, leaving each system as it is. That is how Constructelligence works — it reads Sage job cost from a reporting database and pulls projects, commitments, change orders and RFIs from Procore, Autodesk Construction Cloud or QuickBooks Online, without writing to any of them.

Monitoring: notice when it stops

Integrations fail quietly. A token expires, a field is renamed, one job's number is typed differently — and the reports keep running on stale or partial data. Three habits catch most of it:

Checklist
Integration field map in Excel, filled in with example rows — columns: Data, System of record, Flows to, Direction, Trigger, Key used, Owner
The integration field map as it opens in Excel: example rows in italics, calculated columns shaded.
Free template · Integration field map (Excel & CSV)An Excel workbook with drop-downs, validation and formulas built in — or the same columns as a CSV for Google Sheets and Numbers.
Download Excel (.xlsx)
What this template captures

Each data item with its system of record, where it flows, direction, trigger, the key used to match it and the owner.

7 columns: 6 you fill in and 1 picked from drop-down lists, so every row uses the same values. In the Excel version, the header row stays frozen with filters on it, and the workbook opens on an Instructions sheet that lists every column below.

Every column, and how it is captured
ColumnTypeWhat goes in it
DataTextFree text.
System of recordTextFree text.
Flows toTextFree text.
DirectionDrop-downOptions: One-way / Two-way.
TriggerTextFree text.
Key usedTextFree text.
OwnerTextThe person responsible for the row.

See it on real-looking numbers

Constructelligence is a construction intelligence platform: it reads your ERP, project and field systems read-only and does this arithmetic every week, for every job. The demo runs it on a sample eight-job portfolio.

Try the demoJoin the private beta

Frequently asked questions

What is a system of record in construction software?

The one system allowed to create and edit a given piece of data. Jobs, cost codes and posted cost usually belong to the ERP; commitments, change orders and RFIs to the project-management platform. Other systems receive copies but never edit them.

Should construction software sync both ways?

Rarely. Each field should flow one way, from its system of record. Two-way sync lets two systems overwrite each other and is the usual cause of numbers changing with no one having changed them.

What keys should match between ERP and project management software?

The job number, the cost code and cost type structure, and the vendor ID. Store the other system's ID on each record (Procore's Origin ID field, for example) so reports can join the two sides without matching on names.

How do I know if an integration is working?

Give someone ownership of the connector's error queue, compare record counts per system weekly, and tie out committed cost per job between the PM platform and the ERP monthly.

Do I need an integration to report across ERP and project management data?

No. A reporting layer can read both systems and join them by job number without syncing anything. Integration is needed when one system must act on the other's data — approving a commitment into the ERP, for example.

CI
Written by the Constructelligence teamConstruction finance and software. Worked examples use the sample demo portfolio; formulas are standard practice. Reviewed September 2026.

More in Data & integrations

All data & integrations resources →