Skip to Content
TutorialsSync locations from a spreadsheet

Sync locations from a spreadsheet (6 minutes)

A published Google Sheet can act as the live data source for a map’s locations. Edit rows in the spreadsheet and the changes appear on the map the next time it loads — no rebuild, no re-export. This tutorial connects an existing map to a sheet end to end.

ℹ️

Any map with locations works as a starting point. The CSV import guide covers the panel options this tutorial puts to use.

Export the current locations

Open the Locations panel and click Export. Mapplic downloads every location as a CSV file, with a header row of property keys (id, title, coord, group, …) and one row per location. This becomes the seed for the spreadsheet, so the columns already match what Mapplic expects on the way back in.

Starting from scratch instead? A single-row sheet with an id header is enough — every other column is optional.

Upload it to Google Sheets

Upload the CSV to Google Drive and open it with Google Sheets (Open with → Google Sheets). Each column stays mapped to a location property, so edits are as simple as changing a cell. Keep the id column intact — it is what links each row to its location and, on vector maps, to its SVG element.

Publish the sheet as CSV

In Google Sheets, choose File → Share → Publish to web. Select the sheet (or the whole document), pick Comma-separated values (.csv) as the format, and click Publish. Copy the URL it produces.

⚠️

Use the URL from Publish to web, not the normal share link. Only the published CSV URL returns raw comma-separated data; the share link returns a web page Mapplic cannot parse.

Back in the Locations panel, enable External CSV and paste the published URL into the CSV source field. Mapplic fetches the sheet and lists any rows that aren’t already in the map below the built-in locations. At this point both sources coexist — the next step decides how they combine.

Choose how the sheet takes over

Two ways lead to a spreadsheet-driven map, depending on whether the internal locations should stay:

  • Replace them entirely. Open the raw data editor with the <> button in the Locations panel header and set the locations to an empty array, []. Every location now comes from the sheet alone.
  • Merge over them. Set Duplicates to Merge. Rows whose id matches an internal location overwrite that location’s fields; rows with a new id are added. This keeps local locations while letting the sheet drive specific columns — status or price, say, with styling left to a preset.

Replace is the cleaner choice for a map that lives entirely in the sheet; merge suits a map where the spreadsheet feeds one slice of the data.

Verify and maintain

Change a cell in the sheet, save, and reload the map — the update shows up. From here the spreadsheet is the source of truth: add a row to add a location, edit a cell to change one, delete a row to remove it.

ℹ️

Updates are not live. The map reads the published CSV when it loads, so edits reach visitors on their next view rather than instantly. Google also caches published sheets for a few minutes before serving the new version.

Keep External CSV linked to go on editing in the sheet. To pull everything back into the map and cut the link, use Import instead — see Importing and the CSV settings for the underlying keys.

Last updated on