TessoloTessoloDocs
Collections

Syncing from a sheet

Keep a collection in step with a Google Sheet or any CSV address, automatically.

If a price list, store directory or event schedule already lives in a spreadsheet, you don't have to re-import it every time it changes. Point the collection at the sheet's CSV address and Tessolo pulls it on a schedule.

Pro and above

Get a CSV address

In Google Sheets: File → Share → Publish to the web, pick the tab, choose Comma-separated values (.csv) and copy the link. It looks like https://docs.google.com/spreadsheets/d/e/…/pub?output=csv and updates a few minutes after you edit the sheet.

Any other public https address that returns a CSV works the same way: a shared CSV view from Airtable or Notion, or a file your own system exports.

The first row must hold column names. Values follow the same rules as a CSV import: 199 for numbers, yes/no for toggles, 2026-06-18 for dates, a linked entry's name for references.

Connect it

Open the collection and press Data source.

  1. Paste the address and press Read columns. Columns named like your fields are matched automatically; fix the rest from the dropdowns. Map one column to Address if the sheet has a stable id or slug — that's how a row stays the same entry after you rename it. Without it, the address comes from the entry's title.
  2. Pick how often to sync: every 15 minutes, hourly, every 6 hours or once a day.
  3. Leave Publish after syncing on to put rows live straight away, or switch it off to get drafts you publish yourself.
  4. Save, then Sync now to see the first result: how many entries were added, updated or unpublished, and any rows that couldn't be read.

The dialog shows the last sync's time and result whenever you open it again.

What a sync does

  • Rows are matched to entries by address (slug). A new row creates an entry, a changed row updates it — the same rule as importing a CSV.
  • A row that disappears from the sheet is unpublished, not deleted. The entry stays in the console so nothing is lost by accident.
  • Rows with unreadable values (text in a number column, a reference that doesn't exist) are skipped and listed in the result. The rest still sync.
  • Up to 1,000 rows per sync. Larger sheets stop at that point and the result says so.

A sync with auto-publish also fires the Entry published event for outgoing integrations, capped at 50 entries per sync.

Good to know

  • One source per collection. Remove it from the same dialog; synced entries stay.
  • Turn Sync automatically off to pause without losing the setup; Sync now still works while paused.
  • If the address stops answering, the result shows the error and syncing simply retries on the next schedule.

On this page