Connect Shopify to HubSpot
Give HubSpot the full picture of every Shopify customer: contacts with real order history, orders as a custom object with line items and revenue, and abandoned checkouts that can trigger a workflow. Marketing consent from checkout is carried, never assumed. Every sync is an ordered run you can inspect.
Why teams connect Shopify and HubSpot
Shopify has the orders. HubSpot runs the marketing and, for many brands, a B2B or wholesale sales motion. Without a real link, HubSpot contacts have no order history, "high-value customer" is a guess, and the sales team quoting a wholesale deal cannot see the buyer's retail spend.
- Shopify customers become HubSpot contacts with lifetime spend, order count, first and last order date, and average order value as properties
- Orders land as a custom object associated to the contact, each with line items, discounts, and net revenue, so reports and lists work on real data
- An abandoned checkout creates or updates a contact and can enroll it in a recovery workflow, with the cart contents as properties
- Checkout marketing consent maps to the HubSpot subscription, so an opted-out buyer is never emailed
Worked example
The order-to-CRM flow most teams turn on first.
A paid Shopify order updates the HubSpot contact and creates an order object
Triggered by Shopify's orders/paid webhook pointed at a Neblex endpoint, idempotent on the Shopify order ID.
- Trigger: Shopify
orders/paidwebhook with the customer, line items, totals, discounts, andcustomer.email_marketing_consent. - Upsert contact: HubSpot
Create or update contactkeyed on lowercased email, setting name, and mapping the consent state to the marketing subscription (never a silent opt-in). - Idempotency: look for a HubSpot
Shopify Ordercustom object record with this order ID. If found, update it; otherwise create it. - Order object: write the order object with order number, processed date, gross and net totals, discount, currency, and financial status, associated to the contact.
- Line items: write each line as a line-item record or a JSON property, with SKU, quantity, and price.
- Recompute properties: update the contact's
total_spent,order_count,aov,first_order_date, andlast_order_datefrom all order objects, and set acustomer_tierfrom a threshold.
Field mapping
The starting map for the Shopify order and customer to HubSpot.
| Shopify | HubSpot | Notes |
|---|---|---|
order.id | shopify_order.order_id (unique property) | Idempotency key for the order object. Checked before create. |
customer.email (lowercased) | contact.email | Match key for the contact. Never overwrites an existing HubSpot email. |
customer.email_marketing_consent.state | contact marketing subscription | Consent gotcha: subscribed maps to opted in; anything else leaves the contact non-marketing. An order alone never opts a contact in. |
order.current_total_price | shopify_order.net_total (number) | Type gotcha: Shopify sends a decimal string. Parse to a HubSpot number property, carry order.currency separately. |
order.name | shopify_order.order_name | The "#1001" label for readable reporting. |
| sum of order objects | contact.total_spent, contact.order_count | Recomputed on every order so lists and workflows act on current values. |
order.tags | shopify_order.tags | Override: a specific tag (for example wholesale) can be promoted to a contact property that routes the record to a sales pipeline. |
checkout.abandoned_checkout_url | contact.abandoned_cart_url + workflow | Only when the checkout has an email and passed the recovery delay. |
What syncs, each direction
- Customers and spend. Customers become contacts with lifetime spend, order count, AOV, and tier as properties. (Shopify to HubSpot)
- Orders. Each order lands as a custom object with line items, discounts, net revenue, and financial status, associated to the contact. (Shopify to HubSpot)
- Abandoned checkouts. An abandoned checkout with an email creates or updates a contact and can enroll it in a recovery workflow. (Shopify to HubSpot)
- Segments back (optional). A HubSpot list membership such as "VIP" or "win-back" can write a Shopify customer tag for use in Shopify marketing and discounts. (HubSpot to Shopify)
Governance and audit
The same controls apply to this sync as to every other Neblex workload.
- Ordered run log. Every sync records the Shopify object, the contact and order object it resolved to, and the properties written. Replay without re-enrolling workflows.
- Consent guard. The checkout consent state is read on every contact write and cannot be bypassed by a mapping change. An order is never treated as consent.
- Scoped access. Shopify uses a custom app token scoped to read orders, customers, and checkouts. HubSpot uses a private app scoped to contacts, the custom object, and workflow enrollment.
- Environments. Build against a Shopify development store and a HubSpot test account, then promote the same flow to production.
Frequently asked questions
How is this different from HubSpot's native Shopify integration?
HubSpot's built-in Shopify app is a solid starting point and covers contacts, deals, and products for a straightforward store. Neblex fits when you want orders as a custom object at the grain you choose, computed customer properties on your rules, abandoned-checkout logic, consent handled explicitly, and the same run log as your other integrations.
Orders as deals or as a custom object?
Usually a custom object, because ecommerce orders are not a sales pipeline. A custom object keeps deal reporting clean and still lets you build lists and workflows on order data. A B2B or wholesale motion can still create a deal.
Does it respect the checkout marketing consent?
Yes. Only an explicit opt-in at checkout sets the HubSpot marketing subscription. Placing an order does not opt a contact in.
Can it backfill order history?
Yes, with a Shopify bulk operation at setup, so existing contacts get their full spend and order history, not just orders from the day the integration went live.
What about refunds?
Order-update and refund webhooks adjust the order object's net revenue and financial status, and the contact's lifetime spend is recomputed, so the numbers stay honest.
Can HubSpot segments drive Shopify?
Yes. A list membership can write a Shopify customer tag, which Shopify marketing, automations, and discount rules can then use.
Connectors on this page
Shopify
Finance & Commerce
- Operations
- 367
- Typed outputs
- 100%
- Change triggers
- Poll or inbound webhook
- Authentication
- None
HubSpot
CRM
- Operations
- 336
- Typed outputs
- 81.5%
- Change triggers
- 48 (poll)
- Authentication
- Bearer
Bring one real integration
We will build it with you against your own systems, with the run log open.