> For the complete documentation index, see [llms.txt](https://mappy-docs.tech-arms.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mappy-docs.tech-arms.io/getting-started/manage-locations/import-by-csv.md).

# Import by CSV

Learn how to import multiple store locations using CSV

Our app offers an option to import multiple locations at once using a CSV (Comma-Separated Values) file. This feature saves time and ensures accuracy in managing your location data. Here's a step-by-step guide to help you through the process:

**Step 1:** Go to **All Locations** page and refer to the **Import** button

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-1859a47b55905b57cac47ac8910eb4b075c21cf3%2Fimage%20(1)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

From the Import locations page, click on the **Download sample file** to download a sample CSV file

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-b1063073a5cdf3fde510710342f82879f34a5d2a%2Fimage%20(120).png?alt=media" alt=""><figcaption></figcaption></figure>

**Step 2: Fill in Required Information**

Open the downloaded CSV file and fill in the necessary fields. Ensure that the "Location\_Name", "Address" and "Status" fields are completed for each store location. You may also include additional details if needed.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-a02eb3b1b5fb8fb8dd97f01b0b513a2e9549d0d5%2Fimage%20(1)%20(1)%20(1)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

**Step 3: Upload CSV File**

Once you've filled in the required information, navigate to the import section of our app. Select the CSV file from your device and upload it.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-1b7f4cea44e3478fac67df240ec5021614796242%2Fimage%20(121).png?alt=media" alt=""><figcaption></figcaption></figure>

**Step 4: Choose how coordinates are found**

Your file holds addresses, not coordinates, so the app has to turn each address into a point on the map. Right after the upload a **Find coordinates** window asks which way to do it:

* **AI** — *No API key required. Coordinates are estimated from each address.* Use it when you have no map credentials, or to get the locations in quickly and refine them later.
* **Map API key** — *Exact coordinates from Google Maps or Mapbox. Uses your own key.* This is the accurate option, and the one to pick when a pin has to sit exactly on the building.

If you haven't added a key or token of your own, the **Map API key** option tells you how many **free requests** you have left, or reads **No key added** when there are none.

Click **Continue** to go on. Your choice is then shown above the table as *Coordinates: AI* or *Coordinates: Map API key*, with a **Change** link if you want the other one.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2FjuLmcYpp8VsS9pB95HfC%2Fimage.png?alt=media&amp;token=01612e69-f783-4a41-bcf3-30a097c3b904" alt=""><figcaption></figcaption></figure>

**Step 5: Read the check result**

The app checks the file for you. When every field is in order, a **File check complete** banner appears. If something is wrong — a missing column, an empty row, an invalid value — the banner names the rows and fields to correct, so fix the file and upload it again.

**Step 6: Import locations**

From that banner, click **Import all locations** to add every row in the file to your list.

Next to the button there is a **Replace all locations** checkbox. Tick it only if the file is meant to be your new list: the locations you already have are deleted and replaced by the rows in the file.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-9ab8505b721587a40098ebafc3f4afde6245934c%2Fimage%20(123).png?alt=media" alt=""><figcaption></figcaption></figure>

Once the import is completed, a toast message saying "Locations imported" will show up and you will see your stores listed in the table.

**Additional Notes:**

* **File Format:** Only CSV files are compatible with our import feature.
* **Required columns for importing by CSV:** Location name, Address, Status.
* **Custom fields:** a file exported from the app carries one column per custom field, named `CF:` followed by the field key. Fill that column in and import the file back to set the field on each location. If a `CF:` column matches no field you have defined, the app lists it and offers to create the field for you before the import runs. See [How to create and use custom fields](/faq/frequently-asked/how-to-create-and-use-custom-fields.md).
* **Map credentials:** The **Map API key** route uses what you set in **Appearance** — your **Mapbox token**, or, with Google Maps, your **App Server Key** if you have added one and your **Storefront Key** otherwise. The app checks that key for **Geocoding API** when you open this page, since that is the only service an import needs. The **AI** route needs no credentials at all.
* **A key restricted to your domain will not work here.** The import runs on our servers, not in the browser, so Google refuses a key whose **Application restrictions** are set to HTTP referrers. The banner offers two fixes, in this order: create a second key restricted to the IP addresses listed in [Restricting API Keys](/getting-started/settings/google-api-settings/restricting-api-keys.md) and paste it into **Appearance → App Server Key (optional)**, keeping your Storefront Key restricted; or set the existing key's **Application restrictions** to **None**.
* **Geocoding API Quotas:** With a Google key, and depending on the number of locations being imported, you may need to adjust the quotas of the Geocoding API in your [Google Cloud Console](https://console.cloud.google.com/google/maps-apis/quotas). This ensures smooth processing of detecting your store location data.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-ae3244491f2ab88b2b62e62fc9e5d63142dad95d%2Fimage%20(124).png?alt=media" alt=""><figcaption></figcaption></figure>

* **Configuration Recommendations:** We recommend configuring your settings as depicted in the provided image for optimal performance. After finish uploading, you can adjust these settings later according to your preferences.

<figure><img src="https://3865657835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeFgtK8J1oBXHZFWCEpqi%2Fuploads%2Fgit-blob-3684355ac0b90a29c353ed8f57fc3b75329b4061%2Fimage%20(125).png?alt=media" alt=""><figcaption></figcaption></figure>

By following these steps, you can efficiently import store locations into our app. If you encounter any issues or have further questions, feel free to reach out to us at [**support@tech-arms.io**](mailto:support@tech-arms.io).
