# Data Overview

When you connect Basecamp to Coupler.io, you can pull five types of data, each mapping to a distinct part of how Basecamp organizes work. Here's what's available and how to use it.

## Available entities

| Entity           | What it contains                                      |
| ---------------- | ----------------------------------------------------- |
| Projects         | Project names, statuses, dates, and metadata          |
| Schedules        | Schedule tools attached to each project               |
| Schedule entries | Individual calendar events, deadlines, and milestones |
| Todos            | Tasks and to-do lists, including status and assignees |
| Messages         | Message board posts and discussion threads            |

#### Projects fields

| Field       | Description                                |
| ----------- | ------------------------------------------ |
| id          | Unique project identifier                  |
| name        | Project name                               |
| description | Project description                        |
| status      | Active, archived, or trashed               |
| created\_at | Date and time the project was created      |
| updated\_at | Date and time the project was last updated |
| purpose     | Internal or external classification        |

#### Schedules fields

| Field          | Description                         |
| -------------- | ----------------------------------- |
| id             | Unique schedule identifier          |
| project\_id    | ID of the associated project        |
| title          | Schedule name                       |
| entries\_count | Number of entries in the schedule   |
| created\_at    | Date the schedule was created       |
| updated\_at    | Date the schedule was last modified |

#### Schedule entries fields

| Field        | Description                              |
| ------------ | ---------------------------------------- |
| id           | Unique entry identifier                  |
| schedule\_id | ID of the parent schedule                |
| title        | Entry title or event name                |
| starts\_at   | Entry start date/time                    |
| ends\_at     | Entry end date/time                      |
| all\_day     | Whether the entry spans the full day     |
| creator      | Name of the person who created the entry |
| participants | List of assigned participants            |

#### Todos fields

| Field         | Description                               |
| ------------- | ----------------------------------------- |
| id            | Unique task identifier                    |
| title         | Task description                          |
| project\_id   | ID of the project the task belongs to     |
| completed     | Whether the task is complete (true/false) |
| due\_on       | Due date                                  |
| assignees     | People assigned to the task               |
| created\_at   | Date the task was created                 |
| completed\_at | Date the task was completed               |
| creator       | Name of the person who created the task   |

#### Messages fields

| Field           | Description                              |
| --------------- | ---------------------------------------- |
| id              | Unique message identifier                |
| project\_id     | ID of the project the message belongs to |
| subject         | Message subject line                     |
| content         | Body text of the message                 |
| creator         | Author of the message                    |
| created\_at     | Date and time the message was posted     |
| comments\_count | Number of comments on the message        |

## Common metric combinations

* **Todos + Projects** — Join on `project_id` to see task volume and completion rates per project
* **Schedule entries + Projects** — Join on `project_id` to map upcoming milestones to project names
* **Todos (filtered by completed = false)** — Surface overdue or unassigned open tasks across all projects
* **Messages + Todos** — Append into a single activity feed to track overall project engagement

## Use cases by role

{% tabs %}
{% tab title="Project managers" %}

* Track open vs. completed todos across all projects in a single dashboard
* Monitor upcoming schedule entries and deadlines in Google Sheets or Looker Studio
* Use the Aggregate transformation to count tasks by assignee and spot workload imbalances
  {% endtab %}

{% tab title="Operations teams" %}

* Export Projects data to BigQuery for long-term project portfolio reporting
* Combine Basecamp todos with time-tracking data from another source using Join to calculate effort per task
* Send weekly todo summaries to ChatGPT or Claude for automated status reports
  {% endtab %}

{% tab title="Leadership" %}

* Get a high-level view of project statuses (active, archived) to assess portfolio health
* Use Messages data to gauge team communication volume across projects
* Feed project and schedule data into Gemini or Perplexity for AI-generated project briefs
  {% endtab %}
  {% endtabs %}

## Platform-specific notes

* Only **Basecamp 3** accounts are supported — Basecamp 2 and Classic will not connect
* The **start date** parameter controls how far back data is synced; records created before that date are excluded
* Todos include both individual tasks and entire to-do lists — filter by type in your destination if needed
* Archived and trashed projects are included in the Projects entity and can be filtered by the `status` field
* Participants and assignees may return as arrays — flatten these in your destination tool if you need one row per person
