Ronald

Ronald

Last updated on Aug 6, 2026

Use a Google Sheet as the data source for a CMS table. Edit prices, labels, availability, or any other content in your spreadsheet and sync it into 360Crafter with one click — or let published tours fetch it live.

Set up the sheet

  1. In Google Sheets, open File → Share → Publish to web.

  2. Pick the sheet (tab) you want to connect and choose Comma-separated values (.csv) as the format.

  3. Click Publish and copy the link.

Regular sharing links (…/edit#gid=0) also work if the sheet is shared with “anyone with the link”, but published CSV links are the most reliable.

Tip: In the publish settings, make sure “Automatically republish when changes are made” is checked, so your edits reach the published link without re-publishing.

Import the sheet

  1. In the CMS, click Add or import → Google Sheet (CSV URL).

  2. Paste the link, optionally name the table, and click Fetch and preview.

  3. In the preview you can check each column’s detected field type (text, number, checkbox, single select, image URL, and so on) and adjust it before importing.

Linking rows to panoramas or hotspots

A column can become a Linked field: in the preview, set its type to Linked field and pick the target table (for example Panoramas). Fill the column in your sheet with the target’s names — e.g. skyscraper1 — and 360Crafter matches them to the actual records on every import and sync. Use commas for multiple links (Floor 1, Floor 2). Names that don’t match anything stay visible as text so you can spot and fix them.

Keeping the table in sync

Open the table tab’s dropdown and click Sync from Google Sheet. Syncing:

  • Updates all columns that come from the sheet. These are marked with a small lightning icon ⚡ in the column header — the sheet owns them, and any edits you made to their cells in the CMS are overwritten.

  • Keeps fields you added manually in 360Crafter, including their values. They have no lightning icon and are never touched by a sync.

  • Adds new sheet columns after asking you for their field types, and removes columns you deleted from the sheet.

The first column is the row key

Rows in the sheet are matched to existing CMS rows by the first column (for example Product). Keep its values unique and stable: if you change a row’s first-column value in the sheet, the sync sees a new row, and values of manually added fields (like links you set by hand) are lost for that row. If you need rename-proof syncing, consider Baserow — it identifies rows by a stable id instead.

Live data in published tours

By default, exporting a tour takes a snapshot of your table — later sheet edits don’t affect it until you export again.

To make published tours always show the current sheet data, enable Keep synced in exported tours — either in the table tab’s dropdown or in the Data Connections overview of the export window. When enabled, each visitor’s browser fetches the sheet directly from Google when the tour loads:

  • The tour depends on Google’s servers and on the sheet staying published. If the sheet is unreachable, visitors see the data as it was at export time.

  • Every tour visit makes a request to Google. The sheet’s published link is visible to visitors, so only publish data that may be public.

  • Turn the option off to go back to static snapshots (takes effect on your next export).

Good to know

  • Google caches published CSVs for a few minutes. After editing the sheet, a sync or tour reload can lag behind by up to ~5 minutes. This is on Google’s side and can’t be avoided.

  • Images and audio referenced by URL in a live-synced table load directly from wherever they’re hosted, so use stable, public URLs.

Troubleshooting

Problem Fix
”The URL returned a web page instead of CSV” The sheet isn’t published as CSV. Use File → Share → Publish to web and pick the CSV format.
Sync doesn’t show my latest edit Wait a few minutes (Google’s publish cache) and sync again.
A manually added field lost its value after syncing The row’s first-column value changed in the sheet. Restore the old value or re-enter the field’s data.
Linked field shows plain text instead of a pill The name in the sheet doesn’t match any record in the target table — check spelling.