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 aboveGet 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.
- 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.
- Pick how often to sync: every 15 minutes, hourly, every 6 hours or once a day.
- Leave Publish after syncing on to put rows live straight away, or switch it off to get drafts you publish yourself.
- 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.
Importing a CSV
Import a spreadsheet into a Tessolo collection: prepare the CSV, map columns, check the preview, choose draft or published, or update entries.
Exporting and the read API
Get your Tessolo content out: export a collection to CSV, export a whole site or workspace as one backup file, or read entries through the public API.