Skip to content

Shopify tutorials for the person running the store. Orders, discounts, fulfilment, returns.

Build a customer CSV import file from the Shopify template

Shopify's customer CSV template is a blank grid with the right column headers already in place. Filling it in wrong costs an import: one missing column, one wrong value, and the whole file fails or imports half the list. This tutorial fills in five customers in the template layout, with the rules for each column.

Written · Shopify admin, desktop steps · 4 minutes read

The worked example

Columns in the template20
Example customers5
Accept email marketing: yes3
Accept email marketing: no2
Accept SMS marketing: yes2
Sample profiles in an untouched template2

Download the CSV template file: customer-csv-template.csv (1012 bytes, md5 7bc99e57701939ec84a1c8b5d3749753).

A starter file in Shopify's customer CSV shape: the 20 template columns and the five example customers from this tutorial. Open it in a spreadsheet, replace the example rows with your own list, and save it as UTF-8 before importing.

1Download the template

Open Shopify's help page Importing and exporting customer lists and download the customer CSV template from it. The template holds the column headers Shopify expects; keep the first line as headers.

2Fill in one row per customer

Add one row for each customer. Fill in First Name, Last Name, Email, and the address columns as you have them. The template holds one address per customer, in the Default Address columns, so keep one row per customer: a second row with the same email or phone number counts as a duplicate and is skipped on import. Add any further addresses from the customer profile after the import.

3Use yes or no only in the consent and tax fields

In Accepts Email Marketing, Accepts SMS Marketing, Accepts WhatsApp Marketing, and Tax Exempt, enter only yes or no. Any other value, including TRUE or a tick, is not accepted. The worked example has 3 of 5 customers on yes for email marketing.

4Put tags in one column, quoted

List tags in the Tags column as a comma-separated list, wrapped in quotation marks, for example "vip,local-pickup". Tags are not case-sensitive, so VIP and vip are the same tag.

5Leave Total Spent and Total Orders out

The Total Spent and Total Orders columns are not imported with customer details. Leave them blank or delete them; typing values there changes nothing and can mislead whoever reads the file later.

6Save as UTF-8 and check the file opens cleanly

Save the file as UTF-8 from your spreadsheet's Save As or Export command, then open it again to check the rows line up under the right headers. A file saved in another encoding can turn accented names into broken characters on import.

The arithmetic

The worked example has five customers.

FieldYesNo
Accepts email marketing32
Accepts SMS marketing23
Tax exempt05
Total example customers55

3 yes plus 2 no equals 5 customers for email marketing, and 2 yes plus 3 no equals 5 for SMS marketing. None of the five example customers is tax exempt, so that column reads no for all five rows.

Held at the counter

An untouched template adds two strangers. Importing the template without adding your own customers adds Jane Doe and John Doe, the two sample profiles Shopify ships in it. Replace or delete those rows before you import.

A missing Email column fails the import. The Email column must be present, even though individual values in it can be blank. A file built without that column returns an error instead of importing.

Headers are not case-sensitive, values often are. A header of email works, but the yes and no values in the consent columns must be exactly yes or no.

Sources