Build a Live Product Feed in Google Sheets

In short

Put one product per row in a Google Sheet and publish that tab to the web as CSV. Paste the published link into Product Setup → Via Link, switch on Auto-Update Product Feed under Advanced Settings, then run Detect Data. Roccai re-reads the sheet every night, so edits in the sheet update your guide.

Updated

A Google Sheet is the quickest way to get products, services or experiences into a guide when you have no webshop feed to point at. It behaves like any other feed URL: Roccai reads it, maps the columns to product-card fields, and with auto-update on, fetches it again each night. Change a price in the sheet today, and the guide shows the new price tomorrow morning.

A sheet is the right source when:

  • Your products don't live in a webshop; courses, services, rooms, experiences, articles.
  • You want a hand-picked selection rather than everything in your store.
  • You want colleagues who don't have Roccai access to keep the products current.

If you do have a Shopify or WooCommerce store, use the real feed instead, it stays in sync with stock and prices on its own.

Before you start

  • A Google account that is allowed to publish a sheet to the web. Some Workspace domains block this — ask your IT admin if the option is greyed out.
  • A public image URL for each product. Images stored in Google Drive or on an intranet won't load in the guide.
  • Nothing confidential in the sheet. Publish to the web makes that tab readable by anyone with the link; cost prices, supplier names and internal notes don't belong in it. Keep those in a separate sheet.

Step 1 — Build the sheet

Put the column names in row 1 and one product per row below. Nothing above the column names — no sheet title, no merged cells, no logo. Roccai reads the very first line as the column names, so a title row makes your headings the product data.

Name the columns exactly like this and Roccai will recognise them by itself:

Columns for a Google Sheet product feed

ColumnWhat goes in itNeeded?
idA unique code per product — 1, 2, 3 or your own SKU. Never reuse one.Required
linkThe full https:// address of the page the product opens.Required
titleThe product name shown on the card.Strongly recommended
imageUrlA direct link to the image file, ending in .jpg, .png or .webp.Strongly recommended
descriptionThe text on the card. Keep it short — two or three lines.Recommended
tagsWhat the product is, comma-separated: håndværk, krea. This is what the AI matches answers against.Recommended
pricePlain numbers — 249 or 249.00. Set the currency later, in the mapping step.Optional
sale_priceThe discounted price, if any. Spell it with the underscore.Optional
statusin stock / out of stock, so sold-out products can be hidden.Optional
subtitleA short line under the title.Optional

Three things that trip people up:

  • Tags are split on commas — and also on +, >, /, ; and |. So gift, jul, under 300 becomes three tags, and a tag containing one of those characters will be broken in two.
  • The image URL must be the image itself, not the page it sits on. Right-click an image on your website and choose "Copy image address".
  • Keep the header row stable. Add and remove rows as much as you like, but renaming or reordering columns means re-mapping the feed in Roccai.

One trick worth knowing: give several columns the same name and Roccai merges them into a list. Three columns all called imageUrl give the product three images.

Step 2 — Publish the sheet to the web as CSV

This is the step people skip. A normal share link gives Roccai a web page, not data, it has to be a published CSV link.

  1. In your sheet, open File → Share → Publish to web.
  2. In the Link tab, pick the tab with your products in the left drop-down (not "Entire document").
  3. In the right drop-down, choose Comma-separated values (.csv).
  4. Click Publish and confirm.
  5. Copy the link it gives you. It looks like https://docs.google.com/spreadsheets/d/e/2PACX-…/pub?gid=0&single=true&output=csv — it must end in output=csv.

Leave the sheet published. If you ever click Stop publishing, the link dies and the nightly sync stops finding your products.

Step 3 — Add the link in Roccai

  1. Open your guide and go to Product Setup.
  2. On the Source step, choose Via Link — not Via CSV Or JSON File, which is for a one-off upload that never updates.
  3. Paste the published link into Product Feed URL.

Step 4 — Turn on Auto-Update Product Feed

Open Advanced Settings under the URL field and switch on Auto-Update Product Feed. Roccai then fetches the sheet again every night, around 02:00, and updates the products in your guide.

Only link feeds can do this — it is the reason to choose Via Link over a file upload. The setting is saved when you confirm the feed at the end of the flow.

Step 5 — Detect Data and map the fields

  1. Click Detect Data. Roccai reads the sheet and works out what each column is.
  2. On Map fields, check the two tabs. Products attributes holds Id (Required), Status, Product Group Id and Tags. Products content holds Title, Subtitle, Text, Image URL, Link (Required), Price and Sale Price.
  3. Anything Roccai didn't match itself, pick from the drop-down. Anything you don't want on the card, set to “-”.
  4. For Status, choose the column and type the value that means in stock — for example in stock — into the box next to it.
  5. For Tags, the yellow chips under the drop-down are a live preview of the tags from your sheet. Use Add Additional Tag if you keep tags in more than one column, and Display name to relabel a tag group for shoppers.
  6. Continue to Select, choose whether to import everything or only certain tags, and confirm.

When your edits show up

What you change in the sheetWhen the guide shows it
A price, title, description or image URLAt the next nightly sync
A new row (new product)At the next nightly sync
A deleted rowAt the next nightly sync
A new or renamed columnNot until you run Detect Data again and map it
Anything, and you can't waitRun Detect Data again on the same URL

Google also caches a published sheet for a few minutes, so a change you make right before a sync can land the following night instead. It is a feed, not a live spreadsheet view.

Troubleshooting

What you seeWhyFix
“We could not detect your data”The link is the /edit or share link, or the publish was set to Web page instead of CSVRe-publish the tab as Comma-separated values (.csv) and use the link ending in output=csv
The columns are named after your sheet title, and one product is nonsenseThere is a title or a merged cell above the column names, so Roccai read that line as the headingsDelete everything above the column names — they must be the first line of the tab
Products have no imageThe imageUrl points at a page or a Google Drive file instead of the image fileUse a direct public image URL ending in .jpg, .png or .webp
Tags are wrong or split oddlyThe tag cell contains , + > / ; or |, which all split a tagSeparate tags with commas only, and avoid those characters inside a tag name
Columns didn't map themselvesThe column names differ from the ones Roccai knowsPick them by hand on Map fields, or rename the columns to id, title, description, imageUrl, link, price, sale_price, status, tags
The sheet changed but the guide didn'tAuto-Update Product Feed is off, or the nightly sync hasn't run yetCheck the toggle under Advanced Settings, or run Detect Data again to update now
Everything disappeared overnightThe sheet was unpublished, moved to another account, or the tab was renamedRe-publish the tab and paste the new link into Product Feed URL

Danish and other special characters

Æ, ø, å and accented letters come through as long as the sheet is published from Google Sheets itself — it always publishes UTF-8. If you paste a CSV from Excel into a sheet first, check that the letters still look right before you publish.

New to product feeds? Start here →

  1. Build the sheet

    Put the column names in row 1 — id, title, description, imageUrl, link, tags, price, status — and one product per row below. No heading and no blank rows above the column names.

  2. Open File → Share → Publish to web

    In your Google Sheet, open the File menu, choose Share, and then Publish to web.

  3. Publish the product tab as CSV

    In the Link tab, pick the tab holding your products and choose Comma-separated values (.csv) in the second drop-down. Click Publish and confirm.

  4. Copy the published link

    Copy the link Google shows. It ends in output=csv — a normal share link or the /edit URL will not work.

  5. Choose Via Link in Product Setup

    In Roccai, open your guide, go to Product Setup and choose Via Link on the Source step. Via CSV Or JSON File is a one-off upload that never updates.

  6. Paste the link and turn on Auto-Update Product Feed

    Paste the published link into Product Feed URL, then open Advanced Settings and switch on Auto-Update Product Feed so Roccai re-reads the sheet every night.

  7. Detect Data and map the fields

    Click Detect Data. On Map fields, check Products attributes (Id, Status, Product Group Id, Tags) and Products content (Title, Text, Image URL, Link, Price), picking any column Roccai didn't match by itself.

  8. Select the products and confirm

    Continue to Select, choose whether to import all products or only certain tags, and confirm. Your guide now runs on the sheet.

Latest help guides