How to import WooCommerce data into HubSpot
WooCommerce exports use snake_case column names like billing_phone and billing_company. This template maps all 10 billing fields to HubSpot contact properties. WooCommerce also exports a separate shipping address block plus order_count and total_spent columns 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 WooCommerce 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 | ||
| billing_phone | Phone Numberphone TransformStandardized to international format (+1, +44, etc.) | |
| billing_company | Company Namecompany | |
| billing_address_1 | Street Addressaddress | |
| billing_city | Citycity | |
| billing_state | State/Regionstate | |
| billing_postcode | Postal Codezip | |
| billing_country | Country/Regioncountry |
Columns we don't use
Your WooCommerce export includes 7 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in HubSpot.
- shipping_address_1, shipping_city, shipping_state, shipping_postcode, shipping_country
WooCommerce exports a full shipping address block alongside the billing block. HubSpot's address, city, state, zip, and country properties already hold the billing address from this template.
If you need it. If shipping is the more useful address, swap the mapping after upload: send shipping_address_1 to address, shipping_city to city, and so on. To keep both, create custom address properties in HubSpot (e.g. Shipping Address, Shipping City) and re-run this template.
- order_count
WooCommerce records how many orders each customer has placed. HubSpot doesn't have a built-in order-count property.
If you need it. Create a custom number property in HubSpot called Order Count, then re-run this template to map it.
- total_spent
WooCommerce records lifetime spend per customer. HubSpot doesn't have a built-in total-spend property for ecommerce.
If you need it. Create a custom number property in HubSpot called Total Spent, then re-run this template to map it.
Formatting and cleanup
WooCommerce 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.Renames underscore-style billing columns (e.g. 'billing_phone', 'billing_city') to HubSpot property names
- 4.Uses billing address as the primary address (see 'Columns we don't use' for the shipping address swap pattern)
- 5.Maps billing_postcode to HubSpot's zip property, preserving leading zeros
Or skip the manual work
Operelio runs this cleanup and mapping for you. Upload your WooCommerce export and download a clean, import-ready file for HubSpot.
WooCommerce to HubSpot FAQ
How do I export customers from WooCommerce?
In your WordPress admin, go to WooCommerce > Customers, then click the Download button at the top-right of the page to export to CSV. You can also use WooCommerce > Reports > Customers for the legacy export view.
Why does this template use billing address instead of shipping?
Billing address is more reliable for CRM purposes since it's always required at checkout. Shipping address is often blank for digital products or when customers select in-store pickup. See 'Columns we don't use' below if shipping is more useful for your store.
Why do WooCommerce column names use underscores?
WooCommerce exports use names like 'billing_phone' and 'billing_city'. This template renames them all to match HubSpot property names.
What about WooCommerce order data?
This template maps customer contact fields and the billing address. Order count and total spent appear in the export but don't have default HubSpot properties; see 'Columns we don't use' below.
Can I include custom checkout fields?
Custom fields added to your WooCommerce checkout appear in the export but need manual mapping in Operelio. This template covers the default billing fields only.