ShopifyShopifyFreshsales ContactsFreshsales Contacts10 fields

How to import Shopify data into Freshsales

Import your Shopify customers into Freshsales. This template maps the 10 standard fields to Freshsales's snake_case contact fields, including the full billing address. Freshsales splits phone into Work and Mobile; Shopify exports a single phone column, so we map it to mobile_number since Shopify phones are typically mobile.

Try it freeNo credit card needed

Field-by-field mapping

This is the complete column mapping from Shopify to Freshsales. The left column is the header in your CSV export. The right column is the Freshsales field it should map to.

Before you start

This template's destination has a required field that needs attention before upload. You can still use this template. The steps below tell you what to add and where.

  • Last Namelast_name

    Freshsales requires Last Name on every contact. Shopify customer exports ship a Last Name column on every row from the checkout form, so this is reliably populated; the caveat is single-name guest checkouts.

    What to do. Scan your CSV for blank Last Name rows before uploading. Fill them by hand from the order context, or remove those rows.

ShopifyShopify columnFreshsales ContactsFreshsales field
First NameFirst Namefirst_name
Last NameLast Name*last_name
EmailEmailemail

TransformLowercased and trimmed

PhoneMobile Numbermobile_number

Shopify customer phones are typically mobile numbers entered at checkout. We map them to Freshsales's mobile_number field by default.

TransformStandardized to international format (+1, +44, etc.)

CompanyCompany Namecompany_name
Address1Addressaddress
CityCitycity
ProvinceStatestate
ZipZip Codezipcode
CountryCountrycountry

Required by Freshsales.

Columns we don't use

Your Shopify export includes 5 columns this template doesn't map. Each one below explains why, plus the workaround if you want the data in Freshsales.

Total Spent

Freshsales doesn't have a default lifetime-value field on contacts.

If you need it. Add a custom currency field on the Freshsales Contact called Total Spent, then re-run this template to map it.

Total Orders

Freshsales doesn't have a default order-count field on contacts.

If you need it. Add a custom number field on the Freshsales Contact called Total Orders, then re-run this template to map it.

Tags

Shopify tags export as a comma-separated string. Freshsales contacts use custom fields or lifecycle stages instead of free-form tags.

If you need it. Add a custom multi-select field on the Freshsales Contact called Tags, or build saved filters in Freshsales after import to segment by Shopify tag values.

Accepts Email Marketing

Freshsales tracks email opt-in through its own subscription status, not from an imported boolean column.

If you need it. Filter rows where Accepts Email Marketing is 'no' before upload to avoid importing opted-out customers.

Note

Shopify's per-customer notes are free text. Freshsales has a Notes feature, but it's attached as separate Note records, not as a contact field value.

If you need it. Add a custom multi-line text field on the Freshsales Contact called Imported Notes, then re-run this template to map Note. Or import the notes separately as Note records in Freshsales after the contacts are in.

Formatting and cleanup

Shopify exports rarely match the format Freshsales expects. Fix these before you import.

  1. 1.Lowercases and trims email addresses
  2. 2.Standardizes phone numbers to international format (+1, +44, etc.)
  3. 3.Renames Shopify columns to Freshsales's snake_case API names
  4. 4.Maps Province to state and Zip to zipcode to match Freshsales's address field names
  5. 5.Maps Phone to Freshsales's mobile_number field

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 Freshsales.

Try it free

Shopify to Freshsales FAQ

How do I export my Shopify customers?

In your Shopify admin, go to Customers, click Export, choose 'All customers', and select CSV format.

Why does Phone go to mobile_number?

Shopify customers enter their phone at checkout, and these are typically mobile numbers. Freshsales splits phone into Work and Mobile, so we default to mobile_number. Remap to work_number after upload if your Shopify phones are consistently office numbers.

What about Shopify tags and purchase data?

Tags, Total Spent, and Total Orders don't have default Freshsales contact fields. See 'Columns we don't use' below for how to add custom fields and map them.

What about unsubscribed Shopify customers?

Filter rows where Accepts Email Marketing is 'no' before upload to avoid importing customers who've opted out of marketing emails.

Will this create duplicate contacts in Freshsales?

Freshsales uses email as the unique identifier on contacts. Customers with matching emails update the existing record. New emails create new contacts.