Skip to main content
Google Sheets is a cloud-based spreadsheet application that allows users to create, edit, and collaborate on spreadsheets in real-time. It’s part of Google Workspace and provides tools for data organization, analysis, and sharing, making it popular for business data management and team collaboration.

Configuring Google Sheets as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Google Sheets option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

Authorize Nekt to access your Google Sheets data by clicking on the Google Authorization button and logging in with your Google account. Grant the necessary permissions for Nekt to fetch your spreadsheets. The following configurations are available:
  • Spreadsheet Link: The URL of the Google Sheets document you want to extract data from. Paste the complete link here.
Ensure that all columns you want to extract contain at least one alphanumeric character in their names. A column named _, for example, will cause an error.
  • Tab names (Advanced Configs): You can filter specific tab names to extract. This is useful when you have a spreadsheet with multiple tabs, but you just want to extract a small subset of them. This config is optional. If not provided, all tabs will be available for extraction.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. The connector dynamically reads the tabs of your spreadsheet and lists them as streams (which will later become your tables). You can select entire groups of streams or only a subset of them.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data).
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE sync. Read more about Sync Types here.
  • Cell range: If your table contains cells that are not relevant, please make sure to specify the cell range that should be considered for extraction.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!

Streams and Fields

The Google Sheets connector dynamically generates streams based on the tabs in your spreadsheet. Each selected tab becomes a distinct stream (and subsequently, a table in your catalog). The fields (columns) are defined by the headers in the first row of your selected sheet, or of the cell range you configured, if any. All values are extracted as text.
Column Naming BehaviorColumn names are automatically sanitized to keep only letters and numbers (e.g., spaces and punctuation are replaced by underscores).If a header cell contains no letters or numbers (for example, just symbols or emojis like - or ✅), the connector will attempt to use the symbol’s Unicode name to generate a column name (e.g., white_heavy_check_mark). If that isn’t possible, it will fall back to naming the column by its position (e.g., unnamed_column_3). Completely blank header cells will be skipped entirely.

Implementation Notes

Rate Limiting and Retries

The connector handles Google Sheets API rate limits and transient errors (such as 503 Service Unavailable, 429 Too Many Requests, and quota limits) using an exponential backoff strategy. If the API becomes temporarily unavailable, either during the extraction of records or during the initial discovery of spreadsheet tabs and columns, the connector automatically retries requests, waiting progressively longer between attempts. It will pause and retry for up to approximately 24 minutes in total before giving up, ensuring that transient network or Google-side issues do not immediately fail your sync.

Skills for agents

Download Google Sheets skills file

Google Sheets connector documentation as plain markdown, for use in AI agent contexts.