Skip to Content
🎉 Scout Docs 2.0 is here!

Google Sheets

If your operational data lives in a spreadsheet, you don’t need to rebuild it somewhere else. The Google Sheets source syncs rows directly into a Scout table so your team can keep working in the tool they already use.

This is useful for CRM exports, content inventories, product catalogs, and any structured list a non-technical team maintains in a sheet.

Before You Start

  • Create a Collection and destination table in Scout
  • Make sure your sheet has a clear header row in row 1 — Scout uses those headers as field names
  • Add table columns for the fields you want to keep searchable or filterable

Connect the Google Sheets Integration

  1. Open Integrations in Scout
  2. Connect Google Sheets
  3. Grant access to the Google account and spreadsheets you want to sync

Note: Availability can vary by workspace while this integration rolls out.

How Sync Works

When you run a sync, Scout reads the sheet top-to-bottom and treats each row as a document. Here’s what that means in practice:

  • New rows in the sheet are added to the table as new documents
  • Updated rows are matched by a stable identifier column and overwritten — without one, Scout creates duplicates
  • Deleted rows are not automatically removed; re-run the source with a full-replacement strategy to clean those up

Pick one column as a stable identifier before you run the first sync. Something like ID, Slug or URL works well. This gives Scout a reliable way to match rows across syncs.

Create a Google Sheets Source

  1. Open your Collection table
  2. Click Sources -> Add Source
  3. Select Google Sheets
  4. Select the spreadsheet and worksheet/tab
  5. Map sheet columns to table columns
  6. Optionally set sync frequency
  7. Click Create

Field Mapping

Map sheet column headers to your table’s column names. Keeping those names consistent avoids remapping after schema changes.

A content inventory sheet might look like this:

Sheet headerTable columnNotes
TitletitleUsed in search results
Page URLurlLinks back to the source
SummarycontentMain text for retrieval
Last Updatedupdated_atHelps with freshness ranking
Owner TeamteamUseful for filtering

If your sheet has many columns, start with a small subset and expand after validating data quality. You can always edit the source config and re-run.

Run and Validate

After setup:

  1. Run the source manually once
  2. Verify rows were created in the table
  3. Spot-check values for type and formatting
  4. Run a query to confirm retrieval quality

Common Issues

Wrong or Missing Values

  • Confirm the header row exists and names haven’t changed since you created the source
  • Recheck column mapping in the source config
  • Ensure target column types match the data shape (text vs. date vs. number)

Duplicate Documents

  • Add a stable identifier column (like id or slug) to the sheet before re-syncing
  • Without a stable identifier, each sync creates new documents instead of updating existing ones

Stale Data

  • Review the sync strategy — full replacement removes old rows, incremental only adds or updates
  • Re-run manually after major schema changes in the sheet

Permission Errors

  • Reconnect the integration with the correct Google account
  • Verify the connected account has at least view access to the spreadsheet

Best Practices

  • Keep header names consistent — renaming a column breaks the mapping until you update the source config
  • Use an explicit table schema instead of syncing every column indiscriminately
  • Schedule syncs only for sheets that change frequently; run manually for one-time imports
  • Add metadata columns like team, status or region to make filtering useful downstream

Next Steps


Built with ❤️ by Scout OS

Last updated on