Integration

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.

Mostly Shopify to HubSpot
Direction
Shopify webhook to a Neblex endpoint
Latency
orders/create, customers/update, checkouts/create
Common trigger
Template, then map to a custom object
Setup

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.

  1. 1Trigger: Shopify orders/paid webhook with the customer, line items, totals, discounts, and customer.email_marketing_consent.
  2. 2Upsert contact: HubSpot Create or update contact keyed on lowercased email, setting name, and mapping the consent state to the marketing subscription (never a silent opt-in).
  3. 3Idempotency: look for a HubSpot Shopify Order custom object record with this order ID. If found, update it; otherwise create it.
  4. 4Order object: write the order object with order number, processed date, gross and net totals, discount, currency, and financial status, associated to the contact.
  5. 5Line items: write each line as a line-item record or a JSON property, with SKU, quantity, and price.
  6. 6Recompute properties: update the contact's total_spent, order_count, aov, first_order_date, and last_order_date from all order objects, and set a customer_tier from a threshold.

Field mapping

The starting map for the Shopify order and customer to HubSpot.

ShopifyHubSpotNotes
order.idshopify_order.order_id (unique property)Idempotency key for the order object. Checked before create.
customer.email (lowercased)contact.emailMatch key for the contact. Never overwrites an existing HubSpot email.
customer.email_marketing_consent.statecontact marketing subscriptionConsent gotcha: subscribed maps to opted in; anything else leaves the contact non-marketing. An order alone never opts a contact in.
order.current_total_priceshopify_order.net_total (number)Type gotcha: Shopify sends a decimal string. Parse to a HubSpot number property, carry order.currency separately.
order.nameshopify_order.order_nameThe "#1001" label for readable reporting.
sum of order objectscontact.total_spent, contact.order_countRecomputed on every order so lists and workflows act on current values.
order.tagsshopify_order.tagsOverride: a specific tag (for example wholesale) can be promoted to a contact property that routes the record to a sales pipeline.
checkout.abandoned_checkout_urlcontact.abandoned_cart_url + workflowOnly 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
See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.