Build Flows

Integrations · October 9, 2026 · 11 min read

Spectrum ERP Integration Guide: Spectrum Data Exchange Explained

A practical primer on integrating Trimble Spectrum through Spectrum Data Exchange: how Authorization IDs and operator codes scope access, Basic vs Enhanced authentication, the 18 modules of web services, Excel templates, and the integrations contractors build most.

By Charley Forey, founder of Build Flows

The short answer: Spectrum (Trimble Spectrum, formerly Viewpoint Spectrum) integrates with other systems through Spectrum Data Exchange, a set of web services that read data out of Spectrum ("Get" services) and write data into it ("Put" services). Access is controlled by an Authorization ID that is scoped to specific companies and specific web services and, for Get services, tied to a Spectrum operator code whose job-based security limits what comes back. You authenticate with Basic authentication or with Enhanced authentication, which uses an OAuth client credentials flow. Trimble's public list shows 142 web services across 18 modules. The services are the easy part. The work is in the Authorization ID setup, the master data mapping, and handling validation errors well.

This guide covers how Spectrum Data Exchange works, how security is scoped, the two authentication modes, which modules are exposed, where the Excel templates fit, the integrations contractors build most often, and how we approach a Spectrum project. It draws on work we did while building integrations on Trimble App Xchange, where Spectrum was one of the most-connected systems in the flow catalogs we worked with. Trimble's Spectrum API Web Services documentation is the reference for current details.

How Spectrum Data Exchange works

Spectrum Data Exchange (SDX) exposes Spectrum's data through web services over a secure web connection. Trimble's documentation describes two types:

  • Put services write new or changed data into Spectrum: a vendor, a job, an AP invoice, a PO.
  • Get services take parameters (the selection criteria) and return matching data.

Each Get service ends its return layout with three error fields: an error code, a description, and the column that caused the error. Validation runs in levels: first authorization and required fields, then numeric, date and general validation, then rules specific to the service. That ordering is useful when debugging. An authorization error means your setup is wrong; a service-specific error usually means your data is.

The same services back the Spectrum Office Add-in, which uses Excel to build files for import. Trimble's documentation notes that each web service has its own template. More on that below, because it is a good prototyping tool.

The Authorization ID: scoping access

Every Data Exchange call runs under an Authorization ID, created on the Data Exchange Installation screen in Spectrum. It is the main control on what an integration can do.

SettingWhat it controlsWhy it matters
CompaniesWhich Spectrum companies the ID can touchMulti-company contractors can roll out one company at a time
Web servicesWhich specific services the ID can callAn AP integration should not be able to call payroll services
Operator codeWhich Spectrum operator the ID acts asRequired when a Get service is assigned; applies that operator's job-based security and cost center logic, and must be valid for all companies on the ID
Per-service optionsDefault values, user-defined field mapping, counter overridesLets you fill fields the source system does not have, and map UDFs

Diagram of an Authorization ID between an integration and Spectrum, limiting companies, web services, the operator code whose job security filters Get results, and per-service options; a warning notes that a restricted operator returns fewer jobs with no errorThe Authorization ID decides what an integration can reach and what Get services return.

Three practical rules follow from this.

One Authorization ID per integration. If the PM sync and the field service sync share an ID, you cannot tell their traffic apart, and you cannot revoke one without breaking the other. Separate IDs give you least privilege and a cleaner audit trail.

Pick the operator deliberately. Because Get services apply the operator's job-based security, an operator with restricted job access will return a partial set of jobs, with no error. That looks exactly like a sync bug. Many teams create a dedicated integration operator. Decide which jobs and cost centers it should see, document it, and treat changes to that operator like changes to code. Follow the setup guide for your specific integration, because App Xchange and other vendors document their own steps for creating the operator and the Authorization ID.

Use defaults sparingly. Per-service default values are convenient: if the PM system has no concept of a Spectrum field, a default fills it. They are also a way to hide bad data. Default the fields that genuinely have one right answer, and let everything else fail validation so someone fixes the source.

Basic vs. Enhanced authentication

Trimble documents two authentication methods for Spectrum web services.

  • Basic authentication sends static credentials with the request. It is simpler and is what older integrations tend to use. Trimble's Basic Authentication page lists the exact fields.
  • Enhanced authentication uses an OAuth client credentials flow. Per Trimble's documentation, you enable it on the Data Exchange Installation screen, which provides a client ID and client secret. Your integration posts the client ID, client secret, the spectrumapi scope and grant_type=client_credentials to a /connect/token endpoint, receives a bearer access token with an expiry, and sends that token on subsequent calls. A /secretRotation call returns a new client secret with an estimated expiration date.

A sketch of the token request, written for illustration:

POST https://<your-spectrum-host>/connect/token
  client_id=...&client_secret=...&scope=spectrumapi&grant_type=client_credentials

-> { "access_token": "...", "token_type": "Bearer", "expires_in": ..., "scope": "spectrumapi" }

Prefer Enhanced for new work. Short-lived tokens limit the damage of a leaked credential, and secret rotation gives you a supported way to change secrets without a support ticket. Plan for it operationally: cache the token until shortly before expiry, store the client secret in a secret store such as Azure Key Vault, and give someone ownership of rotation before the secret's expiration date arrives. An integration that silently stops on the day a secret expires is one of the most common, and most avoidable, Spectrum incidents.

Comparison of Basic authentication, which sends static credentials on every request, and Enhanced authentication, where the integration exchanges a client ID and secret for a bearer token at /connect/token, calls web services with the token, and rotates the secret with /secretRotationBasic sends static credentials; Enhanced uses short-lived tokens and supported secret rotation.

What the web services cover

Trimble's public list of web services showed 142 services across 18 modules when we checked. Trimble adds services over time, so treat these counts as a snapshot.

The "typical use" column is our summary of what integrations commonly do in each area, not Trimble's service descriptions; check the list for the exact services.

ModuleServices listedTypical integration use
Payroll24Employee and time imports from time-tracking and HR systems
Accounts Receivable18Customers, AR invoices and payments from billing or field service
Work Order17Service work orders from field service platforms
Job Cost16Jobs, phases, cost types, budgets; job seeding into PM tools
Accounts Payable14Vendors, AP invoices, from expense, OCR or PO receipts
Equipment Control10Equipment master, meter readings, cost
Inventory Control9Items, transactions
Project Management7Subcontracts, change orders and PM records
Human Resources5Employee master data
Service Contract4Recurring service agreements
Time + Materials4T&M billing
Document Imaging3Attaching documents to Spectrum records
General Ledger3GL accounts and transactions
Preventive Maintenance3PM schedules for equipment
Purchase Order2POs from procurement or PM
Cash Management1Bank-related records
Equipment Tracking1Equipment location and assignment
Scale Ticketing1Scale tickets for material-heavy operations

Horizontal bar chart of Spectrum web services by module: Payroll 24, Accounts Receivable 18, Work Order 17, Job Cost 16, Accounts Payable 14, Equipment Control 10, Inventory Control 9, Project Management 7, Human Resources 5, Service Contract 4, Time and Materials 4, Document Imaging 3, General Ledger 3, Preventive Maintenance 3, Purchase Order 2, Cash Management 1, Equipment Tracking 1, Scale Ticketing 1Services per module in Trimble's public list when we checked: 142 across 18 modules.

Two things stand out. Payroll, AR, work orders and job cost are the deepest areas, which matches what contractors integrate most. And some objects you might expect to be rich, such as purchase orders, have only a couple of services, so check the exact fields each service accepts before promising a PM-to-Spectrum PO sync.

Excel templates: a fast way to prototype

Because each web service has an Excel template through the Spectrum Office Add-in, you can test an integration's data before writing any code. Fill the template with a real sample from the source system (twenty vendors, five jobs, a week of AP invoices), import it, and read the errors.

That exercise answers most of the hard questions early: which fields are required, which defaults you need, where your source data uses codes Spectrum does not recognize, and whether the Authorization ID's operator can see the jobs you expect. It also gives accounting a concrete thing to review. We would rather find out that half the cost codes do not map in a spreadsheet on day two than in a failed sync on day twenty.

Common Spectrum integrations

These are the patterns we saw repeatedly in Spectrum flows on App Xchange, described generically.

PM system to and from Spectrum

The usual shape between a project management platform (ProjectSight, Procore or similar) and Spectrum:

ObjectDirectionNotes
JobsSpectrum JC jobs to PM projectsSpectrum creates the job; PM receives it with the job number intact
VendorsSpectrum AP vendors to PM companiesVendors created in Spectrum first; PM references the vendor code
CustomersSpectrum AR customers to PMOwner and client records
Purchase ordersPM to Spectrum, or Spectrum to PM, but not bothPick one owner per object
SubcontractsUsually PM to SpectrumCommitment value and changes flow to committed cost

The design rule is the same as for any ERP: one system owns each object. Two-way sync of POs without an owner produces overwrites that nobody can explain.

Field service to Spectrum invoicing

Service contractors run dispatch and work orders in a field service platform and need the money in Spectrum. A typical flow set:

  • Spectrum jobs and customers to the field service platform.
  • Completed work to Spectrum AR invoices, and payments back.
  • PO receipts in the field tool to Spectrum AP invoices.
  • Schedule of values in the field tool to a fixed-price contract structure in Spectrum.

The hard part is usually customer identity (one customer, many sites, slightly different names) and tax. Settle both with accounting before building.

Equipment and telematics

Telematics platforms produce hours, miles and locations. Spectrum's equipment modules hold the equipment master and cost. A flow that posts meter readings to Spectrum lets preventive maintenance and equipment cost run on real usage instead of estimates. Map equipment IDs once, explicitly; telematics devices get swapped between machines, and a stale device-to-equipment map posts hours to the wrong unit.

Reporting into Power BI

Spectrum data feeds job cost, WIP and cash reporting. For reporting, land the data in a warehouse or lakehouse, then build Power BI on top, rather than having reports call web services directly. That gives you history, reconciliation against Spectrum's own reports, and a data quality gate before anyone sees a number. See construction WIP reporting in Power BI for the reporting side.

Master data: what has to line up

Every Spectrum integration depends on these keys being consistent across systems:

  • Company code. Multi-company setups need the company on every key.
  • Job number. Created in one place, pushed everywhere else.
  • Phase and cost type. Map at the standard list level; reject unknown codes instead of defaulting them.
  • Vendor and customer codes. Created in Spectrum first; other systems reference them.
  • Employee ID. For payroll and HR flows, one ID across time, HR and payroll.

Keep the mappings as versioned reference data that accounting can read and approve, and keep a crosswalk for anything created before the integration existed.

Errors and reliability

Spectrum's validation is your friend. The error code, description and column it returns tell you exactly what to fix, so route them to a person with that detail attached. A few habits that keep Spectrum integrations healthy:

  • Never retry a validation error. Retrying a bad cost code a hundred times does not make it valid. Retry transient failures only, with backoff.
  • Make writes idempotent. Carry the source system's ID on each record and check for it before resubmitting, so a retry after a timeout does not create a duplicate invoice.
  • Turn failures into tasks. On App Xchange, a common pattern is a remediation flow that creates a work item when a flow fails, so failures land in a queue with an owner. Any platform can do the same.
  • Watch for silent partial reads. If a Get returns fewer jobs than expected, check the operator's job security before blaming the code.
  • Schedule within limits. Batch syncs should finish well inside their interval. If a run takes longer than the schedule, they stack.

On-premises Spectrum

Many Spectrum customers run on their own servers. Data Exchange runs against your Spectrum installation, so an integration has to reach it over the network. Cloud integration platforms handle this differently; App Xchange, for example, documents an on-premises agent for connecting on-premises systems. Confirm the supported route for your version and hosting in current Trimble documentation, and get your IT team involved early, because firewall and certificate work is often on the critical path.

How we approach it

We start with the business question and a sample of real data in the Excel templates, so accounting sees the mapping before anything is built. We set up a dedicated Authorization ID and operator per integration, scoped to the companies and services it needs. We use Enhanced authentication for new work, with secrets in a vault and a named owner for rotation. Writes are idempotent, validation errors go to a person, and the mapping lives in version control. When the standard connector fits, we configure it. When it does not, we write the custom code, and leave it documented. An integration sprint is the usual starting point.

Where to go next

Frequently asked questions

What is Spectrum Data Exchange?

It is Spectrum's set of web services for integration. Get services return data based on parameters, and Put services write new or changed data into Spectrum.

What is a Spectrum Authorization ID?

It is the credential and scope an integration runs under, set up on the Data Exchange Installation screen. It is limited to specific companies and web services, can carry per-service defaults, UDF mappings and counter overrides, and needs an operator code when Get services are assigned.

What is the difference between Basic and Enhanced authentication in Spectrum?

Basic sends static credentials with requests. Enhanced uses an OAuth client credentials flow with the spectrumapi scope to get a short-lived bearer token, and supports rotating the client secret.

Why does my Spectrum Get service return fewer jobs than expected?

Get services apply the job-based security and cost center logic of the operator assigned to the Authorization ID. Check that operator's job access before debugging the integration code.

Next step

Need this connection in your environment?

Scope one integration: the records, direction, timing, and business rules behind the connection.

Prefer email? charley@buildflows.ai

Get the next guide in your inbox

Field Notes: practical guides and new walkthroughs, about once a month.

Field Notes

Practical guides and new walkthroughs on construction data and automation, roughly monthly.

Keep learning