HubSpot + Pimcore integration
Pimcore stores products in classes your own team designed and serves them through Datahub. How they reach HubSpot's product library, and at what effort.
Connects by API , iPaaSScope this integration Book a scoping call Estimate the cost
Pimcore HubSpot - Into HubSpot
Is there an official Pimcore + HubSpot integration?
No. Pimcore has no app in the HubSpot App Marketplace as of September 2026, only fuzzy matches, so there is nothing to install. The route that works is a custom API integration that reads a Pimcore Datahub GraphQL endpoint on a modification date watermark and upserts products into HubSpot's product library, at 40 to 60 build hours for a one-way sync. Webhooks need Pimcore's enterprise Datahub Webhooks bundle, so the scheduled read does the dependable work.
- Recommended route
- Custom API integration
- Build effort
- 40 to 60 hours
- In the HubSpot App Marketplace?
- No listed app
- Typical elapsed time
- 2 to 4 weeks
Marketplace checked September 2026.
Why teams connect Pimcore to HubSpot
Pimcore is where a manufacturer or distributor decides what a product is. Its data model is built for the business rather than bought ready made: classes for products and categories, assets in the same platform, and workflows that decide when a product is ready to publish. The approved photo sits in Pimcore’s own asset management beside the approved description. The result is usually the best product data the company has, and the sales team never sees it.
Sellers quote from HubSpot, so they work from a product library someone keyed in by hand. Names drift from the approved ones, discontinued items stay quotable, and a price list update reaches the portal weeks after it reached the website. Every mismatch surfaces where it costs most, on a quote the customer has already read.
Connecting the two makes Pimcore the only place product data is edited and HubSpot the place it is sold from. The integration is narrower than the PIM project behind it: the fields a seller needs, the prices HubSpot can hold and an image, delivered on a schedule the product team can predict. Nothing about Pimcore’s enrichment workflow has to change for it, and nobody has to learn a second tool.
What syncs
Products are the whole of it on the HubSpot side. Pimcore product objects become HubSpot products, the category path lands as a property on each one, and an image asset supplies the image URL. Prices arrive per currency, because HubSpot keeps a price field for each currency the account has configured, and a currency Pimcore holds but HubSpot does not is left out on purpose.
The key is the Pimcore object id, held in a custom unique property. The SKU travels in hs_sku for sellers to search, but SKUs get corrected, and a correction must update a product rather than create a second one. Because each Pimcore implementation designs its own classes, the field list is settled in discovery rather than assumed.
Everything moves one way. Pimcore is where data is enriched and approved, and HubSpot only reads it. Line items on deals are separate records created when a seller adds the product, so the sync never edits a quote.
| | | Direction | Match key | Notes |
|---|---|---|---|---|
| Product data object | Product | Into HubSpot | Pimcore object id in a custom unique property, with the SKU in hs_sku | The product class is the client's own design, so field names are settled in discovery. |
| Category data object | Product | Into HubSpot | Category object id, written to a property on each product | The category path becomes a product property sellers can filter on. |
| Image asset | Product | Into HubSpot | Asset id, with a thumbnail URL in the product's image URL property | The URL has to load for anyone who opens a quote. |
Architecture
The runtime is a polling watermark sync against a Datahub GraphQL endpoint. Datahub serves each endpoint from a configuration of its own, at a path named for it and secured with an API key, with workspaces deciding which folders it can read. We ask for a configuration that exposes only the product classes and fields the sync needs.
On each run the service queries the product listing with a filter on the modification date after the stored watermark, sorted by that date and paged with first and after. It requests a thumbnail path for each image, upserts HubSpot products in batches keyed on the Pimcore id, and advances the watermark only after the batch commits. A replay endpoint re-reads a window, and a reconciliation step compares Datahub’s totalCount with the products in the portal.
On an enterprise subscription, Datahub Webhooks can post an object event the moment it happens. Pimcore attempts each delivery once, so the event only tells the service to read sooner.
What the API allows
- API style
- GraphQL
- Authentication
- API key
- Webhooks
- Partial
- Changed-since filter
- Yes
- Sandbox
- Yes
- Rate limit
- Not documented
Developer documentation docs.pimcore.com
Three ways to connect
With nothing packaged in the marketplace, the choice is how much of the catalogue moves and how often. A small catalogue that changes a few times a month can live on an iPaaS, and Pimcore names Zapier, n8n and Power Automate among the tools it integrates with. The per-run cost stays small while edits are rare.
A product library that sales quotes from every day is different. It needs every change, a key that survives an SKU correction, prices per currency and a way to replay a bad hour. That is a custom API integration reading Datahub, and it works the same on the Community, Professional and Enterprise editions, because Datahub is a community project rather than an enterprise bundle.
-
Custom API integration
RecommendedA custom API integration reads a Datahub GraphQL endpoint scoped to the product classes, filters on the modification date, and keys every HubSpot product on the Pimcore object id, on any Pimcore edition.
-
iPaaS
PossiblePimcore names Zapier, n8n and Power Automate among the tools it integrates with, which suits a small catalogue that rarely changes. Once the catalogue grows, every product edit becomes a billable run.
-
Marketplace app
AvoidThere is no Pimcore app in the HubSpot App Marketplace, so there is nothing packaged to install and every route is built.
What breaks and how we prevent it
Workspaces that hide products
A Datahub endpoint reads only the folders its workspaces allow, and with no workspace selected it reads nothing. Related objects outside those workspaces come back as null by default rather than as an error. We check the first full read against a count the product team gives us and alert on unexpected nulls.
Webhooks delivered once
Datahub Webhooks attempts each delivery once and removes the queue entry whether or not the subscriber answered, and nothing is sent at all without a running Messenger worker. A missed event is gone. The scheduled read is therefore the source of truth, and events only bring it forward.
Class edits that break the query
Pimcore classes change as the product model matures, and a renamed or removed field makes a GraphQL query fail. Introspection is on by default, so the service compares the endpoint’s schema with its mapping at the start of each run and stops with a readable error instead of writing blanks into good products.
Prices that move after the quote
A line item keeps the price it had when the seller added it. When Pimcore changes a price, open quotes keep the old one, which is usually right and occasionally expensive. We agree in scoping whether open deals get flagged, and the sync never edits line items.
Our approach
- Scope. We walk the class model with the product team and list the fields sales needs, the currencies, the image rules and the edition in use.
- Architect. We define a Datahub configuration for the sync, fix the Pimcore id as the key, and set the watermark, batch size and currency mapping.
- Build. The service is written against a non-production Pimcore and a HubSpot sandbox, with a schema check at the start of every run.
- Validate. We load the full catalogue, reconcile totalCount against HubSpot, and spot check prices and images with the product owner.
- Operate. We watch run history and schema errors, replay windows on request, and review the mapping whenever a class changes.
Common questions
Is there a Pimcore connector for HubSpot?
Not in the HubSpot App Marketplace, where a search for Pimcore returns only apps that mention it in passing. Pimcore's own integration layer is Datahub, and its GraphQL endpoint is what a HubSpot connection reads. Pimcore also names automation tools such as Zapier, n8n and Power Automate among its integrations, which suit small catalogues. For a product library a sales team quotes from, the connection is built.
Which Pimcore edition does a HubSpot integration need?
Any of them can serve the GraphQL endpoint, because Datahub is a Pimcore community project rather than an enterprise bundle. Datahub Webhooks is different: Pimcore documents it as an enterprise bundle that needs an enterprise subscription and Pimcore 2026.1 or later. The Community Edition itself is free under Pimcore's open core licence for non-production use, academic and non-profit bodies, and companies under 5 million euros or dollars in annual revenue.
How does a Pimcore sync find the products that changed?
Through the listing filter Datahub accepts on each class, written in Pimcore's filter syntax, which supports comparison operators such as greater-than. The service asks for products modified after its stored watermark, sorts by the modification date and pages with first and after. Each class keeps its own watermark, so a failed read of categories never holds back products.
How do Pimcore images reach HubSpot products?
As URLs. Datahub can return the path of a thumbnail for an image asset, generated from a named thumbnail configuration, and a HubSpot product holds an image URL. That URL has to load for anyone who opens a quote, so the Pimcore host must serve the thumbnail publicly or through a content delivery network. Private assets need a hosting decision before the build starts.
Does a Pimcore price change update open HubSpot quotes?
No. HubSpot line items are separate records created from a product, and they take the product's values, such as price, when they are created. A price changed in Pimcore reaches the product library and the next quote, not line items already on a deal. If open quotes must follow a price change, that is a separate rule to agree in scoping.
Can HubSpot write product data back into Pimcore?
Datahub endpoints can expose mutations, so it is technically possible, and we advise against it on a first build. Pimcore is where product data is enriched and approved, and a sales tool that edits a description bypasses that work. Where sales feedback matters, we capture it in HubSpot and route it to the product team to apply in Pimcore.
How long does a Pimcore and HubSpot product sync take to build?
Plan on 6 to 12 hours of discovery and 40 to 60 hours of build for a one-way sync of products, categories and images. Discovery goes on the class model, which fields are meant for sales, which currencies HubSpot holds, and how images are served. A two-way design or a deep variant model moves the build into a higher band.
Also in Product information (PIM)
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 Pimcore 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
- Datahub docs.pimcore.com
- GraphQL docs.pimcore.com
- Security Settings docs.pimcore.com
- DataObject Queries docs.pimcore.com
- Filter Listings docs.pimcore.com
- data-hub/src/GraphQL/Helper.php at 2026.2 github.com
- Asset Queries docs.pimcore.com
- Datahub Webhooks docs.pimcore.com
- Installation docs.pimcore.com
- Community Edition pimcore.com
- Product Information Management (PIM) pimcore.com
- Create and manage products knowledge.hubspot.com
- Products API developers.hubspot.com