How to import Shopify data into Salesforce Leads
Move your Shopify customers into Salesforce. This template maps name, email, phone, company, and full address to Salesforce lead properties. Note, Total Spent and Total Orders (paired on one line), Tags, and Accepts Email Marketing are composed into Salesforce's Description field as a labeled multi-line block, so per-customer notes, lifetime spend, segment tags, and the opt-in flag travel with the lead instead of being dropped. Two things to know before you start: Salesforce requires LastName and Company on every lead, and Shopify customers often have blanks in both columns. The Before you start section below explains how to handle both.
Field-by-field mapping
This is the complete column mapping from Shopify to Salesforce Leads. The left column is the header in your CSV export. The right column is the Salesforce Leads field it should map to.
Before you start
This template's destination has 2 required fields that need attention before upload. You can still use this template. The steps below tell you what to add and where.
- Last NameLastName
Salesforce requires LastName on every lead. Shopify exports the column, but customers who checked out with only an email leave Last Name blank, and Salesforce rejects those rows.
What to do. Before upload, fill any blank Last Name cells with a placeholder like 'Unknown' so every row passes Salesforce's import validation.
- Company
Salesforce requires Company on every lead. Most direct-to-consumer Shopify customers don't fill in a company at checkout, leaving the column blank.
What to do. Before upload, fill blank Company cells with a placeholder like 'Individual'. Or set a default Company in Salesforce after import using bulk-edit on the new leads.
| First Name | First NameFirstName | |
| Last Name | Last Name*LastName | |
| Email TransformLowercased and trimmed | ||
| Phone | Phone TransformStandardized to international format (+1, +44, etc.) | |
| Company | Company* | |
| Address1 | Street | |
| City | City | |
| Province | State/ProvinceState | |
| Zip | Zip/Postal CodePostalCode | |
| Country | Country | |
| Description Four slots compose into Salesforce's Description field as a labeled multi-line block. Slot 1 is the Note free text. Slot 2 pairs Total Spent and Total Orders on one line as the e-commerce signal ('- Total Spent: <amount> | Total Orders: <count>'). Slot 3 is Tags (Shopify segments). Slot 4 is Accepts Email Marketing (the opt-in flag). Each slot renders as '- column: value' on its own line, or the paired form for slot 2. Empty slots are skipped, so a customer with only one of these populated still lands with just that single line. Remove the row in the column mapper if you don't want it. TransformComposed into a multi-line block |
Required by Salesforce Leads.
Formatting and cleanup
Shopify exports rarely match the format Salesforce Leads expects. Fix these before you import.
- 1.Lowercases and trims email addresses
- 2.Standardizes phone numbers to international format (+1, +44, etc.)
- 3.Maps Shopify's Province field to Salesforce's State field
- 4.Composes Note, Total Spent and Total Orders (paired), Tags, and Accepts Email Marketing into Salesforce's Description field as a labeled multi-line block
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 Salesforce Leads.
Shopify to Salesforce Leads FAQ
How do I export customers from Shopify?
Go to Customers in your Shopify admin, click Export, choose 'All customers', and select CSV format.
Where do Total Spent, Total Orders, Tags, Note, and Accepts Email Marketing end up?
All five are composed into Salesforce's Description field as a labeled multi-line block. Total Spent and Total Orders share one line as the e-commerce signal ('Total Spent: <amount> | Total Orders: <count>'). Note, Tags, and Accepts Email Marketing each get their own line. Empty slots are skipped, so a customer with only Note still lands with just that single line in Description. If you want Total Spent or Total Orders as numeric properties for segmentation, create custom Lead fields and remap them in the column mapper.
What if Company is blank for some customers?
Salesforce requires Company on every lead. See the Before you start section above for the workaround.
Should I still filter out unsubscribed customers?
Yes. Accepts Email Marketing lands in Description as a flag, but Salesforce manages opt-out through the HasOptedOutOfEmail field. Filter out rows where Accepts Email Marketing is 'no' before upload, or set HasOptedOutOfEmail in Salesforce after import for the rows you want to suppress.
Will this create duplicate leads?
Salesforce checks for duplicates based on your org's matching rules. Review your duplicate settings before importing to control how matches are handled.