Help centre / Integrations and tracking

HubSpot Shopify integration not syncing contacts, orders or products: how to fix it

Get the HubSpot Shopify sync working again: failing and excluded records, email matching, mappings, what isn't synced and Flow errors.

By Abdur Rahim Mostafa, HubSpot consultant · Updated 26 October 2026 · 5 min read

When the HubSpot Shopify integration stops syncing, the records are usually sitting in the sync's Failing or Excluded list with a reason attached. HubSpot's own app for this is called Shopify Data Sync, and it matches contacts by email. Customers without an email, filters set during setup and mappings that no longer fit are where I'd look first. The other common surprise is expecting data the app doesn't sync at all, such as draft orders.

The first thing to check is the sync health page. In HubSpot, go to Settings, then Integrations, then Connected Apps, open Shopify and click the CRM syncs tab. Each object shows how many records are in sync, failing or excluded, and clicking a number lists the records behind it.

Why the Shopify sync isn't working

Records are failing or excluded

Failing records hit an error. Under Sync Activity, the arrow next to an error shows why it failed, and the Troubleshoot option opens Breeze Assistant with suggested steps. Excluded records either don't match the filters in your sync settings or don't have a unique identifier, which can happen when a matching key is defined. HubSpot's data sync guide explains each status.

To check, click the Failing and Excluded numbers for each object in turn and read the reasons on a few records.

Customers without an email, or duplicates

Shopify Data Sync matches contacts on email address. The setup's Limit screen has an option to sync only contacts with an email address, which reduces duplicates but leaves phone-only customers out. A Shopify order whose customer was created without an email syncs to HubSpot as an order with no contact. Order and cart sync don't find or merge duplicates, so orders or carts you imported before connecting may sync again as new records. For cleaning up contacts, see duplicate contacts in HubSpot.

You expect data the app doesn't sync

According to HubSpot's Shopify Data Sync article, contacts, products and companies sync both ways, and orders and abandoned checkouts sync one way into HubSpot as order and cart records. Company sync only works on Shopify Plus. Product variants can't sync, Shopify metafields aren't supported, and synced orders can't be edited in HubSpot. Draft orders and deals aren't on the list. If your reps quote with draft orders, HubSpot won't see those quotes through this app.

Mappings or dropdown options are out of date

As of October 2026, custom field mappings need at least a Data Hub Starter subscription. Dropdown options are copied when a sync is first created, and HubSpot doesn't add new options automatically, so a new Shopify value can fail to land until you save and restart the sync. See HubSpot's guide to data sync field mappings. Cart sync also lost and gained fields on April 1, 2025, and custom cart mappings made before that date have to be set up again by hand.

The sync is off, or still on its first pass

Someone may have turned the sync off from the CRM syncs tab. In Shopify, check Settings, then Apps, to confirm the HubSpot app is still installed. HubSpot checks for changes every five minutes and syncs a record within 10 minutes of a change, but only once the initial sync is done, and that can take days for very large data sets.

A Shopify Flow automation is failing

Some stores, including two of my clients below, use Shopify Flow to send data to HubSpot, either alongside the app or in place of a connector. In Flow, open Recent runs and filter by Errors. The Results column lists errors by step, and runs are kept for 14 days. The Send HTTP request action handles 4XX and 5XX responses the way you configured it, and Retry keeps trying for up to 24 hours. As of October 2026, that action needs the Shopify Plus, Advanced or Grow plan.

In HubSpot, the private app's Logs tab shows its API calls from the last 30 days. If the user who created the private app was removed, some calls fail with USER_DOES_NOT_HAVE_PERMISSIONS until the token is rotated or the user is added back. If someone rotated the token and expired the old one, every flow still using it fails.

How to get Shopify syncing again

  1. Open Connected Apps, then Shopify, then CRM syncs, and note the failing and excluded counts for each object.
  2. Read the Sync Activity error on the failing records. Fix the record in Shopify or HubSpot, or fix the mapping it points to.
  3. Compare the excluded records with your sync filters, and decide whether the email-only option suits your store.
  4. If you added dropdown values in Shopify, save and restart the sync so the options update.
  5. On the Record view tab, select the fixed records and choose Rerun sync.
  6. Wait about 10 minutes and check one fixed record in HubSpot.
  7. If you use Shopify Flow, fix the failing step, then retry the failed runs. The workflow must be on and its trigger unchanged.
  8. If what you need isn't synced at all, plan a separate route. My guide to Shopify draft orders as HubSpot deals walks through one.

How to stop it happening again

Look at the CRM syncs tab once a week and clear failing records while the list is short. Agree how to handle customers without an email before you connect, and don't import Shopify orders by hand alongside the sync. If you use Flow, keep HubSpot tokens in Flow's secrets, create the private app under an admin account that won't be removed, and update the flows on the day you rotate a token. Installing the integration also adds HubSpot's tracking code to your store, so see the tracking code guide if page views look off afterwards.

From client work

When I started with BelBonita, the native Shopify connector was disconnected and two Shopify flows were failing. I repaired the two flows and built six Shopify Flow automations for orders, customers, abandoned checkouts, cancellations and refunds.

At Sauna Heater Supply, more than 80% of orders started as rep-built draft orders that HubSpot couldn't see. Shopify Flow now creates a deal for every draft order, syncs the amount every 10 minutes and closes the right deal when the order is paid. I also rebuilt the customer sync in Shopify Flow to replace a third-party connector, with a daily catch-up job for missed quotes.

If the sync keeps failing or you need quotes tracked as deals, I can set up the Shopify and HubSpot connection for you.

Questions

How long does the HubSpot Shopify sync take?

After the initial sync, records sync within 10 minutes of a change. The first sync of a very large store can take much longer.

Why are some Shopify orders in HubSpot without a contact?

The customer on those orders was created without an email address, and Data Sync matches contacts by email.

Does Shopify Data Sync bring over draft orders?

Draft orders aren't in the list of objects the app syncs. Shopify Flow has a Draft order created trigger, which is one way to send them to HubSpot.

Did this fix it?

Written by Abdur Rahim Mostafa. I'm an independent HubSpot consultant with 12 years of HubSpot work. I fix and build HubSpot portals, integrations and automation for teams in the US, UK and Australia. See my case studies or find me on LinkedIn.

Can't find your fix?

Book a free 30-minute call and show me what's happening in your portal. If it needs work, you get a written scope and one fixed price.

Book a free 30-minute call