Implementation9 min read

How to prepare a clean store location CSV for import

Most store locator import problems are in the file, not the tool. The shape of a clean location CSV, the data errors that recur in real exports, how to spot each one before upload, and what to check after.

In short

A clean location file has one location per row, a header row, a name and a complete street address (or verified coordinates) on every row, tags spelled consistently in one column, and a stable ID if the list will later be synced. Save it as a UTF-8 CSV and it will import into almost any store locator.

Most failed imports are data problems that were already in the file: head office's address pasted onto every branch, ZIP codes that lost their leading zero, latitude and longitude swapped, the same store twice from two merged exports, and one tag spelled three ways. Each has a quick check you can run in the spreadsheet before you upload.

This guide is about the file. The clicks for importing it into Handled Locator are in the CSV import documentation.

Northwind Cycles website with its store locator: search, filters, result cards and a map
The Northwind Cycles locator on a phone

The shape of a clean location file

One location per row, column headings in the first row, and nothing else on the sheet. Totals rows, notes, merged heading cells and blank spacer rows all become rows the import has to reject. A retailer or dealer with five branches is five rows, each with its own address, because a visitor searches for the branch near them.

You do not need to rename your headings to match the locator. Handled proposes a match for common spellings, such as Store name, Postcode or Zip, and lets you correct each one before anything is written. The location sheet checklist has a template with every column named the way the importer expects.

ColumnRequiredExampleWatch for
NameEvery rowNorth LoopBlank names from a column called something else in the source system
AddressUnless coordinates are given120 N 1st St, Minneapolis, MN 55401One full column, or separate street, city, region and postcode columns
CountryWhen the list spans countriesUSA lookup without a country can land in the wrong one
Latitude, longitudeOptional44.9852, -93.2700Swapped pairs, text, degree symbols
Phone, email, websiteOptional612-555-0142Head office details copied onto every row
CategoriesOptionalPickup, ServiceOne spelling per tag; these become filters
Location typeOptionalonlineStorefront, service area or online; blank means storefront
Stable IDOnly for a later syncMN-014Never the row number

Save it so nothing is lost on the way

Save as CSV with UTF-8 encoding. Most spreadsheet apps offer it by name, such as CSV UTF-8 in Excel or the CSV download in Google Sheets. A file saved in an older encoding turns accented names into garbled characters, so Café becomes something unreadable on the card, and that is hard to fix afterwards.

Addresses contain commas, so any address cell must be wrapped in quotes in the CSV. Spreadsheet exports do this for you; hand-edited text files often do not. Handled's importer also reads semicolon-, tab- and pipe-separated files, since spreadsheets in some regions export with semicolons. It takes CSV rather than Excel files, so export from Excel before uploading.

Common data errors and how to spot them

These are the faults that recur in real location exports. Almost none of them make an import fail outright. They import cleanly and then show up weeks later as a pin in the wrong place or a store nobody can find, which is why they are worth ten minutes before the upload.

ErrorHow it shows upHow to spot it in the sheet
Head office address on every branchA stack of pins on one buildingSort by address and look for repeats with different names
ZIP codes lost their leading zero01234 arrives as 1234 and the lookup lands elsewhereFilter postcodes by length; US ZIPs should be five digits
Latitude and longitude swappedA shop in the sea or on another continentIn the contiguous US latitude is positive and longitude negative; check the signs
Coordinates of 0, 0A pin off the coast of West Africa in tools that accept it; Handled rejects the pairFilter for zero; it usually means a missing value exported as a number
Same store twice from merged exportsThe count is wrong while the map looks rightSort by name, then address, and compare neighbours
One row per productSeveral pins on one store, each with one productRepeated store names with a product column; see below
Tag spelled several waysTwo filters for one thingMake a list of unique values in the categories column
Unit or suite numbers in odd placesPins on the right street but the wrong buildingSpot-check the pins of your busiest locations after import
PO boxes or mailing addressesA pin at a post officeSearch the address column for PO Box

A ten-minute check before uploading

Run these in the spreadsheet, top to bottom. Or run the file through the free CSV location validator first, which checks the structural problems in your browser without uploading the file.

  1. Delete totals, notes, blank rows and merged heading rows so only locations remain.
  2. Filter the name column for blanks and fill or remove those rows.
  3. Filter for rows with neither an address nor coordinates. Nothing can place them on a map.
  4. Sort by address and look for one address repeated under different names.
  5. Make a unique list of your category values and fix every near-duplicate spelling.
  6. If you have coordinates, sort each column and check the smallest and largest values fall where your locations are.
  7. Format the postcode and phone columns as text so leading zeros survive the save.
  8. Save as CSV UTF-8 and reopen the file once to confirm it still looks right.

Tags that become filters

The categories column carries products, services, dealer tiers or amenities as a comma-separated list, and each distinct value becomes a filter visitors can use. Agree the exact names once. Coffee and Coffee products are two filters, and a visitor who picks one never sees the stores tagged with the other.

In Handled, create the categories before the first import. The import matches values in the file to categories that already exist and shows unknown values for review rather than quietly adding to the filter list. Tags should describe what your team maintains, such as which lines a store carries, not live stock.

Distributor and broker reports list a store once per product. You do not need to pivot them first: the importer folds lines that repeat the same store into one location and merges their products into its tags, and the review says how many lines it folded. The distributor reports guide walks through one.

Reading the import review

After column mapping, every row gets a status with its reason, and a problem in one row never blocks the rest. Rows with errors or duplicates start unticked so they are not imported by accident. The file you upload is also checked against your plan's location limit before anything is written.

After import, the Locations table marks each pin as Placed, Approximate or Placed by hand. Approximate means the lookup resolved the address to a street, postcode or town rather than an exact building; it is the short list to check on the map. Three optional settings tidy data on the way in without changing your file: reformatting US and Canadian phone numbers to one pattern, converting all-caps or all-lowercase names and addresses to title case, and restoring the leading zeros spreadsheets strip from US ZIP codes, which is on by default.

StatusMeaningWhat to do
ReadyHas a name and usable coordinatesNothing
Needs an address lookupHas an address but no coordinatesNothing; it is geocoded during import
Repeated earlier in this fileSame name and address as an earlier rowUsually leave it out; fix the source file
Already in your locationsMatches a location you already haveLeave it out, or edit the existing location
No nameThe name cell is blankFill it in the file and re-import that row
No address and no coordinatesNothing to place on the mapAdd an address, or mark it as online
Latitude or longitude not validA coordinate is text or out of rangeCorrect it, or clear both and let the address be looked up

What a CSV does not carry

A location import carries the standard fields, tags and, for dealer networks, territory postcodes. Custom fields, such as a booking link shown as a button, are set per location in the dashboard, through the Location API, or through the Claude and ChatGPT connector, so leave those columns unmapped rather than expecting them to appear.

After the import: keep the file honest

Search a town near several locations, apply each filter, and open a result on a phone: address, phone link, website link and directions. Then decide where the list lives from now on. For occasional batch updates, keep the reviewed file as the source of truth and re-import changes; rows already in your locations are flagged rather than doubled. When several people update the list week to week, move it to a synced Google Sheet with a stable ID column.

Either way, you can export your locations back out as CSV at any time, and the export re-imports without remapping.

Frequently asked questions

What columns does a store locator CSV need?

At minimum a name and either a full street address or latitude and longitude on every row. Useful extras are country, phone, email, website, description, a categories column for filters, and a stable ID if the list will later be synced from a spreadsheet.

Why did my store locations import in the wrong place?

Usually the file, not the geocoder: a missing country, a ZIP code that lost its leading zero, latitude and longitude swapped, or head office's address pasted onto branch rows. Check the pins marked approximate first, then compare their addresses with the source.

How do I stop duplicate locations when importing?

Remove repeats from merged exports before uploading by sorting on name and address. On import, Handled flags rows that repeat earlier in the file or match a location you already have, and leaves them unticked so they are not added twice.

Can I import an Excel file directly?

Save it as CSV UTF-8 first. The Handled importer reads CSV, including semicolon-, tab- and pipe-separated files, rather than Excel workbooks.

Should I include latitude and longitude in the CSV?

Only if you trust them. Rows with valid coordinates skip the address lookup and are marked as placed by hand. Coordinates from an old system are worth spot-checking, because a swapped pair imports without error and puts the pin in the wrong hemisphere.