How to import Shopify data into HubSpot
Shopify customer exports include purchase data like Total Spent and Total Orders. This template maps the standard contact fields to HubSpot and combines Total Spent and Total Orders into the Notes property as 'Total spent: <amount> | Total orders: <count>', so reps see purchase context anchored to each value. Shopify also exports a Tags column and Accepts Email Marketing flag that don't have a default HubSpot home. The section below explains what to do with each one if you need it.
Field-by-field mapping
This is the complete column mapping from Shopify to HubSpot. The left column is the header in your CSV export. The right column is the HubSpot field it should map to.
| First Name | First Namefirstname | |
| Last Name | Last Namelastname | |
| Emailemail TransformLowercased and trimmed | ||
| Phone | Phone Numberphone TransformStandardized to international format (+1, +44, etc.) | |
| Company | Company Namecompany | |
| Address1 | Street Addressaddress | |
| City | Citycity | |
| Province | State/Regionstate | |
| Zip | Postal Codezip | |
| Country | Country/Regioncountry | |
| Total Spent, Total Orders | Notesnotes Each value is prefixed with its label ('Total spent: <amount>', 'Total orders: <count>') and joined with ' | ', so reps see the source context in HubSpot's Notes property. TransformCombined with ' | ' separator and label prefixes |
Columns we don't use
Your Shopify export includes 3 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in HubSpot.
- Tags
Shopify exports tags as a comma-separated string. HubSpot uses static lists and properties rather than free-form tags.
If you need it. After import, create HubSpot static lists matching your Shopify tags (e.g. VIP, Wholesale) and add contacts in bulk using a saved view.
- Accepts Email Marketing
This column records whether each customer opted in to marketing emails. HubSpot manages opt-in via its own subscription preferences, not a contact property.
If you need it. Filter out rows where Accepts Email Marketing is 'no' before upload so unsubscribed customers don't get marketing communications. Then set subscription preferences in HubSpot for the rest.
- Note
Shopify's Note column is free-text per customer (e.g. shipping preferences, support notes). HubSpot has a Notes property, but a note record attached to the contact is a better home for this kind of context.
If you need it. Create a custom multi-line text property in HubSpot called Customer Note and map this column to it. Or run a follow-up import of HubSpot Notes records so each note becomes a separate engagement on the contact's timeline.
Formatting and cleanup
Shopify exports rarely match the format HubSpot expects. Fix these before you import.
- 1.Lowercases and trims email addresses
- 2.Standardizes phone numbers to international format (+1, +44, etc.)
- 3.Combines Total Spent and Total Orders into the Notes property as 'Total spent: <amount> | Total orders: <count>'
- 4.Maps Shopify's Province field to HubSpot's state property
Or skip the manual work
Operelio runs this cleanup and mapping for you. Upload your Shopify export and download a clean, import-ready file for HubSpot.
Shopify to HubSpot FAQ
How do I export customers from my Shopify store?
Go to Customers in your Shopify admin, click Export, choose 'Current page' or 'All customers', and select CSV format.
What happens to Total Spent and Total Orders?
Both values land in the Notes property as 'Total spent: <amount> | Total orders: <count>' so reps see purchase context anchored to each value. If you want them as numeric properties for segmentation, create custom HubSpot properties called Total Spent and Total Orders and re-run this template.
Does detailed order history come through?
No. This template maps contact fields and purchase summaries only. The customer export doesn't include individual order line items, product names, or transaction details.
What about Shopify customer tags?
Tags don't map to a default HubSpot property. See 'Columns we don't use' below for how to recreate them as HubSpot static lists.
Will this create duplicates if a customer already exists in HubSpot?
HubSpot uses email as the unique identifier. Contacts with matching emails update the existing record. New emails create new contacts.
What does Province map to?
Shopify uses 'Province' where other platforms use 'State'. This template maps Province to HubSpot's state property.