A native HubSpot and WooCommerce integration exists — you can connect your store through the HubSpot App Marketplace in minutes. But real use quickly reveals limitations that are critical for a growing business: custom order fields are not transmitted, subscriptions through WooCommerce Subscriptions do not sync, multiple stores are not supported, and every WordPress update can break the connector. An honest breakdown follows.
What the native integration can do
The official HubSpot + WooCommerce connector covers basic e-commerce scenarios:
- Syncing WooCommerce orders → Deals in HubSpot
- Creating and updating contacts on new orders
- E-commerce analytics in HubSpot: LTV, AOV, repeat purchase rate
- Abandoned cart tracking — trigger for recovery campaigns
- Basic Workflows based on WooCommerce events: new order, payment status, cancellation
For a small store with standard products and a simple data structure, this is sufficient. But as soon as the business uses WooCommerce customization — systemic problems begin.
Where the native integration breaks
Custom fields are not transmitted.
WooCommerce makes extensive use of custom order and product metadata: custom product attributes, checkout fields (added via plugins), custom order statuses. The native integration only transmits standard fields — anything outside the base WooCommerce schema does not reach HubSpot.
Order schema does not match HubSpot Deals structure.
WooCommerce product variations (color, size, material) become generic line items in HubSpot without variation attributes. A manager sees “T-shirt — 1 pc. — €29” instead of “T-shirt, size L, color blue — 1 pc. — €29.” For stores with variable products, this makes CRM data practically useless.
Subscriptions via WooCommerce Subscriptions do not sync.
WooCommerce Subscriptions — the most popular subscription model plugin — runs on top of standard orders but creates its own objects and events. The native HubSpot integration does not see them: subscription status, renewal date, failed payment, and churn never reach the CRM. Retention automation without this data is impossible.
Duplicate contacts on data mismatches.
If a customer placed an order as a guest, then registered, and then bought again — the native integration creates multiple contacts. With a base of several thousand customers, duplicates accumulate quickly and distort all analytics.
No multi-store sync.
Companies with multiple WooCommerce stores — different brands, regions, or product lines — cannot get a unified view in one HubSpot account through the native connector.
Instability on WordPress and WooCommerce updates.
WooCommerce is actively developed: core updates, changes to the Legacy REST API (which was removed from the core in 2025 and now requires a separate plugin), plugin updates — all of this can break the native connector without warning. Teams discover this only after data stops syncing.
Sync delay.
The native integration does not work in real time — data is transmitted with a delay. For Workflows with time-sensitive triggers (e.g., abandoned cart after 1 hour) this is critical.
What a custom integration from Exceltic.dev solves
- Custom field transmission — any order and product metadata from WooCommerce is mapped to custom properties of HubSpot contacts, companies, and deals
- Complete product variation data — variation attributes (color, size, material) are pushed to separate deal line item fields, not lost in a generic description
- WooCommerce Subscriptions sync — subscription status, renewal date, billing cycle, failed payment, and churn are pushed to custom contact properties and trigger the corresponding HubSpot Workflows
- Contact deduplication — the system checks for an existing contact by email, phone, and custom identifiers before creating a new one
- Multi-store architecture — multiple WooCommerce stores sync into one HubSpot with order source tagging
- Real-time sync — the integration is built on WooCommerce Webhooks; data is pushed to HubSpot at the moment of the event with no delay
- Resilience to updates — the integration uses the WooCommerce REST API directly, does not depend on connector plugin state, and remains functional through WooCommerce updates
- Custom order statuses — non-standard statuses (e.g., “Awaiting production,” “Ready to ship”) are pushed to HubSpot and update the deal stage
How the integration works — technical process
Connection architecture
The integration is built on the WooCommerce Webhooks → Exceltic middleware → HubSpot CRM API v3 stack. WooCommerce sends events in real time when orders, customers, and products are created or updated. Verification of incoming webhook events is performed via HMAC-SHA256 signature in the X-WC-Webhook-Signature header. WooCommerce REST API authentication uses Consumer Key + Consumer Secret from WordPress settings. HubSpot authentication uses a Private App Token.
Step-by-step scenario: new order with a variable product
- Customer places an order — WooCommerce sends the webhook
woocommerce_order_created - Middleware verifies the HMAC signature and extracts base data:
billing_email,line_items,total,meta_data - Variation attributes are extracted from
line_items:variation_id,attributes(color, size) - Custom checkout and order fields are extracted from
meta_data - System looks up an existing contact in HubSpot:
GET /crm/v3/objects/contacts?email={email} - If contact found — properties updated: LTV, order count, last purchase date, custom fields
- If not found — new contact created with complete data set
- A Deal is created with the order amount and correct line items including variation attributes:
POST /crm/v3/objects/deals - Deal is associated with the contact via the Association API
- Custom order fields are written to Deal properties
- When the order status changes — webhook
woocommerce_order_status_changedupdates the HubSpot Deal stage
Scenario: WooCommerce Subscriptions sync
WooCommerce Subscriptions creates its own shop_subscription objects with separate statuses and hooks. Middleware subscribes to plugin-specific events:
woocommerce_subscription_status_active→ contact propertySubscription Status = Activewoocommerce_subscription_renewal_payment_complete→Last Renewal Dateupdatedwoocommerce_subscription_payment_failed→ tagPayment Failed+ Workflow trigger for retentionwoocommerce_subscription_status_cancelled→Subscription Status = Churned+ win-back campaign trigger
What happens on error
WooCommerce automatically disables a webhook after 5 consecutive failed deliveries. Middleware uses idempotency keys based on woocommerce_order_id — a repeated delivery does not create a duplicate deal. If the HubSpot API is unavailable, the event is saved to a queue with exponential backoff. After connectivity is restored, all queued events are processed sequentially.
Real-world case
Custom clothing online store, 5 managers, ~150 orders per month, quarterly subscription box.
The store used WooCommerce with variable products (size, color, print) and the WooCommerce Subscriptions plugin for a quarterly clothing box. The native HubSpot integration transmitted orders but lost all variation attributes — managers could not tell what a customer had bought without checking WooCommerce. Subscription data was not transmitted at all — retention campaigns could not be configured.
An additional instability problem emerged: after the WooCommerce 9.0 update the native connector stopped syncing orders for 4 days — the team only noticed when the pipeline emptied.
After the custom integration was connected, all variation attributes are pushed to separate deal fields, subscription statuses sync in real time, and the failed payment retention Workflow triggers automatically within an hour of the event.
Result: complete order composition visibility in HubSpot, retention automation reduced subscription churn by 22%, 0 data losses on WooCommerce updates.
Which businesses benefit most
The custom integration is most relevant for WooCommerce stores with variable products — apparel, footwear, custom goods — where variation attributes are key data for understanding purchase behavior and personalizing communications.
Critical for stores with a subscription model through WooCommerce Subscriptions — without a custom integration, subscription status, renewal, and churn data never reach HubSpot, making retention automation impossible.
Frequently asked questions
Why does the native HubSpot + WooCommerce integration not transmit custom fields?
The native integration maps only standard WooCommerce schema fields to standard HubSpot properties. Custom order metadata (meta_data) and product variation attributes require additional middleware processing — the native connector does not do this.
What happened to the WooCommerce Legacy REST API in 2025?
WooCommerce removed the Legacy REST API from its core starting with version 9.0. It is now only available through the separate woocommerce-legacy-rest-api plugin. Integrations built on the Legacy API require this plugin and may stop working if it is absent. The Exceltic.dev custom integration uses the current WooCommerce REST API v3 and Webhooks.
Does the integration support WooCommerce Subscriptions?
Yes. Middleware subscribes to WooCommerce Subscriptions events directly via WordPress action hooks: activation, pause, cancellation, failed payment, renewal. All events are pushed to custom HubSpot contact properties and can trigger Workflows.
Can multiple WooCommerce stores be connected to one HubSpot?
Yes. Middleware supports multiple stores with different Consumer Key/Secret pairs. Each store is identified by a source tag in contact and deal properties — this provides complete segmentation and separate per-store analytics in a single HubSpot account.
How long does HubSpot + WooCommerce integration development take?
A base integration with custom fields and deduplication — 4–6 business days. The version with WooCommerce Subscriptions, multi-store architecture, and custom statuses — 8–12 business days. Exceltic.dev sets exact timelines after a technical brief.
If the native HubSpot + WooCommerce integration does not cover your scenarios — describe your requirements to the Exceltic.dev team. We will review the architecture and propose a solution tailored to your store’s structure.