Skip to main content

How to import locations via CSV or Google Sheets

Everything you need to know about importing locations into StoreRocket, from column formatting to troubleshooting.

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 processes it, and you're done. 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).

Required columns

Column

Description

Example

Name

The location name

Downtown Store

Address Line 1

Street address

123 Main Street

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

123 Main Street

Address Line 2

Suite, floor, unit

Suite 200

City

City name

San Francisco

State

State or province

CA

Postcode

Zip or postal code

94102

Country

Country code or name

US

Or use a single column instead:

Column

Description

Example

Full Address

Complete address in one column

123 Main St, San Francisco, CA 94102, US

If you provide individual address fields, StoreRocket combines them into a full address automatically. If you use Full Address, it gets geocoded as-is.

Contact and info columns

Column

Description

Example

Phone

Phone number

(415) 555-1234

Email

Email address

URL

Website link

https://example.com

Facebook

Facebook page URL

https://facebook.com/store

Instagram

Instagram profile URL

https://instagram.com/store

X / Twitter

X (Twitter) profile URL

https://x.com/store

Display and visibility

Column

Description

Example

Visible

Show on widget? 1 = yes, 0 = hidden

1

Type

Location type name

Standard or Featured

Slug

Custom URL slug

downtown-store

Image

Cover image URL

https://example.com/photo.jpg

If you leave Visible empty, the location defaults to visible.

Coordinates

Column

Description

Example

Lat

Latitude

37.7749

Lng

Longitude

-122.4194

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

HH:MM-HH:MM

09:00-17:00

Tuesday

HH:MM-HH:MM

09:00-17:00

Wednesday

HH:MM-HH:MM

09:00-17:00

Thursday

HH:MM-HH:MM

09:00-17:00

Friday

HH:MM-HH:MM

09:00-21:00

Saturday

HH:MM-HH:MM

10:00-14:00

Sunday

Closed or empty

Closed

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:

  • The column must be named exactly Filters (not Filter, not Tags, not Categories)

  • List 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:

  • Naming the column Filter (singular) instead of Filters

  • Creating separate columns per filter (like WiFi, Parking as column names). That won't work. Use one Filters column with comma-separated values

  • Putting yes/no values. 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

Field: Store Number

S001

Field: Manager

John Smith

Field: Square Footage

2500

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

Button: Order Now

https://shop.com/order

Button: Book Appointment

https://shop.com/book

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.

Territory zips (Search Rules)

If your locations exclusively serve assigned zip codes (dealer networks, franchises, service areas), you can set up those territories straight from your import. Add a column called Territory Zips and list the zip codes each location serves.

Name, Address Line 1, Territory Zips
Dealer North, 123 Main St, "10001, 10002, 100*"
Dealer South, 456 Oak Ave, 20001 20002

How it works:

  • The column can be named Territory Zips, Assigned Zips, or Territory Zip Codes

  • Separate zips with spaces, commas, or semicolons. Wildcards work: 100* covers every zip starting with 100

  • Each location gets its own "Territory" rule under Search Rules, so searches in those zips show only the assigned location. The rule goes live once the location is published and visible

  • Re-imports only ever add zips to a territory, they never remove any. To remove zips, edit the rule on the Search Rules page

  • The zip country comes from the location's own Country column

  • Leave the cell empty for locations without a territory

Territories are part of Search Rules, available on Galaxy and above. On other plans the column is simply ignored (your locations still import fine).

Other columns

Column

Description

Timezone

IANA timezone string (e.g. America/New_York). Auto-detected from coordinates if omitted

Marker ID

Internal marker ID. Only needed if assigning custom markers by ID

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 file

Step 1: Download the template

Go to the Import page and click Download the template. This gives you a pre-formatted file with all the column headers in the right order.

Open it in Excel, Google Sheets, or Numbers and fill in your location data.

Step 2: Save as CSV

When your data is ready, save the file as CSV. In most spreadsheet apps, go to File > Save As (or Download as) and pick Comma Separated Values (.csv).

Don't delete any columns from the template, even if you're not using them. Leave unused columns blank. Removing default columns can cause the import to break.

Step 3: Upload and import

  1. Go to the Import page

  2. Upload your CSV file

  3. Decide whether this file is your complete list (more on this below)

  4. Click Upload file

  5. Wait for the import to finish

Step 4: Check your locations

Head to your Locations list and verify everything looks right. Then check your Widget preview to see them on the map.

Locations without coordinates will be geocoded in the background. This can take a few minutes depending on how many new addresses need processing.

About "This file is my complete list"

There's a toggle on the import page: This file is my complete list. Remove any location that is not in it.

Turn it on when the file replaces everything. Locations in the file are updated, and anything missing from the file is removed.

Leave it off when you're adding to what's already there. Nothing gets removed.

Locations that appear in the file keep everything. They keep their analytics, their filters, their custom fields and their images. StoreRocket matches your rows against the locations you already have, so a store that's in both the file and your account stays the same store, not a new one.

Matching works two ways, in this order:

  1. The StoreRocket ID column, if your file has one. Every export includes it. This is the reliable route.

  2. Name and address, if there's no ID. Spacing, capitalisation and punctuation don't matter, so "1 Main St." matches "1 main street".

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.

If a store leaves your file and comes back later, its click history comes back with it. You don't need to do anything for that to happen.

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

  1. Click to create a new linked spreadsheet

  2. 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 setup 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 Setup 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.

  1. Go to your Locations page

  2. Click the Export button

  3. Your browser downloads a CSV with all your location data

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, .xls, and .xlsx files. If you're uploading something else, it won't work

  • File too large: The maximum file size is 10MB. If your file is larger, try splitting it into smaller batches

  • 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

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

  • Geocoding still running: After import, StoreRocket geocodes new addresses in the background. Give it a few minutes, then refresh

  • Visible column set to 0: Check if the Visible column is set to 0 for those locations. That hides them from the widget. Edit the locations or re-import with 1 in the Visible column

  • Country 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

Filters not importing

This is the most common import issue, and it is almost always a column naming problem.

  • The column must be named exactly Filters (plural, capital F)

  • Filter, filters, Tags, Categories won't be recognized

  • Filter values go in a single column, separated by commas: WiFi, Parking, Pet Friendly

  • Don'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, not 9am-5pm or 9:00 AM - 5:00 PM

  • Excel 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 name

  • Example: Field: Store Number (not just Store Number)

  • Fields are auto-created if they don't exist yet, so this is usually a formatting issue with the column header

Buttons not saving

  • The column header must start with Button: followed by a space and the button name

  • Example: Button: Order Now (not just Order Now)

  • The cell value must be a complete URL including https://

  • If a location doesn't need a button, leave the cell empty

You removed locations you didn't mean to

If you turned on "This file is my complete list" and it removed more than you expected:

  1. If you have Google Sheets connected: Sync from Sheets to restore your locations

  2. If you have a recent CSV export: Re-import that file

  3. If neither: Reach out on live chat and we'll help you recover

Re-importing brings the locations back and reattaches the analytics they had, as long as the name and address match what they were before.

Quick reference: column name cheat sheet

What you want

Column name

Value format

Location name

Name

Text

Street address

Address Line 1

Text

Full address

Full Address

Complete address string

Filters/categories

Filters

Comma-separated names

Custom field

Field: Your Field Name

Text

CTA button

Button: Your Button Name

URL

Day hours

Monday, Tuesday, etc.

09:00-17:00

Hours template

Hours ID

Template name

Location type

Type

Type name

Visibility

Visible

1 or 0

Cover image

Image

Image URL

Coordinates

Lat, Lng

Decimal numbers

Need help with your import? Message us on live chat and we'll help you sort it out.

Did this answer your question?