HubSpot + Fieldwire integration
Fieldwire runs the punch list, the plan sheets and the inspection forms on site, often for a trade contractor whose next job depends on this client.
Connects by API , iPaaSScope this integration Book a scoping call Estimate the cost
Fieldwire HubSpot - Into HubSpot
- Two way
Is there an official Fieldwire + HubSpot integration?
No. Neither HubSpot nor Hilti publishes a Fieldwire integration for HubSpot, and the HubSpot App Marketplace lists no Fieldwire app as of September 2026. We recommend a custom API integration on Fieldwire's REST API, at 70 to 150 build hours, once API access has been added to your Fieldwire plan through its sales team. An iPaaS can create the project when a deal closes, and it stops being enough once task counts, forms and contacts have to come back.
- Recommended route
- Custom API integration
- Build effort
- 70 to 150 hours
- In the HubSpot App Marketplace?
- No listed app
- Typical elapsed time
- 4 to 8 weeks
Marketplace checked September 2026.
Why teams connect Fieldwire to HubSpot
Fieldwire lives on the jobsite. Foremen and superintendents open it for the current plan sheet, the punch list and the day’s inspection forms, and a trade contractor may run it on projects for the general contractor who hired them. The business development side of the same firm works in HubSpot, pricing the next bid for those same general contractors, and it cannot see how the current project is going.
That blind spot costs real conversations. An account manager calls a client the week a punch list balloons, or misses the moment a project reaches closeout, a natural time to ask a satisfied superintendent about the next job. The people who know are in the field, and they will not retype their progress into a CRM, nor should they have to.
Fieldwire, part of Hilti Construction Software, exposes the same REST API that powers its own web and mobile apps, and it says many of its largest customers use it for import, export, analytics and automation. The real work is deciding what an account team needs from a jobsite system, which is far less than everything, and starting the project in Fieldwire from the deal that won it, so nobody types the job twice.
What syncs
Four records matter. The project is the hinge: a closed won deal creates it in Fieldwire, and from then on Fieldwire owns it, so its status and dates come back to a HubSpot custom object associated to the deal and the client company. Project users become HubSpot contacts, keyed on email with the Fieldwire user id as the tie breaker, because the superintendent on today’s job is often tomorrow’s referral.
Tasks are where restraint pays. A busy project holds thousands of them, and a CRM record per punch item would bury the account team. We roll tasks up into counts by status on the project record and leave the tasks themselves in Fieldwire. Forms get the same treatment: a submitted inspection or daily report becomes one dated note on the project with a link back, rather than a copy of every field.
Everything keys on Fieldwire ids, which for projects are GUIDs, and never on a name. Field teams rename projects, and a key built on the name would split one job into two records.
| | | Direction | Match key | Notes |
|---|---|---|---|---|
| Project | Custom object | Two way | Fieldwire project id, a GUID held on the HubSpot project record | A won deal creates the project, and Fieldwire owns its status from then on. |
| Project user | Contact | Into HubSpot | Email, with the Fieldwire user id as the tie breaker | The client's superintendents and project managers become known contacts. |
| Task | Custom object | Into HubSpot | Fieldwire project id, as counts by status rather than one record per task | Open punch items per project tell an account team when closeout is near. |
| Form | Engagement | Into HubSpot | Fieldwire form id, logged once as a note on the project record | A submitted inspection or daily report becomes one dated note with a link. |
Architecture
The backbone is polling on a watermark, because Fieldwire built its pagination around one. List calls return an X-Last-Synced-At header, and the next call passes that value back as last_synced_at, so a service that stores it per project and record type resumes exactly where it stopped. Pages hold up to 1,000 items, set with the Fieldwire-Per-Page header, and updated_at filters narrow a backfill.
Authentication runs in two steps. A long-lived API token from the account page is exchanged at one account endpoint for a short-lived access token, whose lifetime Fieldwire can change without notice, so the service renews on a 401 rather than on a timer. Project data is regional: projects live in the US, the EU or Canada, each with its own base URL, while account data sits on a single global host. The service stores each project’s region beside its id and pins a Fieldwire-Version date on every call, since an unpinned call takes the latest version.
The write the other way is short. When a deal closes, a HubSpot workflow calls the service, which creates the project and stores the returned id on the HubSpot project record.
What the API allows
- API style
- REST
- Authentication
- API key
- Webhooks
- Partial
- Changed-since filter
- Yes
- Sandbox
- Unknown
- Rate limit
- 3,000 requests per 5 minutes across every endpoint, plus per-minute and per-hour limits on specific endpoints, reported in response headers
Developer documentation developers.fieldwire.com
Three ways to connect
Two questions decide the route. The first is whether your account has API access at all: Fieldwire provides it on Enterprise-level contracts, or as an addition to Pro, Business and Business Plus arranged through its sales team, and without it no route exists. The second is whether anything has to flow back. Creating a project when a deal closes is one call, and an iPaaS with generic HTTP steps can make it. Bringing task counts, forms and contacts back to HubSpot needs a stored cursor per project and per region, and that is a service’s job rather than a per-task flow’s. Nothing in the HubSpot App Marketplace changes that choice, because nothing there is built for Fieldwire.
-
Custom API integration
RecommendedFieldwire's REST API reads projects, tasks, forms and project users with updated-since filters and a sync cursor, so a keyed service can create the project from a won deal and bring status back without copying the field record.
-
iPaaS
PossibleAn iPaaS with generic HTTP steps can create a Fieldwire project when a deal closes, since the API is plain REST. Fieldwire's integration directory lists no iPaaS connector, so every step, the token exchange included, is built by hand and nothing keeps a cursor between runs.
-
Marketplace app
AvoidThere is nothing to install. The HubSpot App Marketplace lists no Fieldwire app, and Fieldwire's own integration directory lists no HubSpot connector.
What breaks and how we prevent it
Projects split across three regions
A service written against the US host finds nothing for a project stored in the EU or Canada. We read each project’s region once, store it beside the id, and route every call to that region’s base URL. The webhook documentation lists only US and EU hosts, so we plan Canadian projects on polling alone.
Updates that skip the event stream
Fieldwire documents its webhooks as a feature still in development. Task events exclude changes to custom task attributes, and project users raise no events at all. We treat an event as a reason to poll sooner and let the cursor catch everything else.
Categories named teams in the API
What the interface calls a category, the API calls a team, and tasks carry only a team_id. A mapping built from the screen finds no category field. We load the teams list per project and translate ids before anything reaches HubSpot.
Access tokens expiring mid-backfill
A long backfill can outlive its access token. The service exchanges the API token again on the first 401 and retries that call once; a second 401 stops the run and raises an alert instead of looping.
Our approach
- Scope. We confirm API and developer access on your Fieldwire account, list the regions your projects sit in, and agree which task statuses and forms an account team needs to see.
- Architect. Deal to project in one direction, status, contacts and notes in the other, a cursor per project and record type, and a pinned version date.
- Build. Fieldwire publishes no sandbox, so the service is written against a test project we agree with you in your own account, which the API itself can create, and a HubSpot sandbox behind a portal allowlist that fails closed.
- Validate. We backfill a finished project, compare task counts and form notes with Fieldwire’s own views, and check that one won deal creates exactly one project.
- Operate. We watch cursor age per project, move the version date deliberately, and widen webhook use as Fieldwire takes the feature out of development.
Common questions
Is there a Fieldwire app in the HubSpot App Marketplace?
No. The HubSpot App Marketplace lists no app named for Fieldwire as of September 2026, only apps that match the word loosely, and Fieldwire's own integration directory lists no HubSpot connector either. Connecting the two means a custom API integration on Fieldwire's REST API, or an iPaaS calling that API through generic HTTP steps.
Which Fieldwire plans include API access?
Fieldwire offers its API to customers on an Enterprise-level contract, or on Pro, Business and Business Plus where API access has been added through its sales team. Developer access is then requested from the API Settings section of the Account tab, and an account can hold up to ten API tokens once it is approved.
Does Fieldwire send webhooks when a task changes?
Yes, as a feature Fieldwire documents as still in development. Webhook subscriptions are created through the API, and tasks raise created, updated and deleted events, but updates to custom task attributes are excluded and project users raise no events. We use an event as a reason to poll sooner rather than as the record of truth.
How fresh is Fieldwire data once it reaches HubSpot?
As fresh as the polling schedule agreed in discovery, such as every fifteen minutes. Each run asks Fieldwire for what changed since the last cursor it stored, so a short interval costs little. Webhook events, where the project's region supports them, can start a run early for the records that raise them.
What are the Fieldwire API rate limits?
Every request counts against 3,000 requests per five minutes, and specific endpoints add their own per-minute and per-hour limits. Fieldwire reports those in response headers and asks integrators not to hard-code the values. Exceeding a limit returns a 429, with a retry-after header on the endpoint limits.
Why do Fieldwire task categories look different through the API?
What the Fieldwire interface calls a category, the API calls a team. Tasks carry a team_id rather than a category name, so a mapping built by looking at the screen finds nothing. The service reads each project's teams list and translates the ids before anything reaches HubSpot.
How long does a Fieldwire and HubSpot integration take?
Budget 10 to 20 hours of discovery and 70 to 150 hours of build for projects, project users, task counts and forms, with a stored cursor, replay and reconciliation. Adding API access to your Fieldwire plan is a purchase through Fieldwire's sales team, and it has to land before the build can start.
Also in Construction
Related reading
Partnerships and accreditations
HubSpot accreditations
Industry specializations
Partnerships
Trust and compliance
We design integrations to support the security and privacy rules your business works under, and we build them on independently audited platforms.
-
SOC 2
We build to support SOC 2 security controls, on platforms that hold SOC 2 reports of their own.
-
ISO/IEC 27001:2022
We build to support your information security program under ISO/IEC 27001:2022.
-
HIPAA
We scope BAA needs in discovery, then design builds around them for covered entities and their business associates.
-
GDPR
We scope data-processing needs in discovery and design builds to support your GDPR duties.
About the GDPR at the European Commission (opens in a new tab)
-
PIPEDA
We design builds to support your accountability for personal information as it moves between systems.
-
CASL
We can build consent capture and sync that support your CASL consent records.
Our builds run on
How we build
- Sandbox first. We build and test in a sandbox before anything reaches production.
- Fail-closed allowlists. An integration runs only against the HubSpot accounts it is approved for.
- Least-privilege access. Each integration gets only the API scopes it needs.
- Secrets in a vault. Keys and tokens live in a secrets vault, never in plain text.
- Sensitive data scoped early. Discovery covers sensitive data, access controls and any BAA or data-processing needs.
- A compliance package for regulated industries: audit logging, field-level encryption and sensitive-data handling.
Scope a Fieldwire integration
Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.
Thanks, we will reply within one business day
Prash or Sean reads every one of these and comes back with a scope, or with the one question we need answered first.
Sources
- Getting Started developers.fieldwire.com
- Authentication developers.fieldwire.com
- Rate Limiting developers.fieldwire.com
- Pagination developers.fieldwire.com
- Filtering developers.fieldwire.com
- Webhooks developers.fieldwire.com
- Webhook Event Types developers.fieldwire.com
- Frequently Asked Questions developers.fieldwire.com
- Introduction to the Fieldwire API – Knowledge Base help.fieldwire.com
- Fieldwire Integrations | Fieldwire by Hilti fieldwire.com
- Meet Fieldwire - Building the Future of Construction | Fieldwire by Hilti fieldwire.com