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**. 

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBWQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9160c49a74e8a78baa25e8e1a222c060f0f62cc0/image.png?cw_image_width=348px)

   

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

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBWUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ad607fe4d14e1811b6f3f651a6402923dcdccca9/image.png?cw_image_width=207px)

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBWZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--905f7b99500c2f53c3affe0354b2124424a43ebf/image.png?cw_image_width=222px)

   
   

3. Click **Publish** and copy the link. 

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBWdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--74b25978664addc2e0d1786effcdb87648c66b5e/image.png?cw_image_width=219px)

   

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)**. 

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBVUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--20d4b0d893e69702cd4f04b31f80da40a988ca2f/image.png?cw_image_width=349px)

   

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

   ![](https://support.360creators.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBVZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a6d467ebd900cf76d4570bbd7880715cb180d4d8/image.png?cw_image_width=272px)

   

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.                   |


