FrancodesystemsFrancodesystems
Third-party integration · No Holded required

How to connect Shopify with HubSpot

Every Shopify customer flows into HubSpot as a contact with their order history, lifetime value and automatic segmentation. Abandoned carts trigger deals. Marketing finally sees what sales never could: real buying behaviour.

By Juan Cantón Rodríguez · Updated

Typical build time · 6-10 working days

The problem

Two excellent tools living in parallel worlds

You run Shopify for the store and HubSpot for CRM and marketing. HubSpot's official app already brings customers, orders, products and abandoned carts into HubSpot, and for many stores that is enough. Trouble starts when your sales team works in deals and orders land in a different object, when you need variants or metafields the app does not sync, or when refunds have to come off a customer's value.

It also starts when Shopify consent does not translate into valid subscriptions in HubSpot. That is when marketing segments on incomplete data and sales cannot see what each customer actually buys.

Scope

What we automate

A two-way flow that keeps HubSpot in step with what actually happens in Shopify.

  • Shopify customer → HubSpot contact with full order history
  • Shopify order → HubSpot deal in your ecommerce pipeline
  • Abandoned cart → HubSpot task + automated recovery email
  • Lifetime-value segments: VIP, repeat, new and at-risk, with thresholds you set
  • Shopify refund → HubSpot churn-risk property
  • Shopify products ↔ HubSpot deals with detailed line items
  • Multi-store Shopify → distinct HubSpot properties per brand
  • Shopify marketing consent → HubSpot subscription status, and HubSpot unsubscribes flagged back in Shopify
Architecture

How we build it

Shopify webhooks (customers/create, orders/create, checkouts/create) into the HubSpot API v3. We match on the primary email to prevent duplicates, and write custom HubSpot properties for calculated LTV, last order and repeat status. For abandoned carts we use checkouts/create plus timeout logic: a checkout that isn't completed within X hours triggers recovery. Shopify marketing consent becomes HubSpot subscription status, so only customers who opted in get marketing email.

flow.ts
webhook shopify.checkouts/create
→ queue.enqueue(jobId)
→ worker.handle() // idempotent, matched by email
→ hubspot.contacts.upsert() // retries with backoff
→ log.emit({ status: 'ok' })
Who it fits

Typical use cases

Profiles where the Shopify ↔ HubSpot integration usually fits, and what changes with it. Illustrative examples, not specific clients.

Example 01

DTC brand on Shopify and HubSpot Marketing Hub

Before: Marketing lives in HubSpot with no view of real buying behaviour.

After: Segments in HubSpot by lifetime value, frequency and last product bought. Targeted campaigns instead of generic blasts.

Example 02

B2B ecommerce with a high abandoned-cart rate

Before: Abandoned carts with no coordinated recovery strategy between marketing and sales.

After: Automated HubSpot email and, above the cart value you set, a task for a sales rep. Recovery that is measurable and consistent.

Example 03

Brand running HubSpot Service Hub for after-sales

Before: Support tickets open with no context on the customer's orders.

After: Every HubSpot ticket opens with the customer's Shopify order history attached automatically.

Before / After

What changes, exactly

Day-to-day without the integration and with it, side by side.

✕

Without the integration

  • Marketing blind to actual buying behaviour
  • Abandoned carts stranded in the Shopify dashboard
  • Email segmentation built on stale, months-old data
  • Support with no context on the customer's orders
✓

With the integration

  • HubSpot holds the full history of every customer
  • Automated, hands-off abandoned-cart recovery
  • Dynamic segmentation by real lifetime value
  • Support tickets enriched with order context
FAQ

Frequently asked questions

What about duplicate contacts?

We match on the primary email. If the contact already exists in HubSpot, we enrich it instead of creating a duplicate. When there is a conflict (same email, different name), we flag it for review rather than guess.

Does it work with multi-store Shopify?

Yes. Each store can map to its own HubSpot pipeline, or share one and use a 'store' property for segmentation. We decide the right shape during the diagnostic call.

HubSpot Free, Starter, Pro or Enterprise?

HubSpot's official app works on any plan, but custom field mapping needs Data Hub Starter or above, and to send marketing email the contacts must be marketing contacts, which count toward your Marketing Hub tier. Our integration runs on the API and works with every plan; in the discovery call we check what each tier gives you.

How do you handle GDPR and consent?

The email marketing consent Shopify collects is translated into subscription status and legal basis in HubSpot, so only customers who gave it receive marketing email. HubSpot unsubscribes are flagged back in Shopify so those customers stay out of campaigns.

Can it work alongside Klaviyo or Mailchimp?

Yes. HubSpot as the primary CRM with Klaviyo or Mailchimp as the email engine is a common, clean setup. We help you decide which tool owns which job.

How long does it take?

Typically 6 to 10 working days. Multi-store setups or advanced scoring configurations can push it to 12-15.

Connecting a different stack? See how we wire Asana and Slack.

Ready to connect Shopify and HubSpot properly?

30 minutes, no strings attached. You leave with a clear scope, timeline and fixed price, built to own, not rented by the month.