You've got a spreadsheet full of locations and you want them in StoreRocket. Good news: this only takes a few minutes. You can either upload a CSV file directly or connect a Google Sheets spreadsheet for ongoing sync.
Two ways to import
CSV file upload is the fastest option. You upload a file, StoreRocket checks it, and you publish it. Best for one-time imports or when you're setting up your account for the first time.
Google Sheets sync connects a live spreadsheet to your project. You can sync locations back and forth whenever you want, and even enable daily auto-sync. Best for teams that manage locations in spreadsheets and want changes to flow into StoreRocket automatically.
Both methods use the same column format, so everything you learn here applies to both.
CSV column reference
Here's every column StoreRocket recognizes. You don't need to use all of them. At minimum, you need Name and an address (either split into parts or as a full address).
In a CSV or Excel import, your columns don't have to use these exact names. When you upload a file, StoreRocket matches the columns it recognizes and asks you about the rest (see Step 4 below). Custom field and button columns are the exception: they always need their Field: and Button: prefixes.
Required columns
Column | Description | Example |
Name | The location name |
|
Address Line 1 | Street address |
|
You can use individual address fields OR a single Full Address column. Don't use both.
Address fields
Column | Description | Example |
Address Line 1 | Street address |
|
Address Line 2 | Suite, floor, unit |
|
City | City name |
|
State | State or province |
|
Postcode | Zip or postal code |
|
Country | Country code or name |
|
Or use a single column instead:
Column | Description | Example |
Full Address | Complete address in one column |
|
If you provide individual address fields, StoreRocket combines them into a full address automatically. If you use Full Address, it gets geocoded as-is.
If a file has both, as every export does, the Full Address is the one that gets geocoded.
Contact and info columns
Column | Description | Example |
Phone | Phone number |
|
Email address | ||
URL | Website link |
|
Facebook page URL |
| |
Instagram profile URL |
| |
X / Twitter | X (Twitter) profile URL |
|
Display and visibility
Column | Description | Example |
Visible | Show on widget? |
|
Type | Location type name |
|
Slug | Custom URL slug for the location's detail page. StoreRocket generates a slug automatically when a location is created, so you do not need this column unless you want to override the generated value. In a Google Sheets sync, a blank Slug cell makes StoreRocket create a new slug automatically, which replaces a slug you set by hand. Only include this column when you are deliberately setting a slug. |
|
Image | Cover image URL |
|
If you leave Visible empty, the location defaults to visible.
Coordinates
Column | Description | Example |
Lat | Latitude |
|
Lng | Longitude |
|
Don't worry about these. If you leave them blank, StoreRocket geocodes the address automatically and fills in the coordinates for you. Only include them if you already have precise coordinates and want to skip geocoding.
Opening hours
Hours use 24-hour format only. No AM/PM. Add one column per day of the week.
Column | Format | Example |
Monday |
|
|
Tuesday |
|
|
Wednesday |
|
|
Thursday |
|
|
Friday |
|
|
Saturday |
|
|
Sunday |
|
|
For a location that's open 24 hours, use 00:00-23:59. For closed days, write Closed or leave the cell empty.
Alternative: hours templates. If you've already created reusable hours templates in Hours, you can reference them by name using the Hours ID column instead of specifying each day:
Name, Address Line 1, Hours ID
Store 1, 123 Main St, Standard Hours
Store 2, 456 Oak Ave, Weekend Only
The template must already exist in your project before importing.
Filters (search categories)
This is the column that causes the most import problems, so it is worth reading carefully.
Filters go in a single column called Filters. For each location, list the filter names separated by commas.
Name, Address Line 1, Filters
Store 1, 123 Main St, "WiFi, Parking, Pet Friendly"
Store 2, 456 Oak Ave, "Pet Friendly, Open 24h"
Store 3, 789 Pine Dr, WiFi
How it works:
Name the column
Filters. In a CSV or Excel import,Filterworks too, and a column with another name (likeTagsorCategories) is flagged when you match columns, so you can choose "Filters" for itList multiple filters separated by commas inside the cell
Wrap the cell in quotes if it contains commas (most spreadsheet apps do this automatically when exporting to CSV)
Filter names are matched by text, not case-sensitive, so "WiFi" and "wifi" are treated the same
If a filter doesn't exist in your project yet, StoreRocket creates it automatically
Common mistakes:
Creating separate columns per filter (like
WiFi,Parkingas column names). That won't work. Use oneFilterscolumn with comma-separated valuesPutting
yes/novalues. Just list the filter names that apply to each location. If a filter doesn't apply, don't include it
Custom fields
Custom fields let you store extra data on each location (store number, manager name, product lines, anything). The column header uses the Field: prefix.
Column header | Cell value |
|
|
|
|
|
|
Add a separate column for each custom field. If the field doesn't exist in your project yet, StoreRocket creates it automatically during import.
The column header format must be exact: Field: followed by a space and the field name.
Call-to-action buttons
You can add CTA buttons (like "Order Now" or "Book Appointment") using the Button: prefix. The cell value is the URL the button links to.
Column header | Cell value |
|
|
|
|
Add a separate column for each button. If the button doesn't exist in your project yet, StoreRocket creates it automatically. Leave the cell empty for locations that don't need a particular button.
Other columns
Column | Description |
Marker ID | Internal marker ID. Only needed if assigning custom markers by ID. To remove a custom marker and restore the default pin, set Marker ID to |
Yelp | Yelp business ID |
StoreRocket ID | How a re-import recognises a location you already have. Keep it: it survives a rename or an address correction, which matching on name and address can't. |
How to import a CSV or Excel file
The import has three steps on screen: "Upload", "Match columns" and "Review & publish". Nothing changes on your map until you publish.
Step 1: Download a template
Go to the Import page. You'll find it in the sidebar under Location Data > Import, or under Import > CSV / Excel on your Locations page. Under "Download a template", click "Excel template" or "CSV template". This gives you a pre-formatted file with the most common column headers in the right order.
Open it in Excel, Google Sheets, or Numbers and fill in your location data.
Already have a spreadsheet of your locations? You can skip the template and upload your own file. You'll match its columns in Step 4.
Step 2: Save your file
When your data is ready, save the file. The import accepts CSV, TXT, TSV, XLS and XLSX files, so an Excel file can be uploaded as it is. If your spreadsheet app saves in its own format (like Numbers), save a copy as CSV. In most spreadsheet apps, go to File > Save As (or Download as) and pick Comma Separated Values (.csv).
A file can be up to 15 MB and hold up to 100,000 locations. You don't need every column from the template, so you can delete the ones you don't use.
Step 3: Upload your file
Go to the Import page
Click "Choose a file", or drag your file onto the page and drop it
Wait a moment while StoreRocket reads it. You'll see the file's name and how many rows and columns it found
Step 4: Match your columns
StoreRocket matches each column it recognizes to a location field. If everything matches, the page tells you how many locations are ready to check. Click "Preview locations" to see your first few locations the way StoreRocket reads them.
If StoreRocket doesn't recognize a column name, the page says how many columns are "to match", and those columns are listed under the "To match" tab. Each one says "This column name wasn't recognised. Choose where to save it." For each one, either:
choose the field it belongs to in the "Save in StoreRocket as" list (for example, choose "Filters" for a column called
Tags). If StoreRocket has a guess, click "Use suggested match", orclick "Leave it out". Nothing in a column you leave out is imported. Columns you leave out are listed under the "Left out" tab, and you can choose a field for one at any time
Your file needs a column with location names. If StoreRocket can't find one, the page asks you to "Choose a location name column". Pick it from your columns.
Custom field and button columns are only recognized by their Field: and Button: headers. They aren't in the list of fields you can choose, so if one is flagged, rename the column with its prefix and upload the file again.
If the first row of your file is a location rather than column names, open the "Header row" menu (the button reads "Headers detected") and turn off "Use first row as column names". Picked the wrong file? Click "Change file".
When you're ready, click the button that shows your count, like "Review 120 locations".
During first-time setup, StoreRocket skips this step when every column is already matched.
Step 5: Review and publish
StoreRocket now checks every location and finds each address on the map. Nothing is published yet. Big files take a few minutes, and you can close the page while it works: the draft waits for you in Import history.
When the check is done, you'll see how many locations are ready. Before you publish:
Fix or skip rows that need attention. A row that needs attention says why, for example "Address missing", "Location name missing" or "Address not found". Click the button on the row (like "Add address" or "Check address"), correct the details, then click "Save and check". Or click "Skip row" to leave it out. You can't publish until every row is fixed or skipped. Skipped rows are listed as "left out", where "Put back" adds a row again
Look at possible duplicates. If some rows look like the same place, the review shows how many possible matches there are to check. StoreRocket compares the rows in your file with each other and, for small files, with the locations you already have. Publishing keeps these rows, so fix your file and upload it again, or delete the extra location after publishing
Check your plan's location limit. If your plan or trial doesn't have room for every new location in the file, the review tells you before you publish. Rows with matching StoreRocket IDs can still update locations you already have, but new locations beyond the limit are left out. Remove rows from your file, or upgrade your plan before publishing
Then, under "Choose what happens when you publish", choose Add or Replace (more on this below) and click the publish button. With Add selected it reads, for example, "Publish 120 locations". With Replace selected it reads "Replace with 120 locations".
Not ready yet? Click "Publish later". Your draft is saved, and you can finish it from Import history.
Publishing a large file can take a while. StoreRocket keeps working if you leave the page, and you can check progress in Import history.
Step 6: Check your locations
When publishing finishes, you'll see what changed: how many locations were added, updated and removed, plus any rows that were left out or went over your plan limit. Click "View my locations" to see them.
Head to your Locations list and verify everything looks right. Then open Store Locator > Customize to see them on the map in the preview.
Every address was placed on the map during the review, so there's no geocoding left to wait for.
Unfinished imports and import history
An import stays a draft until you publish it. If you leave before publishing, the Import page shows it as an "Unfinished import" with its next step, like "Review & publish" or "Continue matching". Click it to pick up where you left off.
Import history lists all your imports: drafts, imports being checked or published, and published ones. Open a published import to see what it added, updated and removed, and every row it included or left out. Click "New import" to start another one.
To throw away a draft, open it and click "Discard draft import". Your published locations stay exactly as they are.
Add or replace your current locations
When you publish, you choose what happens to the locations already in your account:
Add is selected by default and marked "Recommended". On screen it reads like "Add these 120 locations". It keeps everything already in StoreRocket. A row with the StoreRocket ID of a location you have updates that location. Every other row becomes a new location. Nothing is removed
"Replace my current locations" uses this file as your complete list. Locations in the file are updated, and every location that isn't in the file is removed. That includes locations you added by hand, rows you skipped during the review, and rows that didn't fit your plan's limit
Before a Replace, StoreRocket asks you to confirm. It shows how many locations you have now and up to how many the file will replace them with. Click "Replace and publish" to go ahead, or "Keep current locations" to back out.
Matched rows keep their existing StoreRocket record and click history. StoreRocket matches your rows against the locations you already have. Imported columns can update or clear details, while omitted columns keep their current values.
Matching works two ways, in this order:
The StoreRocket ID column, if your file has one. Every export includes it. This is the reliable route.
Name and address, if there's no ID. Spacing, capitalisation and punctuation don't matter, so "1 Main St." matches "1 MAIN ST".
Add only uses the StoreRocket ID: a row without one becomes a new location. Replace uses both.
Keep the StoreRocket ID column when you can. It's the only thing that still matches a location after you rename it or correct its address, which name-and-address matching can't do.
Only the columns in your file change. When a row updates a location you already have, any column that isn't in your file, or that you left out when matching columns, keeps its current value. A blank cell in a column you did include can clear a value: a blank Phone cell, for example, removes that location's phone number. One exception: when a row changes a location's Full Address, its separate address fields are replaced too, with whatever your file has for them (blank if it has none).
If a store leaves your file and comes back later with the same name and address, StoreRocket can reconnect its recorded clicks.
During first-time setup
New accounts can import a spreadsheet as part of setup. The first file is always added. If you import another file during setup, StoreRocket asks whether to "Replace them" or "Add to them", meaning the locations from your earlier file. It picks one for you: Replace when at least half of the new file is already on your map, Add otherwise. Locations you added by searching stay either way, and rows marked "Already on your map" or "Listed twice" are never added a second time.
If you leave while a file is still being checked, it publishes on its own when the check finishes, using the option StoreRocket picked. Rows that need a fix are left out, and the result lists them. For a big file, you can click "Put it on your website meanwhile" to start installing your locator while the addresses are placed.
Google Sheets sync
Google Sheets sync creates a live connection between a Google spreadsheet and your StoreRocket project. You can push locations to the sheet, pull locations from the sheet, or set up daily auto-sync.
Setting up Google Sheets
Go to Google Sheets Sync
Click to create a new linked spreadsheet
StoreRocket creates a Google Sheet with all the right column headers pre-filled
The spreadsheet is created in StoreRocket's Google Drive and shared with you. You can also share it with team members from the Google Sheets Sync page.
Sync directions
Sync to Sheets (export): Pushes your current StoreRocket locations into the spreadsheet. Go to Sync page and click the sync-to option. This overwrites whatever is in the sheet with your current StoreRocket data.
Sync from Sheets (import): Pulls locations from the spreadsheet into StoreRocket. Go to Sync page and click the sync-from option. This updates your StoreRocket locations to match the spreadsheet.
Auto-sync
You can enable daily auto-sync from the Google Sheets Sync page. When enabled, StoreRocket automatically syncs from your spreadsheet once a day. This is great if your team regularly updates the spreadsheet and you want changes to flow in without manual intervention.
Tips for Google Sheets
The column format is identical to CSV. Everything in the column reference section above applies here too
Don't edit the spreadsheet while a sync is running. Wait for it to finish first
Don't rename, reorder, or delete the header columns. StoreRocket needs them in the expected format
Sync processes about 1,500 locations per minute. Large datasets might take a few minutes
After syncing, new addresses without coordinates are geocoded in the background
Exporting locations
You can download all your locations as a CSV file at any time.
Go to your Locations page
Click the Export button
Choose "All locations", then click the export button, for example "Export 120 locations"
Your browser downloads a CSV with all your location data
If you have more than 10,000 locations, we email you a download link instead.
This is useful as a backup before a big import, or if you want to make bulk edits in a spreadsheet and re-import.
Troubleshooting
Import stuck or spinning
Wrong file format: The import accepts
.csv,.txt,.tsv,.xls, and.xlsxfiles. If you're uploading something else, it won't workFile too large: The maximum file size is 15 MB, and one file can hold up to 100,000 locations. If your file is larger, split it into smaller files and upload each one separately
Encoding issues: Save your CSV as UTF-8. Some spreadsheet apps default to other encodings which can cause problems with special characters
Extra whitespace or hidden characters: If you copied data from a website or PDF, there might be invisible characters in your cells. Try pasting into a plain text editor first, then into your spreadsheet
Still checking: Big files take a few minutes, because StoreRocket finds every address on the map before you publish. You can close the page. The check keeps running, and the draft waits for you in Import history
"This file could not be prepared": Your locations have not changed. Click "Try again", or discard the draft and upload a different file. If the message says your plan holds fewer locations than the file needs checked, upload a smaller file
Publishing takes a while: Large files can take longer to publish. StoreRocket keeps working if you leave the page, and you can check progress in Import history
Locations imported but not showing on the map
Missing address: Every location needs either Address Line 1 or Full Address. Without an address, there's nothing to geocode and no way to place it on the map. A CSV or Excel import flags these rows as "Address missing" before you publish
Geocoding still running: After a Google Sheets sync, StoreRocket geocodes new addresses in the background. Give it a few minutes, then refresh. A CSV or Excel import places every address during the review, so this only applies to Google Sheets
Visible column set to 0: Check if the Visible column is set to
0for those locations. That hides them from the widget. Edit the locations or re-import with1in the Visible columnCountry missing or wrong: If your addresses don't include a country, the geocoder might place them in the wrong location or fail entirely. Adding a Country column helps a lot. In a CSV or Excel import, an address that can't be placed shows "Address not found" in the review
Filters not importing
This is the most common import issue, and it is almost always a column naming problem.
In a CSV or Excel import, check that your filters column is matched to "Filters" when you match columns. A column named
FiltersorFilteris matched automatically. Other names, likeTagsorCategories, are flagged so you can choose "Filters" for themIn Google Sheets, keep the
Filtersheader that StoreRocket createdFilter values go in a single column, separated by commas:
WiFi, Parking, Pet FriendlyDon't create separate columns per filter. One column, comma-separated names
If a filter name has a comma in it (rare, but it happens), the import will split it into two separate filters
Hours showing incorrectly
Must be 24-hour format: Use
09:00-17:00, not9am-5pmor9:00 AM - 5:00 PMExcel auto-formatting: Excel reformats time values automatically. Set the column format to Text before entering hours to prevent this
Separator: Use a hyphen between open and close times:
09:00-17:00
Custom fields not appearing
The column header must start with
Field:followed by a space and the exact field nameExample:
Field: Store Number(not justStore Number)Fields are auto-created if they don't exist yet, so this is usually a formatting issue with the column header
In a CSV or Excel import, a column without the
Field:prefix is flagged when you match columns, and custom fields aren't in the list you can choose from. Rename the column with the prefix and upload the file again
Buttons not saving
The column header must start with
Button:followed by a space and the button nameExample:
Button: Order Now(not justOrder Now)The cell value must be a complete URL including
https://If a location doesn't need a button, leave the cell empty
In a CSV or Excel import, a column without the
Button:prefix is flagged when you match columns, and buttons aren't in the list you can choose from. Rename the column with the prefix and upload the file again
You removed locations you didn't mean to
If you published with "Replace my current locations" (or "Replace them" during first-time setup) and it removed more than you expected:
If you have Google Sheets connected: Sync from Sheets to restore your locations
If you have a recent CSV export: Re-import that file, and keep Add selected when you publish
If neither: Message us on live chat so we can check the available recovery options
Re-importing brings the locations back. StoreRocket can reconnect recorded clicks when the name and address match what they were before.
Quick reference: column name cheat sheet
What you want | Column name | Value format |
Location name |
| Text |
Street address |
| Text |
Full address |
| Complete address string |
Filters/categories |
| Comma-separated names |
Custom field |
| Text |
CTA button |
| URL |
Day hours |
|
|
Hours template |
| Template name |
Location type |
| Type name |
Visibility |
|
|
Cover image |
| Image URL |
Coordinates |
| Decimal numbers |
Need help with your import? Message us on live chat and we'll help you sort it out.