# Data Overview

Coupler.io can pull eight types of data from Coda. Most use cases center on **Rows** (the actual data inside your Coda tables), but the structural entities like Docs, Pages, and Tables are useful for auditing your workspace or building dynamic pipelines.

## Entities overview

| Entity      | Best for                                    |
| ----------- | ------------------------------------------- |
| Docs        | Inventory of all docs in your workspace     |
| Categories  | Organizing and filtering docs by category   |
| Permissions | Auditing who has access to which docs       |
| Pages       | Listing and tracking pages within a doc     |
| Tables      | Discovering table structure within a doc    |
| Formulas    | Exporting named formula definitions         |
| Controls    | Tracking interactive controls in a doc      |
| Rows        | Exporting the actual data stored in a table |

## Docs

#### Available fields

| Field       | Description                           |
| ----------- | ------------------------------------- |
| id          | Unique doc identifier                 |
| name        | Doc title                             |
| owner       | Email of the doc owner                |
| ownerName   | Display name of the owner             |
| createdAt   | Timestamp when the doc was created    |
| updatedAt   | Timestamp of the last update          |
| browserLink | URL to open the doc                   |
| isStarred   | Whether the doc is starred            |
| isPublished | Whether the doc is publicly published |
| folderId    | ID of the folder the doc belongs to   |

## Pages

#### Available fields

| Field       | Description                                |
| ----------- | ------------------------------------------ |
| id          | Unique page identifier                     |
| name        | Page title                                 |
| isHidden    | Whether the page is hidden from navigation |
| contentType | Type of content (canvas, sync table, etc.) |
| browserLink | URL to open the page                       |
| updatedAt   | Timestamp of the last update               |

## Tables

#### Available fields

| Field       | Description                             |
| ----------- | --------------------------------------- |
| id          | Unique table identifier                 |
| name        | Table name                              |
| tableType   | Type of table (table, view, sync table) |
| rowCount    | Number of rows in the table             |
| createdAt   | Timestamp when the table was created    |
| updatedAt   | Timestamp of the last update            |
| browserLink | URL to open the table                   |

## Rows

#### Available fields

| Field       | Description                                      |
| ----------- | ------------------------------------------------ |
| id          | Unique row identifier                            |
| name        | Row name (usually the value of the first column) |
| index       | Row position in the table                        |
| createdAt   | Timestamp when the row was created               |
| updatedAt   | Timestamp of the last update                     |
| browserLink | URL to open the row                              |
| values      | Key-value pairs of all column values for the row |

{% hint style="info" %}
Column values in the **Rows** entity are returned under the `values` field as a nested object. Depending on your destination, you may need to use Coupler.io's column mapping or transformations to flatten these into individual columns.
{% endhint %}

## Permissions

#### Available fields

| Field     | Description                              |
| --------- | ---------------------------------------- |
| id        | Permission entry identifier              |
| principal | The user or group receiving access       |
| access    | Access level (editor, commenter, viewer) |

## Common field combinations

* **Rows + Tables** — join table metadata with row data to know which table each row belongs to
* **Docs + Permissions** — combine to audit which users have access to which docs
* **Pages + Docs** — append page lists across multiple docs to build a full workspace sitemap

## Use cases by role

{% tabs %}
{% tab title="Operations" %}

* Export Coda project trackers to Google Sheets for stakeholder reporting
* Use the Rows entity to pull task or ticket data into BigQuery for trend analysis
* Monitor doc ownership and permissions with the Docs + Permissions entities
  {% endtab %}

{% tab title="Analysts" %}

* Pull structured table data from Coda into Looker Studio to build live dashboards
* Use Aggregate transformation to summarize row counts, statuses, or categories across multiple tables
* Join Rows data with external sources (e.g., CRM or marketing data) in Coupler.io before sending to BigQuery
  {% endtab %}

{% tab title="AI workflows" %}

* Route Coda table data directly to ChatGPT, Claude, or Gemini for summarization or categorization
* Feed Coda doc and page metadata to Perplexity or OpenClaw for workspace-level Q\&A
* Use Cursor with Coda row exports to generate code or automation scripts based on structured data
  {% endtab %}
  {% endtabs %}

## Platform-specific notes

* The **Rows** entity requires you to specify a doc ID and table ID — make sure you have these ready before setting up the data flow
* Coda's API returns row values as nested objects; column names in the export correspond to column IDs, not display names in some cases
* Sync tables in Coda (tables that pull data from external sources) are included in the **Tables** entity but row data availability depends on the sync status
* Very large tables (tens of thousands of rows) may take longer to sync due to Coda API rate limits
