# Data Overview

Coupler.io's Google Sheets integration pulls data directly from your spreadsheets via the Google Sheets API. You select a spreadsheet, one or more sheets, and a data range — Coupler.io reads the cells and exports them row by row to your destination.

## What data is exported

When you export a Google Sheets source, each row in the spreadsheet becomes a row in your destination. The first row of the selected range is treated as the **header row** (column names). All subsequent rows are data rows.

| Column           | Description                                                                                        |
| ---------------- | -------------------------------------------------------------------------------------------------- |
| *(your columns)* | All columns from the first row of the selected range become output column names                    |
| `Sheet Name`     | Added automatically when exporting **multiple sheets** — identifies which sheet each row came from |

{% hint style="info" %}
Column names are taken from the **first row** of each sheet's selected range. If the first row is empty or contains merged cells, column names may be missing or duplicated. Clean up header rows in the source spreadsheet before connecting.
{% endhint %}

## Configuration options

### Spreadsheet

Select the Google Sheets file to export from. The file picker shows spreadsheets accessible to the connected Google account from Google Drive.

### Sheets

Choose one or more sheets (tabs) to export from the selected spreadsheet:

* **Single sheet** — exports data from one tab only
* **Multiple sheets** — exports data from all selected tabs; rows are stitched together by matching column headers, and a `Sheet Name` column is added to identify the source tab
* **Regex pattern** — instead of selecting sheets manually, enter a regular expression to match sheet names dynamically

{% hint style="info" %}
When merging multiple sheets, columns are matched by name. Sheets with different column structures will produce rows with empty cells in columns that don't exist in that sheet.
{% endhint %}

### Regex sheet name patterns

Instead of selecting sheets by name, you can enter a regex pattern to match sheets automatically. This is useful when new sheets are added regularly (e.g., monthly sales tabs). Common patterns:

| Pattern           | Matches                                   |
| ----------------- | ----------------------------------------- |
| `.*`              | All sheets in the spreadsheet             |
| `Sales 202.+`     | Sales 2020, Sales 2021, Sales 2026, etc.  |
| `.*Q[1-4] 2025.*` | Any sheet containing Q1–Q4 2025           |
| `Report.+`        | Any sheet whose name starts with "Report" |
| `.*summary`       | Any sheet whose name ends with "summary"  |

{% hint style="warning" %}
The order of sheets in the merged output follows the order of the tabs in the spreadsheet, not the order in which you selected them. If you need data in a specific order, arrange the sheet tabs accordingly in Google Sheets.
{% endhint %}

### Range

Set the data range to export from each sheet. Examples:

| Range   | Behavior                                                                    |
| ------- | --------------------------------------------------------------------------- |
| `A:Z`   | All columns A through Z, all existing rows (including new rows added later) |
| `A1:Z9` | Fixed range: columns A–Z, rows 1–9 only                                     |
| `A1:Z`  | Columns A–Z, from row 1 to the last row with data                           |
| `1:1`   | First row only (useful for exporting headers to check column names)         |
| `B2:E`  | Columns B–E, starting from row 2 (skips the first row)                      |

{% hint style="info" %}
Use open-ended ranges like `A:Z` or `A1:Z` to automatically capture new rows added to the sheet over time. Static ranges like `A1:Z9` only export the specified rows and will miss any data added below row 9.
{% endhint %}

## Use cases by role

{% tabs %}
{% tab title="Operations" %}
Use Google Sheets as a source to move operational data (project trackers, inventory logs, task lists) maintained in spreadsheets into a database or BI tool. Schedule daily exports so downstream tools always reflect the latest spreadsheet state without manual uploads.
{% endtab %}

{% tab title="Finance" %}
Export budget models, expense trackers, or financial forecasts from Google Sheets into BigQuery or a data warehouse. Combine with ERP or accounting source data in Coupler.io to reconcile spreadsheet-based planning against actual financial data.
{% endtab %}

{% tab title="Marketing" %}
Merge campaign tracking sheets (one per month or per channel) using regex patterns. Coupler.io automatically picks up new monthly sheets as they're added, keeping your consolidated marketing report up to date without touching the data flow.
{% endtab %}

{% tab title="Data Engineering" %}
Use Google Sheets as a lightweight lookup table or configuration source alongside other data flows. Pull reference data (e.g., product category mappings, cost tables, team assignments) from a spreadsheet and join it in your destination with other source data.
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Row limits apply.** Google Sheets is a metered source — the number of rows exported per run depends on your Coupler.io plan (Free: 100, Personal: 1,000, Professional: 10,000, Team: 100,000, Business: unlimited). If your export seems truncated, check your plan's limit on the [pricing page](https://www.coupler.io/pricing).
{% endhint %}

## Platform-specific notes

* **Header row required** — The first row of the range must contain column names. Coupler.io uses this row as the schema. If there is no header row, data will be misinterpreted.
* **Empty rows are skipped** — Rows where all cells are empty are skipped during export.
* **Data types are inferred** — Numbers, dates, and booleans are exported with their cell values. Dates in non-standard custom formats (e.g., `2025-01-12 (Mon)`) may be imported as text — see [Common Issues](https://docs.coupler.io/sources/category/files-and-tables/common-issues#dates-imported-as-text) for fixes.
* **Large spreadsheets may time out** — Sheets with hundreds of thousands of rows or many heavy formulas can exceed the 9-minute import timeout. See [Common Issues](https://docs.coupler.io/sources/category/files-and-tables/common-issues#timeout-9-minutes) for guidance.
* **Formula cells export their computed values** — Coupler.io reads the cell value, not the formula. `=SUM(A1:A10)` exports as the numeric result.
* **Merged cells export the value of the top-left cell** — Other cells in the merged region export as empty.
* **Google Drive permissions required** — The connected Google account must have at least Viewer access to the spreadsheet. Spreadsheets restricted to specific users or domains will only be accessible if the connected account is included.
